Às vezes, quando eu quero desmontar um dispositivo, por exemplo
sudo umount /dev/loop0
Vou receber a mensagem
umount: /mnt: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Normalmente, resolvo esse problema fechando uma janela do console (no meu caso, xfce4-terminal) e depois umount
.
O que esse problema significa? Existe alguma solução mais inteligente?
Respostas:
Isso significa que algum processo tem um diretório de trabalho ou um identificador de arquivo aberto abaixo do ponto de montagem. A melhor coisa a fazer é encerrar o processo incorreto, alterar seu diretório de trabalho ou fechar o identificador do arquivo antes de desmontar.
Existe uma alternativa no Linux. Usando
umount -l
chamadas uma desmontagem "preguiçosa". O sistema de arquivos ainda estará montado, mas você não poderá vê-lo ou usá-lo, exceto pelos processos que já o estão usando. Quando o programa incorreto sair (por qualquer meio), o sistema "concluirá" a desmontagem do sistema de arquivos.fonte
lsof
é provavelmente o melhor caminho.lsof | grep loop0
?Você também pode usar
fuser
para matar todos os processos usando o sistema de arquivos montado.Opções:
Verifique você mesmo no explicashell .
fonte
Dada a sua "solução usual", isso significa que o shell que você está executando na janela do console tem um diretório em um sistema de arquivos naquele dispositivo como o diretório de trabalho atual.
Linux e Unixes em geral, desejam muito manter um sistema de arquivos montado se um processo tiver um diretório de trabalho atual nesse sistema de arquivos.
Você pode apenas usar
cd
na janela do console para sair de um diretório dentro ou abaixo, em/mnt
vez de matar a janela do console e o shell sendo executado dentro dele.fonte
Descobri uma situação que pode interferir na desmontagem de um dispositivo que compartilharei como resposta, mesmo que essa pergunta seja muito antiga.
Se você tiver compartilhamentos NFS hospedados na máquina, e qualquer um desses compartilhamentos NFS for suportado pelo dispositivo que você está tentando desmontar, será necessário parar de compartilhá-los (o melhor é interromper o serviço NFS, por exemplo,
sudo service nfs-kernel-server stop
nas versões recentes do Ubuntu ) O servidor NFS pode não aparecer no lsof ou no fusor, o que pode dificultar a identificação do problema.fonte