Linux

df 對 du。我的磁碟真的滿了嗎?

  • March 9, 2013

奇怪的問題…

為什麼我使用了完整/分區,但並沒有真正使用?

快速資訊:

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

也許 i 節點?諾…

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

但:

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

也許我在山上有什麼東西壞了?(但無論如何,請注意我將 du 與 -x 一起使用,它僅從 / 文件系統計算文件……)

/我添加的空間以獲得更好的可讀性/

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)

核心:

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

真的……我對此沒有任何想法。

我嘗試了什麼:

  • 檢查 rm -rf /usr/portage/distfiles/* 之後是否還有一些 fd 仍然打開
  • 同步
  • 重啟
  • fsck

編輯和解決方案:

與往常一樣,我在尋求幫助後找到了解決方案(-;

在其他地方掛載(如 Luke404 所說)/分區並執行 du -sh /mnt/something 告訴有 15G 的數據,所以就像在 df.

出了什麼問題?

山!

我後來創建了 /home 分區,添加到 /etc/fstab,我將文件從 /home(在 / 分區上)複製到 /home(在 /home 分區上),但我忘記從 /home 的 / 分區中刪除文件。

所以我的舊文件仍然在 /home 上(在 / 分區上)。

但是為什麼 du -sxh 告訴我 8G?簡單的…

-x 強制不檢查不同的掛載點,所以……它在掛載時沒有檢查 /home。還有我失踪的/home。

感謝在 IRC 上幫助我的 Luke404 和 pidpawel。

寫完這個 EDIT 部分後,我在這裡看到了答案,而 Scrivener 在這裡找到了答案!

愚蠢的問題是愚蠢的(-;

這種問題總是很有趣。

我猜?您在一個掛載點下有文件。這意味著什麼?好吧, du -sh 將手動瀏覽它可以找到的所有文件。

假設我有一個目錄 A。如果我將一堆文件轉儲到 A 中,然後將 /dev/sdb 掛載在 A 之上,df -h 會說我有一堆文件 du 不會能找到!

這種情況最常發生在定期掛載和解除安裝的掛載點上,例如 USB 驅動器、網路驅動器等。當掛載在引導期間自動發生時,這種情況很少見,因為它發生的視窗要小得多。

引用自:https://serverfault.com/questions/486164