題 如何將linux磁盤裝滿,但文件總數要少得多?


df 報告16G分區為100%。 du 在root上報告文件中的1G。我的所有磁盤空間都去了哪裡?


4
2017-09-17 22:00


起源




答案:


文件可以由掛載點隱藏。

(當我將輔助卷脫機以進行維護時,必須運行預定程序(備份),並且興高采烈地重新創建它的目錄結構而不是失敗。)


7
2017-09-17 22:11



啊。很好。當我們不像想要的那樣聰明時,向我們展示一個很好的謎題。 - dmckee


除了 道格所討論的浪費空間問題,某些文件系統總共擁有有限數量的inode(唯一文件ID),一旦創建了這些文件系統,就無法創建新文件。使用 df -i 看看你站在哪裡inode。

此外,有可能 ext[23] filesystems(和其他?)為超級用戶保留一小部分磁盤。通常情況下,這只是百分之幾(在舊系統中通常為5),但可以設置得比這更高。我相信你想用 tune2fs 在這裡(Mac OS和可能的其他unix調用此 tunefs-m 選項。


4
2017-09-17 22:10





您可能打開了運行舊的未鏈接文件的程序。這些文件仍然存儲在磁盤上,直到這些程序關閉,但不會從文件系統樹鏈接。

請注意,這與Windows行為不同,後者不允許您刪除此類文件。


3
2017-09-17 22:06





你有很多非常小的文件嗎? Linux(和大多數操作系統)以塊大小的塊(比如4k)寫入文件,每個文件使用該大小的倍數。例如,如果您有一個121字節的文件,則磁盤上仍會使用4096字節。該區塊的其餘空間基本上是“浪費”的。


2
2017-09-17 22:04



這佔了幾兆字節,但不是分區的94%。 - Justin Love
沒錯,除非在極端的情況下,你寫了一個失控的程序,產生了數以百萬計的這些小文件......去過那裡,做到了:( - Doug


我有同樣的問題。在我執行備份驅動器同步後,我遇到了主要啟動磁盤已填滿的問題。

>rsync -avxHAXW /media/backup1 /media/backup2

在此同步之後,我的主磁盤已滿......這使我感到困惑。事實證明我不小心將文件複製到我的啟動盤,而不是我的backup2。我糾正了錯誤,刪除了主磁盤上的大量文件並重新進行rsync。即使在卸載並重新安裝我的備份磁盤後,我的啟動盤也沒有空間。我甚至嘗試清理啟動盤上的大文件....

>find . -type f -print0 | xargs -0 du -s | sort -n | tail -25 | cut -f2 | xargs -I{} du -sh {}

刪除了不再需要的任何大文件。我也確保清空垃圾。

>empty-trash

完成所有工作後...磁盤仍然滿了。我決定重新啟動機器。重啟後,我的啟動盤分區從100%已滿到10%已滿!似乎rsync進程必須繼續在後台運行,保留磁盤資源。我討厭提供這個建議,但是在完成所有磁盤清理後,您可能只需重新啟動計算機就可以終止任何掛在數據上的後台進程,從而防止磁盤真正被釋放。


0
2017-10-17 15:29