A única maneira de fazer isso corretamente é tentar desmontar o CD dentro da VM.
O procedimento geral que geralmente uso é:
-
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.
-
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. -
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 chamarkill
em cada PID) . Uma vez que todos eles tenham sido resolvidos, você pode repetir o passo 2, e o comandoumount
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).