Um umount que responde “target is busy” acontece frequentemente após uma ação simples: um serviço precisa ser parado, um disco USB deve ser removido ou um volume de backup deve ser desmontado. O kernel recusa porque um processo ainda está utilizando esse sistema de arquivos.
fuser permite identificar esse processo antes de matar qualquer coisa. Em um ponto de montagem válido, o comando lista os PID que utilizam seu sistema de arquivos.
Confirmar o ponto de montagem antes de usar fuser
Trabalhe a partir de um diretório diferente do volume a ser desmontado. Um shell colocado em /mnt/archives é suficiente para manter esse ponto de montagem ocupado.
Comece pedindo ao findmnt qual sistema de arquivos realmente abriga o caminho. Essa etapa evita executar fuser em um simples diretório localizado na raiz /.
cd /
findmnt -T /mnt/archives -o TARGET,SOURCE,FSTYPE,OPTIONS
A coluna TARGET deve designar o ponto a ser desmontado, por exemplo /mnt/archives. Se a saída retornar /, o caminho não é um volume distinto. Não prossiga com um comando destinado a desmontar um disco.
Antes de uma operação em um servidor, verifique também o papel do volume. Um backup ativo, um banco de dados ou um contêiner podem estar escrevendo nele mesmo que nenhum terminal esteja aberto.
- Mantenha uma sessão SSH ou console que não dependa do volume.
- Anote o serviço esperado, o ponto de montagem e a janela de intervenção.
- Verifique com
findmntse a pasta corresponde ao ponto de montagem esperado.
O guia findmnt no Linux ajuda a rever a fonte e o tipo do sistema de arquivos antes de uma intervenção no disco.
Ler os processos que mantêm o volume aberto
Use o ponto de montagem exato com -m. A opção -M adiciona uma proteção: fuser recusa o comando se o argumento não for um ponto de montagem real.
sudo fuser -vmM /mnt/archives
A saída pode conter o nome de usuário, um PID, o tipo de acesso e o comando. Um processo exibido com acesso ao diretório atual indica frequentemente um terminal permanecendo no volume. Um processo de serviço deve estar relacionado à sua unidade systemd ou ao seu aplicativo antes de qualquer ação.
O resultado não diz automaticamente qual processo é legítimo. Um agente de backup pode estar ativo enquanto um script esquecido roda a partir do mesmo volume. A decisão depende do serviço esperado naquele momento.
Para examinar um PID específico, complete com ps e veja sua unidade systemd quando o processo depender de um serviço:
ps -fp 2481
sudo systemctl status backup.service
Substitua 2481 e backup.service pelos valores observados. Para arquivos, sockets e portas associados a um processo, o artigo sobre lsof complementa bem esse diagnóstico.
Parar o serviço correto antes de um umount
Quando você identificou uma unidade systemd, pare-a corretamente. Esse método dá ao serviço tempo para fechar seus arquivos e escrever seu estado final.
sudo systemctl stop backup.service
sudo fuser -vmM /mnt/archives
sudo umount /mnt/archives
O segundo comando fuser não deve mais exibir o processo do serviço parado. Se outro PID permanecer presente, analise-o por sua vez em vez de reiniciar umount em um loop.
fuser -k existe, mas não é uma resposta automática a um volume ocupado. Essa opção envia um sinal aos processos encontrados e pode interromper um backup, um processamento de negócios ou um shell de outro administrador. Eu escolheria a parada ordenada do aplicativo enquanto a unidade ou o script for identificável. Uma máquina bloqueada durante uma parada controlada é o caso em que uma ação mais direta pode ser discutida, com um console e um procedimento de incidente.
Verificar se o volume realmente desapareceu
Um umount silencioso indica apenas que o comando não retornou erro. Revise o caminho com findmnt e verifique as últimas mensagens do kernel se o dispositivo for removível.
findmnt -T /mnt/archives
journalctl -k -n 20 --no-pager
Após um desmontagem bem-sucedida, findmnt -T /mnt/archives pode ainda mostrar o sistema de arquivos raiz para o diretório vazio, mas não deve mais exibir a antiga fonte de volume nesse ponto de montagem. Para um disco USB, aguarde também que as gravações sejam concluídas antes de desconectá-lo.
Referência de comportamento: manual do fuser de psmisc.