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

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

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

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/abd29d8f96f1dc1e4444-image_2196.png)

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

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

```
sudo umount overflow
```

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

**相關連結**

-   [PHP File Upload Error Codes; UPLOAD\_ERR\_OK - Dark Launch](http://darklaunch.com/2009/05/01/php-file-upload-error-codes-upload-err-ok)
-   [Handling file uploads](http://www.php.net/manual/en/features.file-upload.php)

-   [PHP: Error Messages Explained – Manual](http://php.net/manual/en/features.file-upload.errors.php)

-   [Overflow filesystem mounted as /tmp in linux](http://jarrodoverson.com/blog/overflow-filesystem-in-linux/)
-   [ubuntu - Overflow /tmp mounted when there is free space on / - Unix & Linux Stack Exchange](http://unix.stackexchange.com/questions/60731/overflow-tmp-mounted-when-there-is-free-space-on)
-   [What to do when the root partition is full?](http://www.debian-administration.org/articles/627)
