df informa 100% do sistema de arquivos completo, du mostra apenas 25% usado mesmo que não haja nenhum arquivo desvinculado [duplicado]

1

Eu tenho um problema estranho, df mostra que rootfs está 100% cheio, mas du mostra que está usando 25%. Então eu checo os arquivos desvinculados do rootfs usando lsof +aL1 / e ele não mostra nenhum arquivo deletado / desvinculado do rootfs. Eu tentei find /proc/*/fd -ls | grep '(deleted)' também e ele não mostra nenhum arquivo desvinculado de rootfs!

O uso do inode é de apenas 9%

    
por Soumyadip DM 06.01.2016 / 16:19

1 resposta

2

Como sugerido nos comentários, um bind mount pode ocultar arquivos e diretórios do comando du . Mas pode haver outra coisa também ...

O seguinte pode ser revelador:

% strace -e statfs df /         
statfs("/", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=6288727, f_bfree=4705740, f_bavail=4380531, f_files=1605632, f_ffree=1412254, f_fsid={1878967121, -50608953}, f_namelen=255, f_frsize=4096}) = 0
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       25154908 6331948  17522124  27% /
+++ exited with 0 +++

Observe que há uma diferença entre f_bfree e f_bavail . De man statfs :

fsblkcnt_t f_bfree;   /* Free blocks in filesystem */
fsblkcnt_t f_bavail;  /* Free blocks available to
                         unprivileged user */

A coluna Used é baseada em um cálculo: é contagem total de blocos - contagem de blocos livre.

    
por 06.01.2016 / 17:28