• 當前位置: 主頁 > Linux安裝教程 > 常見問題 >

    如何解決Linux中“磁盤空間不足”的問題

    時間:2020-03-23 11:05來源:網絡整理 作者:Linux先生 舉報 點擊:
    明明有很多剩余空間,但Linux系統依然提示沒有空間剩余。為什么會這樣呢?Linux偶爾會有一些令人沮喪的模糊的錯誤消息出現,而這就是其中一種。不過這種錯誤

    明明有很多剩余空間,但Linux系統依然提示沒有空間剩余。為什么會這樣呢?Linux偶爾會有一些令人沮喪的模糊的錯誤消息出現,而這就是其中一種。不過這種錯誤通常都是由某幾種因素導致的。

    通過du和df檢查磁盤空間

    在開始行動前,最好先檢查一下是否磁盤上是否確實還有空間剩余。雖然桌面環境的工具也很不錯,但命令行上的工具更直接,要好的多。

    請點擊此處輸入圖片描述

    首先讓我們看看du命令。用它來檢查問題磁盤所在的掛載點目錄。本文假設出問題的分區掛載點為根目錄。

    sudodu-sh/

    請點擊此處輸入圖片描述

    由于它要遍歷磁盤中的所有文件,因此需要花費一點時間。現在再讓我們試試df。

    sudodf-h

    把根目錄和在其中掛載的文件系統加在這條命令的后面。比如,若你的有一個獨立的磁盤掛載到/home,那么除了根目錄之外,你也需要把它加進來。使用空間的總和應該跟你du命令得到的結果接近。否則的話,就說明可能有已刪除文件的文件被進程占用。

    當然,這里主要專注點在于這些命令的結果是否要小于磁盤的大小。如果確實小于磁盤大小,那么很明顯有很多地方不對勁。

    可能的原因

    這里列出了一些產生這種情況的主要原因。若你發現du和df的結果之間有差別,那么可以直接檢查第一項原因。否則從第二項原因開始檢查。

    已刪除文件被進程所占用

    有時,文件可能已經被刪掉了,但有進程依然在使用它。在進程運行期間,Linux不會釋放該文件的存儲空間。你需要找出這個進程然后重啟這個進程。

    請點擊此處輸入圖片描述

    使用下面命令來定位進程。

    sudolsof/|grepdeleted

    這應該會列出出問題的進程了,然后重啟該進程。

    sudosystemctlrestartservice_name

    i節點不夠了

    請點擊此處輸入圖片描述

    文件系統中有一些稱為“i節點inode”的元數據,其用來保存文件的相關信息。很多文件系統中的i節點數量是固定的,因此很可能i節點已經耗盡了而文件系統本身還沒有用完。你可以使用df來檢查。

    sudodf-i/

    比較一下已用的i節點和總共的i節點數量。如果沒有可用的i節點了,那么很不幸,你也無法擴充i節點。刪除一些無用的和過期的文件來釋放一些i節點吧。

    環塊

    最后一個很常見的問題就是壞的文件系統塊。除非另有標記,否則操作系統很可能會認為這些塊都是可用的,這會導致文件系統損壞或者硬盤壞死。最好是使用帶-cc標志的fsck搜索并標記出這些塊。記住,你不能使用正在使用的文件系統(LCTT譯注:即包含壞塊的文件系統)中的fsck命令。你應該會要用到liveCD。

    sudofsck-vcck/dev/sda2

    很明顯,這里需要使用你想檢查的磁盤路徑取代命令中的磁盤位置。另外,要注意,這恐怕會花上很長一段時間。

    更多關于Linux系統的文章,請前往51Testing軟件測試網。()返回搜狐,查看更多

    推薦內容
  • 七星彩开奖排列七