2013-09-28

Linux 的 /tmp 目錄變成 1MB 的 overflow 檔案系統如何解決

Linux 的 /tmp 目錄變成 1MB 的 overflow 檔案系統如何解決


今天有台 Linux 系統的硬碟滿了,導致系統發生異常,將空間清出之後,大部分的程式都可以正常運作,但是一個用 PHP 寫的網站卻出了點小問題,所有功能都能運作,MySQL 資料庫也能跑,但只要上傳超過 1MB 的檔案卻怎樣也上傳不成功 (UPLOAD_ERR_CANT_WRITE),查了好久才終於發現,原來是系統的 /tmp 暫存目錄只剩下 1MB 而已,而且檔案系統為沒聽過的 overflow 這個名稱,這篇文章用來解釋這個檔案系統的由來,以及解決方法。

先看看目前的檔案系統變成這樣:


其實我的 /tmp 根本沒有一個獨立的分割區,所以這個分割區是自動被建立的,而建立的時間點就在「磁碟空間不足」的時候,而且 Linux 系統預設這個暫時的 /tmp 分割區只會有 1MB 這麼大而已,主要目的是為了讓系統其他服務能夠維持一個基本的運作,有時候沒有這個 /tmp 目錄會導致許多服務無法正常啟動。

然而,解決的方法很簡單,只要把 overflow 檔案系統給 umount 掉即可,指令如下:

sudo umount overflow

如果因為檔案被鎖定的問題,而導致無法 umount 的話,可以先進入單人模式 ( telinit 1 ),然後再 umount 即可,否則就要重開機才能解決。

原文出處

1 則留言:

  1. 今天有台 Linux 系統的硬碟滿了,導致系統發生異常,將空間清出之後,大部分的程式都可以正常運作,但是一個用 PHP 寫的網站卻出了點小問題,所有功能都能運作,MySQL 資料庫也能跑,但只要上傳超過 1MB 的檔案卻怎樣也上傳不成功 (UPLOAD_ERR_CANT_WRITE),查了好久才終於發現,原來是系統的 /tmp 暫存目錄只剩下 1MB 而已,而且檔案系統為沒聽過的 overflow 這個名稱,這篇文章用來解釋這個檔案系統的由來,以及解決方法。

    回覆刪除