如何解決 Linux 中“磁碟空間不足”的問題
明明有很多剩餘空間,但 Linux 系統依然提示沒有空間剩餘。為什麼會這樣呢?Linux 偶爾會有一些令人沮喪的模糊的錯誤訊息出現,而這就是其中一種。不過這種錯誤通常都是由某幾種因素導致的。
透過 du 和 df 檢查磁碟空間
在開始行動前,最好先檢查一下是否磁碟上是否確實還有空間剩餘。雖然桌面環境的工具也很不錯,但命令列上的工具更直接,要好的多。
首先讓我們看看 du
命令。用它來檢查問題磁碟所在的掛載點目錄。本文假設出問題的分割槽掛載點為根目錄。
sudo du -sh /
由於它要遍歷磁碟中的所有檔案,因此需要花費一點時間。現在再讓我們試試 df
。
sudo df -h
把根目錄和在其中掛載的檔案系統加在這條命令的後面。比如,若你的有一個獨立的磁碟掛載到 /home
,那麼除了根目錄之外,你也需要把它加進來。使用空間的總和應該跟你 du
命令得到的結果接近。否則的話,就說明可能有已刪除檔案的檔案被程式佔用。
當然,這裡主要專注點在於這些命令的結果是否要小於磁碟的大小。如果確實小於磁碟大小,那麼很明顯有很多地方不對勁。
可能的原因
這裡列出了一些產生這種情況的主要原因。若你發現 du
和 df
的結果之間有差別,那麼可以直接檢查第一項原因。否則從第二項原因開始檢查。
已刪除檔案被程式所佔用
有時,檔案可能已經被刪掉了,但有程式依然在使用它。在程式執行期間,Linux 不會釋放該檔案的儲存空間。你需要找出這個程式然後重啟這個程式。
使用下面命令來定位程式。
sudo lsof / | grep deleted
這應該會列出出問題的程式了,然後重啟該程式。
sudo systemctl restart service_name
i 節點不夠了
檔案系統中有一些稱為 “i 節點” 的後設資料,其用來儲存檔案的相關資訊。很多檔案系統中的 i 節點數量是固定的,因此很可能 i 節點已經耗盡了而檔案系統本身還沒有用完。你可以使用 df
來檢查。
sudo df -i /
比較一下已用的 i 節點和總共的 i 節點數量。如果沒有可用的 i 節點了,那麼很不幸,你也無法擴充 i 節點。刪除一些無用的和過期的檔案來釋放一些 i 節點吧。
壞塊
最後一個很常見的問題就是壞的檔案系統塊。除非另有標記,否則作業系統很可能會認為這些塊都是可用的,這會導致檔案系統損壞或者硬碟壞死。最好是使用帶 -cc
標誌的 fsck
搜尋並標記出這些塊。記住,你不能使用正在使用的檔案系統(LCTT 譯註:即包含壞塊的檔案系統)中的 fsck
命令。你應該會要用到 live CD。
sudo fsck -vcck /dev/sda2
很明顯,這裡需要使用你想檢查的磁碟路徑取代命令中的磁碟位置。另外,要注意,這恐怕會花上很長一段時間。
相關:使用 fsck 檢查並修復你的檔案系統 [Linux]
希望這些方案能解決你的問題。這種問題在任何情況下都不是那麼容易診斷的。但是,在運氣好的情況下,你可以把檔案系統清理乾淨並讓你的硬碟再次正常工作。
via: https://www.maketecheasier.com/fix-linux-no-space-left-on-device-error/
作者:Nick Congleton 譯者:lujun9972 校對:wxy
相關文章
- 排查和解決 CentOS 伺服器磁碟空間不足問題CentOS伺服器
- swap空間不足問題解決
- ASM磁碟組空間不足ASM
- 雲伺服器空間不足如何解決?伺服器
- system表空間不足的問題分析
- Linux磁碟空間佔滿問題快速排雷Linux
- system表空間不足的問題分析(二)
- 檢測磁碟空間問題
- [Linux日記]解決Ubuntu升級出現/boot空間不足問題LinuxUbuntuboot
- sysaux 表空間不足問題處理UX
- Linux空間不足怎麼辦?磁碟滿了如何清理?Linux
- 救命神文!應對ubuntu磁碟空間不足(已解決)Ubuntu
- 歸檔目錄空間不足造成的問題
- windows10磁碟空間不足怎麼清理_win10磁碟空間清理的方法WindowsWin10
- Linux下/var/spool/clientmqueue空間不足的解決LinuxclientMQ
- 系統臨時表空間不足問題
- Linux空間不足怎麼辦?Linux磁碟滿了怎麼清理?Linux
- visualbox中linux磁碟不足的解決方法Linux
- db2解決load後系統空間不足問題DB2
- Jtti:如何解決空間ping值低的問題?Jtti
- oracle的臨時表空間寫滿磁碟空間,解決改問題的具體步驟Oracle
- 解決docker容器存放目錄磁碟空間滿了問題Docker
- 閃回區空間不足引發的SQL問題分析SQL
- Excel 2003記憶體或磁碟空間不足的解決方法Excel記憶體
- oracle的還原表空間UNDO寫滿磁碟空間,解決該問題的具體步驟Oracle
- nagios提示linux主機磁碟空間不足,清空/var/spool/mail/rootiOSLinuxAI
- LINUX下ORACLE軟體、資料檔案等所在的磁碟分割槽空間不足的解決思路LinuxOracle
- 磁碟空間不足,線上移動Oracle的資料檔案Oracle
- UNDO表空間不足解決方法
- Linux伺服器目錄空間不足解決措施Linux伺服器
- Linux下磁碟保留空間的調整,解決df看到的空間和實際磁碟大小不一致的問題Linux
- 解決FRA空間滿的問題
- [20170203]dg磁碟空間不足的處理.txt
- Hadoop org.apache.hadoop.util.DiskChecker$DiskErrorException問題等價解決linux磁碟不足解決問題排查HadoopApacheErrorExceptionLinux
- 給Oracle BIGFILE表空間增加磁碟(通用的LINUX增加磁碟空間方案)OracleLinux
- Mongodb中回收remove的磁碟空間MongoDBREM
- Oracle db_recovery_file_dest空間不足報ora-00257問題解決Oracle
- TEMP表空間不足解決 - temp group