Como posso diagnosticar e reparar o espaço da unidade ausente?

5

Eu tenho uma pequena partição ext3 / em uma unidade de 2T que parece ter uma discrepância em seu espaço livre. Como posso determinar o que está causando isso e como isso pode ser corrigido?

Depois de tentar tudo o que pude pensar, forcei um fsck na inicialização que não teve nenhum efeito.

Eu tenho outros sistemas configurados de forma idêntica que não exibem essa condição.

# df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             9.7G  8.9G  318M  97% /

# du -shx --max-depth 1 /
5.2G    /

# lsof | awk 'BEGIN {t=0} /(deleted)/ {t+=$7} END {print t}'
0

# tune4fs -l /dev/sda1 | grep -E 'state|Free|Reserve|size|Inode'
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem state:         clean
Inode count:              2621440
Reserved block count:     131029
Free blocks:              212317
Free inodes:              2487281
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      639
Inodes per group:         32768
Inode blocks per group:   1024
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
Inode size:               128

Editar:

fsck diz que a partição é 2% não contígua.

Para comparação com du acima (dispersão):

# du -hxs --apparent-size /
4.9G    /
    
por Dennis Williamson 26.08.2011 / 00:03

2 respostas

4

A única explicação que vem à mente é que você tem coisas escondidas atrás de um ponto de montagem, fora do alcance de du .

No Linux, você pode montar um bind do sistema de arquivos raiz para poder ver tudo em um ponto de montagem diferente. Em seguida, observe mais de perto as coisas que estão escondidas pelos pontos de montagem na vista original.

mkdir /root/root-rebound
mount -o bind / /root/root-rebound
du -sc $(df -P | awk 'NR>2 {print "/root/root-rebound" $6}')
    
por 27.08.2011 / 00:54
0

Você já olhou para a fragmentação? A única maneira que eu sei que du e df podem discordar (além da parte deletada que você já descartou) é overhead, e geralmente vem de um monte de arquivos fragmentados (onde du reportaria uma pequena quantidade, mas por causa do número de extensões os arquivos são realmente grandes no disco, e como visto pelo df).

Esta ferramenta pode mostrar o quanto a fragmentação está ruim em arquivos ext3:

link

    
por 26.08.2011 / 05:43