Filesystems
執行 du 命令將無限報告為磁碟使用情況
我正在嘗試獲取儲存在我的主目錄中的內容的總大小。令我驚訝的是,它會在幾秒鐘後報告無窮大:
/home/user $ du -sh . Infinity
嗯?我很確定沒有遞歸符號連結,但
du
預設情況下無論如何都不應該遵循符號連結。我也試過du -shx .
,所以它不會跨越設備邊界 - 結果相同。我很確定我沒有無限的磁碟空間或磁碟使用情況。;-)
目標文件系統是一個沒有快照的 btrfs 子卷。
rsync
每天晚上將此目錄同步到外部磁碟就好了,這個“無限”沒有問題。但是,du
那裡的報告相同。評論回复:
我的主目錄中沒有掛載點:
$ mount|grep home /dev/sda3 on /home type btrfs (rw,relatime,compress=lzo,space_cache,autodefrag)
使用完整路徑而不是
.
作為參數顯示相同的行為。沒有大於 200GB 的文件:
$ sudo find -size +$((200*1024*1024)) | wc -l 0
我發現了這個錯誤報告,其中使用者在 btrfs 系統上遇到了同樣的問題。事實證明,問題來自一個特定
.xml
文件,其大小被錯誤地報告為 16 艾字節。對於送出錯誤的人來說,問題是文件系統損壞,問題通過將所有文件移動到
/tmp
(這是一個 tmpfs)、刪除原件然後再次複製回來來解決:mkdir /tmp/foo && cp -rv ~/* /tmp/foo && rm -r ~/* && mv /tmp/foo/* ~/