Disk-Usage
如果我的磁碟空間不是稀疏的、被掛載點刪除或隱藏的,我的磁碟空間在哪裡?
我似乎在 ext4 根文件系統中失去了幾 GB(如果重要的話,在 VMWare ESX VM 中的 centos 7.1 上的 llvm 下)。
[someone@somewhere ~]$ sudo du -xsm / 4561 /
然而:
[someone@somewhere ~]$ sudo df -m / Filesystem 1M-blocks Used Available Use% Mounted on /dev/mapper/vg_sys-lv_root 8944 7562 956 89% /
我想也許有些東西在掛載點下,所以我嘗試了這個:
[someone@somewhere ~]$ sudo mount --bind / /vp [someone@somewhere ~]$ sudo du -xsm /vp 4561 /vp
也許某個程序仍在使用已刪除的文件:
sudo lsof | grep deleted
沒有顯示任何重要的東西。
也不會以 root 身份使用以下命令(在此處找到的命令)來查找稀疏文件:
find / -type f ! -size 0 -exec perl -le 'for(@ARGV){open(A,"<",$_)or next;seek A,0,4;$p=tell A;seek A,0,2;print if$p!=tell A;close A}' {} +
那麼,我的數據還能在哪裡,df 知道 du 在這種情況下不知道什麼?我還檢查了 df -i 並且不到一半的 inode 正在使用中。
其他可能的解釋:
- 您位於
chroot
或掛載名稱空間中,並且無權訪問整個文件系統。如果您不在/mount 命名空間中,您可以通過執行ls -id /
which來判斷。2``chroot
- 文件系統已損壞。
- 該空間正被其中一個特殊的 inode使用。您可以使用
debugfs
並發出一些stat <3>
,stat <4>
… 來驗證。- 該空間正在被刪除的文件使用,該刪除的文件由另一個 pid 命名空間中的程序打開(並且您不在根 pid 命名空間中)。
- 該空間正在被刪除的文件使用,該刪除的文件沒有被任何文件打開,但例如連接到循環設備(
losetup -a
以檢查)。請注意,稀疏文件不會導致 和 之間的
du
差異df
。