Você tem /proc
montado?
Sempre sendo alguém que cuida de ter /
montado somente para leitura na maioria das vezes, imagino que você também tenha optado por não montar o procfs. Mas procfs é necessário para lsof
encontrar arquivos abertos.
Arquivos mantidos abertos por processos são expostos pelo kernel através de links simbólicos em procfs. Os diretórios /proc/<pid>/fd
contêm um symlink para cada arquivo mantido aberto. O nome dos links simbólicos são os números dos descritores de arquivos, e o caminho referenciado pelo symlink é o caminho do arquivo.
Os links simbólicos pendentes ainda permanecem em /proc
para arquivos abertos que já foram excluídos. E o caminho referenciado do arquivo é renomeado para terminar com "(deletado)".
O que o lsof +L1
faz não é essencialmente diferente de um simples "one-liner" como:
stat -c%N /proc/[0-9]*/fd/* | grep deleted
Assim, você pode usar um one-liner similar para listar todos arquivos abertos que podem impedir que o sistema de arquivos raiz seja remontado (desde que funcione /proc
).
No entanto, se você teve /proc
montado, as únicas outras causas que posso imaginar são bugs ... Enfim, FYI, no meu sistema Debian Stretch atual. lsof +L1
funciona como esperado.
bash# lsb_release -d
Description: Debian GNU/Linux 9.5 (stretch)
bash# uname -a
Linux bwp-249-8 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u4 (2018-08-21) x86_64 GNU/Linux
bash# lsof -v
lsof version information:
revision: 4.89
[...]