df vs du. Apakah disk saya sudah penuh?

13

Masalah aneh ...

Mengapa saya menggunakan partisi penuh, tetapi tidak benar-benar digunakan?

Info cepat:

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

Mungkin i-node? Tida ...

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

Tapi:

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

Mungkin saya memiliki sesuatu yang rusak di mount? (tapi bagaimanapun, perhatikan saya menggunakan du dengan -x yang menghitung file HANYA dari / filesystem ...)

/ spasi ditambahkan oleh saya untuk readibility yang lebih baik /

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)

Inti:

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

Sungguh ... aku kehabisan ide tentang hal itu.

Apa yang saya coba:

  • periksa apakah ada beberapa fd masih terbuka setelah rm -rf / usr / portage / distfiles / *
  • sinkronkan
  • reboot
  • fsck

EDIT DAN SOLUSI:

Seperti biasa saya menemukan solusi setelah meminta bantuan (-;

Mounting (seperti yang dikatakan Luke404) / partisi di tempat lain dan melakukan du -sh / mnt / sesuatu mengatakan ada 15G data, jadi sama seperti di df.

Apa masalahnya?

meningkat!

Saya membuat / home partisi nanti, ditambahkan ke / etc / fstab, saya menyalin file dari / home (on / partisi) ke / home (on / home partition) tetapi saya LUPA menghapus file dari / home at / partisi.

Jadi saya masih punya file lama saya di / home (on / partisi).

Tapi mengapa du-sxh memberitahuku 8G? Mudah...

-x memaksa untuk tidak memeriksa titik mount yang berbeda, jadi ... itu tidak memeriksa / rumah saat sedang dipasang. Dan ada rumah saya yang hilang.

Terima kasih kepada Luke404 dan pidpawel yang membantu saya di IRC.

Setelah menulis bagian EDIT ini saya melihat jawaban di sini, dan Scrivener mendapat poin di sini!

Masalah bodoh itu bodoh (-;

morsik
sumber
Silakan berkontribusi jawaban Anda sendiri dan menerimanya ketika periode waktu telah berakhir. Atau, terima ahli menulis karena itu akan membimbing Anda untuk ini.
Andrew B
Sebenarnya, memasang ini di tempat lain memberi tahu saya segalanya, tetapi jawaban Scrivener paling baik dalam menjelaskan, jadi biarkan orang-orang di masa depan melihat itu baik (-;
morsik
Yah, intinya adalah bahwa pertanyaan ini membutuhkan jawaban yang diterima, apakah itu yang Anda berkontribusi (Anda diizinkan memposting jawaban untuk pertanyaan Anda sendiri), atau milik mereka. :) terima kasih!
Andrew B
Tentang jawaban yang diterima - saya tahu. Tetapi saya tidak tahu bahwa saya dapat menerima sendiri (-; Terima kasih atas info.
morsik

Jawaban:

13

Masalah seperti ini selalu sangat menyenangkan.

Tebakanku? Anda memiliki file di bawah salah satu mountpoint Anda. Apa artinya? Nah, du -sh akan pergi dengan tangan melalui semua file yang dapat ditemukan.

Katakanlah saya memiliki direktori, A. Jika saya membuang banyak file ke A, dan kemudian me-mount, katakanlah, / dev / sdb di atas A, df -h akan mengatakan saya memiliki banyak file yang du tidak akan dapat menemukan!

Ini paling sering terjadi pada mountpoint yang me-mount dan umount secara teratur, seperti drive USB, drive jaringan, dll. Jauh lebih jarang untuk melihatnya ketika mount terjadi secara otomatis saat boot, karena jendela untuk terjadinya itu jauh lebih kecil.

Ahli menulis
sumber
2
Di Linux, mount --bindcukup berguna untuk mengidentifikasi ini tanpa melepas sistem file. yaitu mount --bind / /mnt/tmp, kemudian lihat di bawah titik pemasangan Anda. Anda akan dapat menemukan file yang disamarkan dan menghapusnya dengan aman.
Andrew B
3

Sudahkah Anda memeriksa file di tempat (saat ini) yang tidak terjangkau? Seperti hal-hal di bawah /home pada sistem file root , yang dutidak dapat Anda lihat karena Anda telah menginstal sistem file lain /home?

Anda dapat melihatnya dengan mengikat-mount sistem file di tempat lain:

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