重建 Lion 的 Recovery HD 分割區

在 MacOS X 10.7.2 (Lion) 支援 Find My Mac,不過有個先決條件是,Mac 系統的硬碟分割區必須要有一個 Recovery HD,這個分割區除了作為重新安裝 Lion 系統的功能外,另一個就是 Find My Mac 的功能輔助。

當初,MacBook Pro 2008 的硬碟經過三次的轉移,分別是原來買的時候所附的 200GB,接著換到 OCZ SSD 96GB,最後到 Seagate Momentus XT 500GB,幾次轉移都是透是 Carbon Copy Cloner 做 MacOS 的移轉,而 Windows 的部份則是透過 WinClone 的移轉,MacOS 的轉移基本都沒有什麼大問題,所有的程式和資料都無痛的移轉到新硬碟去,完全都沒用到 Time Machine 或是重灌 MacOS。Windows 的部份即使是用 WinClone 來移轉,最後都還是失敗的,移轉到新硬碟後都是無法正常開機,所以,都是重灌一次才沒問題,不過,這是題外話。今天要說的 Recovery HD 分割區。

幾次轉移 MacOS,沒有重灌 MacOS 情形下,昇級到 10.7.2 當然就不會有 Recovery HD 的存在,這對於我就好像用了 10.7.x,但是好像缺少了什麼東西一樣。要建立 Recovery HD 最簡單的方式便是整顆硬碟刪除後,全新重灌 MacOS 10.7.x,這對於我是很不 smart 的做法,而搬動 200GB 以上的資料到其他硬碟加上所有應用程式重新設定,這種花費時間又不 smart 的做法,我一點也不想這麼做,但不把 Recovery HD 分割區重建出來,這就好像一根刺一般。這根刺一直在,讓我時時刻刻想要把它搞定。於是,今天找了資料,網路上果然有人提出重新建立 Recovery HD 分割區的方法,簡單說,就是利用另一個硬碟全新重灌 MacOS 10.7.x 後,再把灌好 MacOS 的硬碟裡的 Recovery HD 分割區複製到原來的硬碟去。詳細的方法,可以參考這兩篇文章(英文版中文版),兩篇的方法是一樣的。

我照著上述文章做,花了我一整個晚上的時間,最後,都卡在要把新的分割區變成 Apple_Boot 類型的分割區 (Recovery HD 分割區必然的類型),錯誤訊息都是 “gpt add: error: no space available on device”。我換了幾種方式產生新的分割區,用 Windows XP、用 Windows 7、用 partition magic 等,建立的分割區都無法轉變成 Apple_Boot 類型。最後,搞到凌晨零點,我只好暫時放棄。

於是,轉換一下心情,開始看 “智一在悠久的對面” 日影,看到一半突然靈光一閃,我重新搜尋了一下網站,用另一個關鍵字找,讓我找一篇文章,用他的方法,果然把分割區類型轉換成了 Apple_Boot,轉換後,MacBook Pro 2008 終於也有 Recovery HD 和 Find My Mac 的功能了。

稍微記錄我的步驟:
1. 用磁碟工具,在原來的 Macintosh HD 再分割出一個分割區,這時候,這個分割區的類型必定是 Apple HFS+。大小約 540MB (但是,磁碟工具會不讓你建立這個的空間,所以,建立時,1GB 就可以)。假設新建立的分割區是 disk0s3。
2. 完成後,進入終端機,使用管理者模式 (sudo bash)。以下步驟要注意,disk0 必須要是在 unmount 的狀態。
3. 這個步驟,可以照上述文章所提,利用重灌 MacOS 後硬碟中的 Recovery HD 分割區來複製。或是像我,利用另一台 MacBook 裡的 Recovery HD 來複製都可以。

dd if=/dev/disk1s3 of=/dev/disk0s3

disk1s3 是來源,disk0s3 是目的,因人而異。
4. 接著最重要的步驟,轉換成 Apple_Boot

asr adjust --target /dev/disk0s3 -settype "Apple_Boot"

disk0s3 也是因人而異。

如果沒有錯誤訊息,就完成了。至於,在上述文章都有提到要把 disk0s3 調整大小至 640MB,我發現我沒有調整它,似乎也發生什麼問題。所以,我的 MacBook Pro 2008 裡的 Recovery HD 大小目前 968MB,工作一切正常。