根部已填滿,但應有一些空間

根部已填滿,但應有一些空間

這讓我困惑了一段時間。我使用的是 Ubuntu 11.04。我的根分區已滿,但我不知道是什麼原因造成的。更奇怪的是,當我運行時df -h,這是輸出:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.2G  8.8G     0 100% /

正如您所看到的,應該有大約 400 MB 的可用空間,但Avail顯示為 0。我甚至卸載了一些程式來釋放空間,它又被填滿了。也歡迎就如何找出哪些文件(如果有的話)填滿空間提出建議。

答案1

第一個鏡頭:錯誤日誌中的高流量。我想如果你會下載視頻,你就會知道。 :)

 sudo du -sh /var/log
  • -s 是摘要
  • -h 是人類可讀的(k、M、G、T)後綴

對我來說是 20M,除了日誌目錄之外,還有一個安裝快取。使用

 apt-get clean 

如果這是你的問題。

當然,您應該檢查 /home 是否在您的根分區中。

如果您必須迭代搜尋大文件,我可以建議一系列命令,這些命令可以重複,並且在第一個初始步驟之後非常快:

  • 您從頂層的可疑目錄開始
  • 然後搜尋所有子目錄和檔案的大小,並按數字排序:

sudo du -s /var/* | sort -n 
0   /var/crash
4   /var/www
44  /var/games
124 /var/run
2306    /var/tmp
18538   /var/log
251876  /var/cache
1053231 /var/lib
  • 為了保持簡短,我刪除了這個例子。所以我們看到,最大的子目錄是 /var/lib,並對 /var/lib 重複這個步驟。現在搜尋速度快得多,因為計算結果以某種方式快取:

sudo du -s /var/lib/* | sort -n 
78116   /var/lib/apt-xapian-index
104580  /var/lib/dpkg
680503  /var/lib/postgresql

等等。遵循最大的目錄來尋找更大的檔案。此處不能使用 -sh,因為數字排序不適用於千位元組等的 k/M/G/T。

答案2

格式化後,ext2/3/4 檔案系統會保留一定百分比的磁碟空間供 root 使用者獨佔使用。預設為 5%。這樣做的目的是,即使非特權使用者填滿了所有可用的磁碟空間,系統也可以繼續工作並能夠啟動。

一般來說,填充任何檔案系統超過其容量的 95% 並不是一個好主意,因為這會導致過多的碎片,從而導致效能下降 - 即使在釋放磁碟空間之後也是如此。

man mke2fs

   -m reserved-blocks-percentage
          Specify the percentage of the filesystem blocks 
          reserved for the super-user.  This avoids fragmenta‐
          tion,  and  allows  root-owned  daemons, such as 
          syslogd(8), to continue to function correctly after
          non-privileged processes are prevented from writing 
          to the filesystem.  The  default  percentage  is 5%.

如果你絕對絕望,你可以用來tune2fs改變這個值。查看man tune2fs更多信息

相關內容