Arquivos abertos
Processos com arquivos abertos são os culpados usuais. Exibi-los:
lsof +f -- <mountpoint or device>
Há uma vantagem em usar /dev/<device>
em vez de /mountpoint
: um ponto de montagem desaparecerá após um umount -l
ou pode estar oculto por uma montagem sobreposta.
fuser
também pode ser usado, mas em minha opinião lsof
tem uma saída mais útil. No entanto, fuser
é útil quando se trata de matar os processos que causam seus dramas, para que você possa continuar com sua vida.
Listar arquivos em <mountpoint>
(veja a advertência acima):
fuser -vmM <mountpoint>
Mata interativamente apenas os processos com arquivos abertos para gravação:
fuser -vmMkiw <mountpoint>
Após remontar somente leitura ( mount -o remount,ro <mountpoint>
), é seguro (r) matar todos os processos restantes:
fuser -vmMk <mountpoint>
Mountpoints
O culpado pode ser o próprio kernel. Outro sistema de arquivos montado no sistema de arquivos que você está tentando umount
causará sofrimento. Verifique com:
mount | grep <mountpoint>/
Para montagens de loopback, verifique também a saída de:
losetup -la
Inodes anônimos (Linux)
Inodes anônimos podem ser criados por:
- Arquivos temporários (
open
com O_TMPFILE
)
-
inotify relógios
- [eventfd]
- [eventpoll]
- [timerfd]
Este é o tipo de pokemon mais evasivo e aparece na coluna lsof
do TYPE
como a_inode
(que não está documentado no lsof
man page ).
Eles não aparecerão em lsof +f -- /dev/<device>
, então você precisará:
lsof | grep a_inode
Para matar processos que contêm inodes anônimos, consulte: Listar os atuais relógios inotify (nome do caminho, PID) .