df vs du. Il mio disco è davvero pieno?


13

Strano problema ...

Perché ho usato full / partition, ma non è davvero usato?

Informazioni veloci:

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

Forse i-nodi? 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

Ma:

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

Forse ho qualcosa rotto nel monte? (ma nota che ho usato du con -x che calcola i file SOLO da / filesystem ...)

/ spazi aggiunti da me per una migliore leggibilità /

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)

kernel:

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

Davvero ... sono fuori da possibili idee al riguardo.

Cosa ho provato:

  • controlla se ci sono alcuni fd ancora aperti dopo rm -rf / usr / portage / distfiles / *
  • sync
  • riavvio
  • fsck

MODIFICA E SOLUZIONE:

Come sempre ho trovato una soluzione dopo aver chiesto aiuto (-;

Montare (come diceva Luke404) / partizionare da qualche altra parte e fare du -sh / mnt / qualcosa ha detto che ci sono 15 G di dati, quindi lo stesso come in df.

Qual'era il problema?

montare!

Ho creato / home partition in seguito, aggiunto a / etc / fstab, ho copiato i file da / home (on / partition) a / home (on / home partition) ma ho DIMENTICATO di rimuovere i file da / home at / partition.

Quindi avevo ancora i miei vecchi file su / home (su / partition).

Ma perché du-sxh mi ha detto 8G? Facile...

-x forza a non controllare diversi mountpoint, quindi ... non ha controllato / home mentre era montato. E c'era la mia casa mancante.

Grazie a Luke404 e pidpawel che mi hanno aiutato su IRC.

Dopo aver scritto questa sezione EDIT ho visto le risposte qui e Scrivener ha ottenuto il punto qui!

I problemi stupidi sono stupidi (-;


Contribuisci con la tua risposta e accettala quando il periodo di tempo è scaduto. In alternativa, accetta Scrivener's poiché ti avrebbe guidato a questo.
Andrew B,

In realtà, montare questo in un altro posto mi ha detto tutto, ma Scrivener risponde meglio a spiegare, quindi lascia che le persone future vedano che è buono (-;
morsik

Bene, il punto era che questa domanda aveva bisogno di una risposta accettata, sia che tu abbia contribuito (sei autorizzato a pubblicare risposte alla tua domanda) o alla loro. :) Grazie!
Andrew B,

Informazioni sulla risposta accettata: lo so. Ma non sapevo di poter accettare il mio (-; Grazie per info.
Morsik

Risposte:


13

Questo tipo di problema è sempre molto divertente.

La mia ipotesi? Hai dei file sotto uno dei tuoi mountpoint. Cosa significa? Bene, du -sh passerà a mano tutti i file che riesce a trovare.

Diciamo che ho una directory, A. Se scarico un mucchio di file in A, e poi monto, diciamo, / dev / sdb sopra A, df -h dirà che ho un mucchio di file che du non essere in grado di trovare!

Ciò accade più spesso con mountpoint che si montano e smontano regolarmente, come unità USB, unità di rete, ecc. È molto più raro vederlo quando i montaggi si verificano automaticamente durante l'avvio, poiché la finestra in cui si verifica è molto più piccola.


2
Sotto Linux, mount --bindè abbastanza utile per identificarli senza smontare il filesystem. cioè mount --bind / /mnt/tmp, guarda sotto i tuoi punti di mount. Sarai in grado di trovare i file mascherati e rimuoverli in modo sicuro.
Andrew B,

3

Hai controllato i file in luoghi (attualmente) non raggiungibili? Come roba sotto /home il filesystem di root , che dunon puoi vedere perché hai montato un altro filesystem /home?

Puoi dare un'occhiata a quelli montando il filesystem da qualche altra parte:

# mkdir /foo
# mount -o bind / /foo
# cd /foo
# du...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.