df vs du. Meu disco está realmente cheio?

13

Problema estranho ...

Por que usei a partição completa, mas ela não é realmente usada?

Informações rápidas:

xwing ~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           16G   15G   75M 100% /
/dev/root        16G   15G   75M 100% /
devtmpfs        5,9G     0  5,9G   0% /dev
tmpfs           5,9G  552K  5,9G   1% /run
rc-svcdir       1,0M   72K  952K   8% /lib64/rc/init.d
cgroup_root      10M     0   10M   0% /sys/fs/cgroup
shm             5,9G     0  5,9G   0% /dev/shm
cachedir        4,0M  4,0K  4,0M   1% /lib64/splash/cache
/dev/sda1       124M   43M   76M  36% /boot
/dev/sda5        63G   25G   36G  42% /home
/dev/sda6       483G  147G  312G  33% /mnt/data
tmpfs           8,0G     0  8,0G   0% /var/tmp/portage

Talvez nós-i? Noo ...

xwing ~ # df -i
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
rootfs          1048576 548459   500117   53% /
/dev/root       1048576 548459   500117   53% /
devtmpfs        1525561    517  1525044    1% /dev
tmpfs           1525918    374  1525544    1% /run
rc-svcdir       1525918     61  1525857    1% /lib64/rc/init.d
cgroup_root     1525918      5  1525913    1% /sys/fs/cgroup
shm             1525918      1  1525917    1% /dev/shm
cachedir        1525918      2  1525916    1% /lib64/splash/cache
/dev/sda1         32768    314    32454    1% /boot
/dev/sda5       4194304 145765  4048539    4% /home
/dev/sda6      32153600  11325 32142275    1% /mnt/data
tmpfs           1525918      1  1525917    1% /var/tmp/portage

Mas:

xwing ~ # du -sxh /
8,3G    /

Talvez eu tenha algo quebrado no monte? (mas enfim, observe que usei du com -x, que calcula apenas arquivos de / filesystem ...)

/ espaços adicionados por mim para melhor legibilidade /

xwing ~ # mount
rootfs      on /                        type rootfs   (rw)
/dev/root   on /                        type ext4     (rw,noatime,data=ordered)
devtmpfs    on /dev                     type devtmpfs (rw,relatime,size=6102244k,nr_inodes=1525561,mode=755)
proc        on /proc                    type proc     (rw,nosuid,nodev,noexec,relatime)
tmpfs       on /run                     type tmpfs    (rw,nosuid,nodev,relatime,mode=755)
rc-svcdir   on /lib64/rc/init.d         type tmpfs    (rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755)
sysfs       on /sys                     type sysfs    (rw,nosuid,nodev,noexec,relatime)
debugfs     on /sys/kernel/debug        type debugfs  (rw,nosuid,nodev,noexec,relatime)
cgroup_root on /sys/fs/cgroup           type tmpfs    (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
cpuset      on /sys/fs/cgroup/cpuset    type cgroup   (rw,nosuid,nodev,noexec,relatime,cpuset)
cpu         on /sys/fs/cgroup/cpu       type cgroup   (rw,nosuid,nodev,noexec,relatime,cpu)
cpuacct     on /sys/fs/cgroup/cpuacct   type cgroup   (rw,nosuid,nodev,noexec,relatime,cpuacct)
freezer     on /sys/fs/cgroup/freezer   type cgroup   (rw,nosuid,nodev,noexec,relatime,freezer)
devpts      on /dev/pts                 type devpts   (rw,nosuid,noexec,relatime,gid=5,mode=620)
shm         on /dev/shm                 type tmpfs    (rw,nosuid,nodev,noexec,relatime)
cachedir    on /lib64/splash/cache      type tmpfs    (rw,nosuid,nodev,noexec,noatime,size=4096k,mode=755)
/dev/sda1   on /boot                    type ext2     (rw,noatime)
/dev/sda5   on /home                    type ext4     (rw,noatime)
/dev/sda6   on /mnt/data                type ext4     (rw,noatime)
tmpfs       on /var/tmp/portage         type tmpfs    (rw,size=8G)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

Núcleo:

morsik@xwing ~ $ uname -a
Linux xwing 3.6.2-gentooxwing #8 SMP Sun Oct 21 21:36:53 CEST 2012 x86_64 Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz GenuineIntel GNU/Linux

Realmente ... Estou sem idéias possíveis sobre isso.

O que eu tentei:

  • verifique se ainda há algum fd aberto após rm -rf / usr / portage / distfiles / *
  • sincronizar
  • reiniciar
  • fsck

EDIÇÃO E SOLUÇÃO:

Como sempre, encontrei a solução depois de pedir ajuda (-;

Montar (como Luke404 disse) / particionar em outro lugar e fazer du -sh / mnt / algo disse que há 15G de dados, assim como no df.

Qual era o problema?

monte!

Eu criei a partição / home mais tarde, adicionei ao / etc / fstab, copiei os arquivos de / home (on / partition) para / home (on / home partition), mas ESQUECI de remover os arquivos de / home em / partition.

Então, eu ainda tinha meus arquivos antigos em / home (on / partition).

Mas por que du -sxh me disse 8G? Fácil...

-x força a não checar diferentes pontos de montagem, então ... não checou / inicial enquanto estava montado. E havia a minha falta / casa.

Agradeço a Luke404 e pidpawel que me ajudaram no IRC.

Depois de escrever esta seção de edição, vi as respostas aqui, e o Scrivener entendeu!

Problemas estúpidos são estúpidos (-;

morsik
fonte
Contribua com sua própria resposta e aceite-a quando o período expirar. Como alternativa, aceite o Scrivener's, pois ele o guiaria para isso.
Andrew B
Na verdade, a montagem isso em outro lugar me contou tudo, mas Scrivener resposta é melhor para explicar, então vamos futuros pessoas vê-lo de bom (-;
morsik
Bem, a questão era que essa pergunta precisava de uma resposta aceita, fosse a que você contribuiu (você tem permissão para postar respostas para sua própria pergunta) ou a deles. :) Obrigado!
Andrew B
Sobre resposta aceita - eu sei. Mas eu não sabia que eu possa aceitar a minha própria (-;. Obrigado por informações
morsik

Respostas:

13

Esse tipo de problema é sempre muito divertido.

Meu palpite? Você tem arquivos embaixo de um dos seus pontos de montagem. O que isso significa? Bem, o du -sh percorrerá manualmente todos os arquivos que encontrar.

Digamos que eu tenha um diretório A. Se eu despejar um monte de arquivos em A e montar, digamos, / dev / sdb em cima de A, df -h dirá que eu tenho um monte de arquivos que você não ser capaz de encontrar!

Isso acontece com mais frequência com pontos de montagem que montam e desmontam regularmente, como unidades USB, unidades de rede, etc. É muito mais raro vê-lo quando as montagens acontecem automaticamente durante a inicialização, pois a janela para que isso ocorra é muito menor.

Scrivener
fonte
2
No Linux, mount --bindé bastante útil para identificá-los sem desmontar o sistema de arquivos. ou seja mount --bind / /mnt/tmp, então olhe sob seus pontos de montagem. Você poderá encontrar os arquivos mascarados e removê-los com segurança.
Andrew B
3

Você fez check-out de arquivos em locais inacessíveis (atualmente)? Como as coisas /home no sistema de arquivos raiz que você dunão pode ver porque montou outro sistema de arquivos /home?

Você pode dar uma olhada nelas montando o sistema de arquivos em outro lugar:

# mkdir /foo
# mount -o bind / /foo
# cd /foo
# du...
Luke404
fonte