Como eu verifico se um CD está atualmente em uso no Linux?

2

Como posso verificar se um CD está em uso antes de removê-lo da VM? Está atualmente montado em / dev / sr0 em uma máquina Ubuntu 14.04 e eu preciso desmontá-lo para a migração do armazenamento de dados.

Eu sei que não está sendo gravado, mas preciso saber se está sendo lido.

    
por wintermuted 17.09.2018 / 13:11

1 resposta

1

A única maneira de fazer isso corretamente é tentar desmontar o CD dentro da VM.

O procedimento geral que geralmente uso é:

  1. Verifique se ele está montado, de preferência, como root:

    grep /dev/sr0 /proc/self/mounts
    

    Se o texto for exibido, o CD será montado e poderá estar em uso (mas não será seguro removê-lo, mesmo que não esteja em uso); caso contrário, você poderá considerar que não é usado, a menos que tenha CD- software do queimador aberto.

  2. Tentativa de desmontá-lo (deve ser feito como root):

    umount /dev/sr0
    

    Se isso ocorrer sem erros, você pode ter certeza de que o CD não está em uso e pode removê-lo com segurança no lado do hipervisor. Se ele reclamar sobre /dev/sr0 não estar montado, verifique novamente o primeiro passo, caso contrário, vá para o próximo passo.

  3. Descobrir o que estava usando (também deve ser feito como root, e você pode ter que instalar o comando fuser ):

    fuser -m $(grep /dev/sr0 /proc/self/mounts | cut -f 2)
    

    Isso vai descobrir onde ele está montado e, em seguida, cuspirá uma linha para cada arquivo em uso, começando com o nome do arquivo, seguido por uma lista separada por espaço de PIDs que estão usando o arquivo. Você pode, então, pesquisar em quais processos esses PIDs pertencem na maioria dos softwares de monitoramento do sistema, como top . Se você não se importa com o que eles são, você pode adicionar -k -TERM antes do -m ao comando acima, e ele enviará um SIGTERM para todos os processos para você (equivalente a chamar kill em cada PID) . Uma vez que todos eles tenham sido resolvidos, você pode repetir o passo 2, e o comando umount deve funcionar.

Observe que essa abordagem pressupõe que nenhum namespace de montagem esteja envolvido, o que geralmente será verdadeiro, a menos que você esteja usando contêineres (nesse caso, talvez seja necessário passar por todas essas etapas em cada contêiner em execução).

    
por 17.09.2018 / 21:38