Disk-Usage

如果我的磁碟空間不是稀疏的、被掛載點刪除或隱藏的,我的磁碟空間在哪裡?

  • March 4, 2016

我似乎在 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

引用自:https://unix.stackexchange.com/questions/267629