解決 OSX 不定時、不等長停頓狀況

在 OSX 上能做的維護動作沒有幾個,清 P RAM、修 disk permission,或是驗證硬碟有沒有錯誤或故障。

除了最近,我巳經好多年沒有清 P RAM,或許表示硬體與 OSX 或 apps 之間莫明發生衝突的情況巳經很少見。修 disk permission 也不是個經常需要的動作,只記得曾經在修完後解決喚醒後死當或自動重開的問題。至於驗證硬碟則是覺得檔案或硬碟有狀況時才會用到,而通常若硬碟出了什麼毛病,Disk Utility 的修復能力也相當有限。

曾被數個朋友問過,OSX 愈來愈慢,是不是要做磁碟整理,讓檔案不至太破碎進而改善效能? 有點資歷或明瞭 OSX 優點的 Mac user 都沒有這種從 Windows PC 帶來的習慣,因為 OSX 會自動整理破碎的檔案,只要你沒有每天晚上都關機的習慣 — 這或許也是從 Windows PC 帶來的。

話雖這麼說,但是系統愈來愈慢是事實,到底該怎麼解決? 最近我遇到一個狀況與此相關,也因為不曾遇過而感到新奇,因此特別留下紀錄。

狀況:OSX 不定時、不等長停頓

一年多前購買的 iMac 27″ 從前一陣子開始在不該有的時機出現「旋轉海灘球」症狀,頻率愈來愈高,時間愈來愈長,最後甚至演變成死當的結果。

一開始時因為不是每天都發生,大多是連續工作了幾小時之後,所以忍受了應該有一個月左右的時間,之後情況嚴重到不得不積極處理。

前面提到的方式皆無效,心想可能是硬碟壞了,或 RAM 壞了也不一定,因此使出更難得一用的招術 — Apple Hardware Test 1 來確認硬碟或 RAM 是否有硬體故障,結果沒有任何故障,或是有但查不出來。

解決方法:remap HDD bad blocks (sectors)

如果 OSX 不定時、不等長停頓,做過基本維護無效,又沒有硬體方面的故障,那麼就只剩一個原因 — 磁區損壞 (bad blocks / sectors) 導致讀寫不順或資料流失,且由於災情逐漸擴大所以 OSX 愈來愈慢最後甚至當機。

邏輯上的 HDD bad blocks / sectors 是可以修復的,OSX 隨附 Disk Utility 就有修復的能力,只要 format 掉這顆硬碟,並在 Secure Erase Option 選擇 Zero Out Data,藉由歸零的動作,Disk Utility 會確實地把磁區中壞掉的資料洗掉。

Disk Utility secure erase options

Disk Utility secure erase options

在較新的 OSX 版本中,Disk Utility Secure Erase Option 巳改為滑桿式介面,選擇左邊第二項就是單次 Zero Out 選項。

Disk Utility zero out data

Disk Utility zero out data

在較舊的 OSX 版本中則較為直覺。根據 CNET 的說明,單次 Zero Out 即可,三次、七次或更多次寫零動作對修復 bad sector 是沒有義意的。

額外說明

我非硬體與系統專家,對於硬體與系統運作方式不甚瞭解,雖然知道能以 Zero Out format 來修復 bad sector 導致 OSX 不定時、不等長停頓,甚至當機的問題,但是不清楚發生原因,也不瞭解何以能藉此修復。根據網路上所得資訊,bad sector 是很常見的,這個問題或許也發生在你身上或我別台 Mac 之中,只是很輕微而未能察覺。

雖說此次問題不大,但令我憂心的是,何以買了十幾台 Mac 下來從未遇過這種狀況 (HDD 直接掛掉的例子則不勝枚舉),而這台 late 2012 iMac 27″ 才一歲多,在第一年時甚至不是主力並不常用 (當時仍使用 2010 MacBook Air 居多),卻就在它身上發生這種問題。我非專家,但能理解 HDD bad sector 可能在出廠時就巳存在的情況,也可以想像有逐漸擴大的可能性,因此即便目前看來巳經改善,仍不排除未來還會惡化的可能,情況或許會更嚴重、更難解決而需要換硬碟。

備份是解決 HDD 問題的基礎作為,修復磁區之後需要重灌 OSX,重灌完得把資料完整倒回去才能銜接出事前中斷掉的工作,所幸 OSX 有 Time Machine 和 Migration Assistant 這兩個方便的工具能夠無痛回復 Mac 出事前的狀態,不過整個過程仍然費時令人無奈。

有多費時? 以下列出幾個項目大約所需時間:

  • Apple Hardware Test: extended testing 約半個小時 (8GB RAM / 1TB HDD)
  • 單次 Zero Out fortmat: 約 2.5 小時 (1TB HDD)
  • Reinstall OSX: 近一小時 (10.9 Maverick,包含自動下載所需約十多分鐘的時間)
  • Restore Time Machine backup: 約 2.5 小時 (約 250 GB 資料,Firewire 800 外接碟)

Mac 出狀況非常惱人,把時間耗在這種事上頭也很沒有意思,不過若是把機器送去維修中心,從驗證問題到付錢取回可能要一個禮拜的時間,如果遇到本文所提的問題,還是自已搞一搞就好。

此次發生的狀況不是太難解決,之後硬碟若再有更困難的問題發生,拆換 iMac HDD 可是更麻煩且有不慎損壞風險的事情一件,希望不會發生,或者動念換 SSD。

Notes:

  1. 開機灰畫面出現時按 Command + D 不放直至載入 Apple Hardware Test