啟動磁碟空間幾乎已滿:找出空間到底去了哪裡
警示總在最不該出現的時候跳出來:你正在匯出影片、安裝更新,或是儲存文件,macOS 就打斷你,跳出 您的啟動磁碟空間幾乎已滿。 本能反應是打開「下載項目」開始刪。通常能清出幾個 GB,警示隔天又回來,什麼都沒學到。
macOS 是在告訴你,這個宗卷已經沒有交換、更新和暫存檔需要的作業餘裕。那些還能回收、但目前仍被釘住的空間,會計入用量,跟真實檔案沒兩樣,所以刪掉看得見的檔案,數字有時會動,有時完全不動。
簡短答案: 先查清楚空間去哪了,再動手刪。用 df -h / 查看可用空間,打開 系統設定 > 一般 > 儲存空間,如果你刪了一個大檔,數字幾乎沒動,空間就是被快照或可清除空間池釘住,不是你看得見的那些檔案。
這則警示真正在說什麼
macOS 會在啟動宗卷上留一截保留空間,用來放虛擬記憶體交換檔、系統更新時的安裝程式暫存、程式工作時寫下的暫存檔,以及 APFS 的簿記。可用空間往這截保留靠過去時,系統就會警告你。
Apple 沒有公布精確的觸發門檻,而且會隨宗卷大小、當下系統在做什麼而變。把這則警示當成餘裕不足的訊號,不要當成一個可以倒推回去的精準量測。
比數字更重要的是兩個後果:
- 磁碟空間不夠的 Mac,會先變慢,然後才會壞掉。交換檔沒地方寫,記憶體壓力就升高,系統開始猛力壓縮和分頁。
- 即使安裝程式看起來比你的可用空間小,macOS 更新仍可能拒絕安裝,因為它會先暫存一份完整副本再套用。
刪之前先量
從檔案系統下手,不要先看 Finder,因為 Finder 回報的空間已經把可回收池算進去了。
df -h /
在一台 1 TB 硬碟的 Mac 上,讀出來大概像這樣:
Filesystem Size Used Avail Capacity Mounted on
/dev/disk3s1s1 926Gi 12Gi 299Gi 4% /
Used 欄很小,因為 / 是密封的系統快照,不是你的資料宗卷。Size 顯示 926Gi,磁碟卻標成 1 TB,是因為 df 用二進位 GiB 計,Apple 用十進位 GB 計。沒少東西,同一批位元組用兩種單位在描述。
要看整個容器,改問 diskutil:
diskutil info / | grep -i "Container"
Container Total Space: 994.6 GB (994610155520 Bytes)
Container Free Space: 321.0 GB (321045377024 Bytes)
現在你有一個真正的基準了。把可用空間的數字寫下來。下面每一步,都看這個數字有沒有動。
空間通常在哪
個人 Mac 的啟動磁碟滿了,幾乎總是下面六件事之一。照這份清單往下查,不要見最大的就刪。
| 嫌疑 | 怎麼確認 | 去哪處理 |
|---|---|---|
| 本機 Time Machine 快照 | tmutil listlocalsnapshots / 有列出項目 |
刪除本機快照 |
| 照片圖庫 | 通常是家目錄裡最大的單一項目 | 釋放照片儲存空間 |
| iOS 裝置備份 | ~/Library/Application Support/MobileSync/Backup |
刪除舊的 iPhone 備份 |
| 郵件下載 | 郵件的帳號資料會無限增長 | 減少郵件儲存空間 |
| 開發者快取 | Xcode、Docker、Homebrew、node 套件庫 | 清除開發快取 |
| 被忘掉的大檔 | 舊匯出、磁碟映像、下載檔 | 找出大檔 |
macOS 會把其中好幾項併進儲存空間設定裡的 系統資料 分類,所以那條長條看起來又嚇人又說不清。它標的是殘餘,不是一個你能打開的資料夾;見 系統資料到底包含什麼。
刪了卻騰不出空間時
就是這種情況把人趕去用清理工具。你刪了一個 20 GB 的檔案,清空垃圾桶,可用空間幾乎沒動。
常見原因是 APFS 的寫入時複製。本機 Time Machine 快照仍引用著被刪檔案佔用的區塊,檔案系統就不能釋放它們。空間會顯示成可清除,而不是可用。直接檢查:
tmutil listlocalsnapshots /
如果有列出項目,先讀 快照指南,別急著做別的。精簡快照往往就是全部解法,而且不會動到外接 Time Machine 磁碟上的備份。
第二個原因是 macOS 認為有些空間可以回收,因此不急著回收。真有東西需要時,它才會騰出來。這也是為什麼一台 Mac 回報的可用空間很少,卻仍能成功安裝更新。
儲存空間設定該用在它擅長的地方
系統設定 > 一般 > 儲存空間 擅長兩件事:分類長條讓你大致看出宗卷長什麼樣,建議面板則把你本來得四處找的控制項攤出來,包括自動清空垃圾桶、檢視大檔。
拿來量測就不怎麼準。分類會重疊,改完之後數字沉降得很慢,系統資料會吞掉分類器拿不準的一切。用它來定位,用 df 和 diskutil 來量。
不要做這些事
- 不要為了騰空間去刪
/System、/Library或/private裡的檔案。 在現代 macOS 上,系統宗卷是密封且唯讀的,能寫的那些部分都是承重的。 - 不要排程清空快取。 可重建的快取馬上會回來,掃完之後每個程式第一次啟動都會變慢。見 哪些可以安心清除。
- 不要相信號稱能釋放特定數量可清除空間的工具。 可清除空間是混雜池的上限,不是一份清單。
- 不要在 Finder 裡刪照片圖庫、郵件資料或備份資料夾 來騰空間。用所屬的程式來處理,資料庫才會保持一致。
要的是穩定狀態,不是一個大數字
目標是留得住的餘裕,不是一次性衝出來的最大數字。一台舒服地待在保留空間之上的 Mac,就不會再警告你,負載下也不會開始分頁。
走到那裡通常靠一項結構性調整,而不是連刪一堆小檔:把照片圖庫或影片封存移到外接磁碟、對大型圖庫開啟「最佳化 Mac 儲存空間」,或是拿掉一套不再用的開發工具鏈。任何一項都比一下午刪截圖更耐久。
檢視工具該放在哪
Mole 會先量再提議刪。它按真實佔用磁碟大小把宗卷攤開,在移除任何東西之前先告訴你每個候選是什麼,並且把項目移到垃圾桶而不是直接刪掉,所以選錯了還救得回來。它不會承諾一個自己證明不了的可清除數字。
操作順序
- 用
df -h /和diskutil info /記下可用空間。 - 檢查
tmutil listlocalsnapshots /,有快照就先處理。 - 找出真正最大的佔用者,先看家目錄,再看別處。
- 做一項結構性調整,然後再量一次。
- 宗卷有餘裕就停,不要等工具報出一個讓人滿意的總數。
常見問題
為什麼刪完檔案隔天警示又回來?
因為刪檔沒有改到結構。如果真正佔著的是照片圖庫、iOS 備份或一組快照,刪掉幾個 GB 的文件只會讓你剛好站在門檻之上,下一次更新或交換爆發又把你壓回去。
Mac 該留多少可用空間?
沒有官方數字,你讀到的任何具體百分比都是某人的經驗法則,不是 Apple 規格。實務上:夠一份完整的 macOS 更新做暫存,再加上你平常工作負載下的交換空間。
這則警示代表磁碟快壞了嗎?
不是。它回報的是容量,跟磁碟健康無關。那是另一個問題,有另一套症狀。
可以不理它嗎?
一陣子可以,macOS 會靠回收可清除空間繼續運作。代價是 Mac 在記憶體壓力下變慢,更新開始失敗,所以修好它,比天天關掉警示划算。