如何解決 Macbook 安裝非原廠 SSD 後休眠/喚醒當機問題

Macbook 很好用,但不論是因為隨著使用時間的累積,原本袖珍的儲存空間漸漸不足影響效能;或者是因為使用年限到達而產生硬體損毀情形,都必須更換 SSD(固態硬碟).前者花錢了事,後者代價慘痛.(這經歷有空再寫給各位分享.奉勸各位經常注意SSD的健康情形,並做好資料備份.)

不論是更換/升級 SSD,選項除了原廠昂貴高效能、高品質的 SSD 模組外,也有價格較為親民的第三方產品可選購.所謂的第三方,其實也都是鼎鼎大名的公司,如 Intel, SAMSUNG, SEAGATE, Kingston, Crucial…等大廠.若預算對您不是個問題,善用金錢的力量,直接服用水果牌原廠模組,本篇文章您就不需要再看下去了.但若您選擇的是使用第三方產品,就有極大的可能會與大叔一樣遇到這個問題:

電腦休眠後,就當機出現四國畫面

原因?大叔不想在此敘述複雜的技術問題,有興趣的話谷歌大神那裡可以找到非常多的討論,本篇直接給答案以利未來方便快速解決問題.

處理此問題基本思路就是:

  1. 休眠後仍繼續給隨機存取記憶體(RAM, 或稱內存)供電,不將儲存的資料倒入SSD
  2. 將SSD原本用於暫存資料的檔案刪除

實際操作如下:

更改休眠模式

hibernatemode 有 3 種修眠模式:

hibernatemode = 0

  • 休眠時,系統持續供電給記憶體
  • 暫存資料儲存於記憶體,不寫入SSD
  • 喚醒速度快,不佔用SSD空間
  • 暫存資料有遺失的風險
  • 耗電量較高(其實也只有一丁點ㄦ)

hibernatemode = 25

  • 休眠時,系統不供電給記憶體
  • 暫存資料儲存寫入SSD
  • 喚醒速度慢,佔用SSD空間
  • 暫存資料遺失的風險較低
  • 耗電量較低

hibernatemode = 3

  • 休眠時,系統持續供電給記憶體
  • 暫存資料儲存於記憶體,也寫入SSD(Safe Sleep)
  • 喚醒時自動選擇資料來源
  • 同時耗電與儲存空間

我們要把休眠模式改為「0」,在終端機輸入如下命令:

sudo pmset -a hibernatemode 0

系統會要求你的密碼,輸入後就會執行命令.

停止SIP

SIP, System Integrity Protection, 是 macOS 對重要的系統文件保護的一種措施,預設為開啟.若要刪除休眠暫存檔,我們必須暫停此保護機制.

  1. 重新開機,並持續按著 Command + R 按鈕,系統將進入回復模式.
  2. 進入回復模式畫面後,依序點擊選單「工具」–>「終端機」,並輸入下列命令
csrutil disable
reboot

系統會重新開機.這次不要進行干涉,正常開機並登入系統.

刪除休眠暫存檔

輸入以下指令以刪除先前建立的休眠暫存檔

sudo rm -f /private/var/vm/sleepimage
sudo touch /private/var/vm/sleepimage
sudo chflags uchg /private/var/vm/sleepimage

啟用SIP

重新啟用SIP以確保系統不被輕易的破解.

  1. 重新開機,並持續按著 Command + R 按鈕,系統將進入回復模式.
  2. 進入回復模式畫面後,依序點擊選單「工具」–>「終端機」,並輸入下列命令
csrutil enable
reboot

系統會重新開機.這次不要進行干涉,正常開機並登入系統.

檢查SIP以及暫存檔狀態

csrutil status
ls -la /private/var/vm

SIP狀態應該為啟用(enabled)
檔案大小應該為 0(zero)

這樣你已經完成系統的修改了,使用非原廠 SSD 造成的休眠當機問題就離你遠去了~

後續維護

原則上,只要有進行系統更新(macOS 版號有更動的大更新),就要重新設定一次.若覺得麻煩的話,建議使用蘋果原廠SSD模組,又快又省事.

文章更新

2024/10/17, 使用此方法在 macOS Sequoia 上可行

這沙發我要了

    發佈留言