OS X 作業系統具有必須在 EFI 環境啓動的特性,所以在黑蘋果開機啟動的過程中,「引導程式( BootLoader )」扮演著重要的角色。引導程式的作用就是,當電腦準備開機時,透過它來告訴 OS X 作業系統進行開機程序。黑蘋果少了引導程式,原生的 OS X 作業系統與黑蘋果硬體設備,就像兩條平行世界,永遠不會產生交集。
早期出現過幾個 Bootloader 引導程式,發展時至今日,以 Chameleon(變色龍)為主流。 Chameleon 安裝與使用簡單,教學也多,也不需繁瑣的手動設定。由於開放原始碼的屬性,幾乎每隔幾天就會有新版出現。 Chameleon 有幾個發展分支,例如黑蘋果技術網站 Tonymac.com 推薦使用的 Chimera 就是以 Chameleon 穩定版修改而成,改版更新的速度也比較慢。
而另一套 BootLoader 程式 Clover 則因複雜、過程較為繁瑣,所以比較少人討論分享。 本站撰寫的黑蘋果系列文,也是以 MultiBeast 包裝內含 Chameleon / Chimera 的教學為準,其中幾篇文章為了修正問題而提到 Clover,先前也有前輩大大留言提點 Clover 可解決某些 Chameleon / Chimera 產生的問題。直到這次 OS X Yosemite 10.10 DP1 面世,Clover 不僅在短短一天之內就釋出對應的版本,每天亦有更新版釋出,安裝 Yosemite 也越來越簡單,反觀 Chameleon 截至目前為止仍未提出可行的解決方案,使得 Clover 在最近這幾天,受到更多黑蘋果用戶的注意。
Clover 的創立者中的 kabyl ,他取用了 Apple 鍵盤上的 Command 鍵圖案「⌘」很像三葉草(Clover)中稀有少見、傳說發現它會帶來幸運的四葉變種(本文主圖)來命名。有些網站把 Clover EFI 照英文譯名「三葉草」可能會流失命名原意。一樣是開放原始碼的 Chameleon 與 Clover ,為何對 OS X 的支援反應有這些差異呢? 在俄文論壇(連結)似乎已有說明(作者是俄國人),不過俄文對我來說是外星文,透過 Google 翻譯和其他網路資訊(參考:[ metamuse ]用 Clover EFI 安裝 OSX 10.9 到 PC 享受完整體驗),大概了解差異的原因,與引導程式產生的 EFI 環境有關係。
EFI 是 Intel 於這個世紀初提出的個人電腦軟硬體的中介框架(Extensible Firmware Interface),用來取代個人電腦界使用超過20年的舊型 BIOS 架構(EFI 的 WIKI)。蘋果的 MAC 電腦與 OS X 早在 2006 年將 MAC 從 IBM PPC 轉向 Intel x86 時(詳見:黑蘋果二號攻略(1)),就直接開始使用 GPT + EFI 了。Windows 作業系統從 Windows 7 開始支援(但 Win7 對 EFI 相容性不好),至今 Windows 8.1 仍維持 EFI 與 BIOS 相容。
不過 BIOS 廠商對 EFI 規範也一直採取消極抵抗的策略,加上個人電腦硬體市場規格繁雜,且所以直到2012 年起 EFI 才逐漸成為硬體廠商主流,即便如此,目前市場上仍有不少產品不支援 EFI ,畢竟超過 20 年歷史的 BIOS 舊架構包袱無法說變就變。
既然 OS X 作業系統須在 EFI 環境下被引導啓動,Chameleon 採用的是 FakeEFI 模式,顧名思義就是「假的、 偽 EFI」,僅提供必要與簡化的 EFI 接口來引導 OS X,缺了不少本來應有的規範,並非完善標準的 EFI。蘋果 OS X 與其他開始支援 EFI 的作業系統隨時間發展演進,有可能讓 Chameleon 的問題越來越複雜,例如這次的 Yosemite 10.10 改變根目錄以 mach_kernel 為運作核心的規則,就把 Chameleon 的 FakeEFI 打回原形,瞬間 GG 了。
而 Clover 就不一樣了,它是基於 Intel EFI 規範標準的開發專案,建構出來的是一套接近真實的 EFI 環境。所以了,既然 MAC 的硬體也是標準的個人電腦 x86 規格(理由詳見這篇文章),理論上 Clover 若能完整的模擬 MAC 電腦的 EFI 框架,那麼 Clover 引導 OS X 就能產生一台如同 MAC + OS X 完整體驗的個人電腦,這也是 Clover 的終極目標。(當然用戶的電腦硬體配備也要能被 OS X 支援,可參考 這篇文章)
也因為對應不同硬體規格並模擬 MAC EFI 的需求, Clover 免不了有些複雜的修正設定,所以 Clover 並不容易上手,但它卻是體驗 OS X 最佳方案。我個人接觸的資訊也還不夠深廣,對 Clover 的各種資訊設定也還在摸索中,所以只先聊聊發現以及使用心得。
Clover 引導的好處
到底用 Clover EFI Bootloader 引導 OS X 有什麼好處呢?簡單一句話:讓黑蘋果更接近白蘋果了。這對已經習慣白蘋果安裝設置的用戶來說是更大的好處。以下我挑最明顯的例子來說明。
1. Boot Camp 輔助程式可以用了。黑蘋果可以和 MAC 一樣,用這個工具來下載 BootCamp 驅動、建立安裝 Windows 隨身碟,切割 Boot Camp 分割區,安裝 Windows 動作跟真正的 MAC 電腦一模一樣。
2. Parallels Desktop 安裝其他 OS X 的 Guest OS 也可以用了。以往使用 Chameleon / Chimera 引導的 OS X 環境,遇到 Parallels Desktop 安裝 OS X 時第一步就會被打槍,告訴你虛擬機與安裝的 OS X 版本不符。
3. Clover EFI Bootloader 可直接引導標準的 OS X 安裝隨身碟開機,並進行安裝 OS X 作業系統。
白蘋果使用標準 USB 安裝碟進行 OS X (10.7 以上) 安裝時,會出現兩次重開機的動作。第一次重開機前會建立臨時的暫存區並將部分安裝檔複製過來,重開機後先建立 Recover HD 透過暫存區進行實質的安裝,安裝完成之後進行第二次重開機。
如果使用 Chameleon 引導標準安裝碟,會卡在第一次重開開機無法引導的問題,這也是為何需透過 UniBeast 或是手動操作步驟的方式才能產生 Chameleon 引導的 USB 安裝碟,且安裝出來的 OS X 也缺少 Recover HD 分割,間接造成 Find my Mac 功能失效。
而 Clover 就不會有這個問題,第一次重開機時繼續選擇 Clover 引導安裝碟,一樣也會建立 Recover HD 且繼續進行實質安裝,跟白蘋果一模一樣。
4. Clover EFI 可引導 Recover HD 分割區,進行系統救援/重灌/回復。Chameleon 無法引導 Recover HD 分割區,只能使用 UniBeast USB 開機的方式進行系統救援,做法也會跟標準的 Recover HD 開機不太相同。
5. Clover EFI 大多數的情況下,可以直接用 AppStore 升級 OS X 作業系統,與白蘋果直接升級作業系統的方式相同。
6. Clover 可安裝在 EFI 分割區(也就是 GPT 分割的硬碟最前面自動產生的 200MB ),在電腦支援 UEFI 開機的條件下,用 UEFI 模式開機,相關驅動(kexts,DSDT...)也可一併放置於 EFI ,不需安裝在/S/L/E下,讓 OS X 維持最原味正統、未經修改的狀態。這樣做的好處就是實現上述第 5 點。而使用 Chameleon 引導的麻煩是,常常在系統升級之後,得再補做一次修正。
簡單地說,透過 Clover 引導的 OS X ,幾乎就跟一台 MAC 的動作一模一樣,先前使用 Chameleon 而不能運作某些功能的最後一哩路,在 Clover 上都能實現了。
安裝 Clover 概述:
接下來我以一般的例子來說明:建立以 Clover 引導的 OS X 安裝隨身碟,以及用 Clover 引導的 OS X 作業系統。
1. 建立 Clover 引導的 OS X 安裝隨身碟
- a. 建立標準的 USB 安裝隨身碟(也就是可讓 MAC 開機安裝 OS X 的隨身碟)
10.7 / 10.8:使用磁碟工具程式,將 /應用程式/安裝 OS X 10.x ...app/Contents/ShareSupport/InstallESD.dmg 回復到 USB 隨身碟即可。
10.9 請參考:How to Install OS X Mavericks using Clover, STEP 1 ~ STEP 2 的 1~12 步驟,看圖說故事即可。
- b. 建立 Clover 引導安裝 OS X USB 隨身碟
-- 安裝 Clover 到 OS X 安裝隨身碟:How to Install OS X Mavericks using Clover, STEP 2 的 13~25 步驟,看圖說故事即可。
-- Clover 的 EFI 目錄設置
config.plist 可能需要變更的參數
在標準 USB 安裝碟 + 安裝 Clover 引導之後,這支 USB 安裝碟就可以用來安裝黑蘋果了。
2. 安裝 OS X :由於 Clover 引導的 USB 安裝碟幾乎等同標準安裝碟,所以安裝 OS X 步驟,跟白蘋果用 USB 安裝 OS X 步驟一模一樣,可參考 How to Install OS X Mavericks using Clover, STEP 3,看圖說故事即可。
3. 用 Clover 引導 OS X 作業系統:How to Install OS X Mavericks using Clover, STEP 4,看圖說故事即可。
製作以 Clover EFI 為引導的 「4合一 USB 安裝隨身碟」
顧名思義,就是將 10.8(.5) / 10.9(.5) / 10.10(.x) / 10.11 (DB 版,Developer Beta) 四個版本安裝檔,全部放在同一支 USB 安裝隨身碟上。做法相當簡單。(註:此方法不適用 10.14 Mojave Beta。)
1. 準備一隻大容量的 USB 隨身碟,例如 > 64 GB 。
2. 使用 GPT (GUID) 分割出多個卷冊 (Volumes) ,每個卷冊至少 > 6.5 GB。假設卷冊名稱為 EFI (200MB自動產生,隱藏) / A (6.5GB) / B (6.5GB) / C (6.5GB) / D (6.5GB) / TempOS (6.5GB) / 2 (剩餘空間) 為例:
3. 照上述 「建立 Clover 引導的 OS X 安裝隨身碟 」的方式,將 Clover 安裝在隨身碟的 EFI 卷冊上。
4. 建立 10.8.5 安裝隨身碟:
a. 開發者可到 Apple Developer 後台領取下載碼,在 AppStore 下載。一般用戶可透過 Internet Recover 從預設出廠為 10.8 的機器取得,或是上網求問谷歌大神。
b. 將 InatallESD.dmg 回復到卷冊 A ,即可完成 10.8.5 安裝隨身碟。
5. 建立 10.9(.5) 安裝隨身碟
a. 開發者可到 Apple Developer 後台領取下載碼,在 AppStore 下載。一般用戶可透過 Internet Recover 從預設出廠為 10.9 的 Mac 機器取得,或是上網求問谷歌大神。
b. 開啟終端機,執行
sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/B --applicationpath /Applications/Install\ OS\ X\ Mavericks.app --nointeraction
即可完成 10.9(.5) 的安裝隨身碟。
6. 建立 10.10(.x) 安裝隨身碟
a. 目前不論是開發者 / 一般用戶,皆可在 Mac AppStore 下載。
b. 開啟終端機,執行
sudo /Applications/Install\ OS\ X\ Yosemite.app/Contents/Resources/createinstallmedia --volume /Volumes/C --applicationpath /Applications/Install\ OS\ X\ Yosemite.app --nointeraction
即可完成 10.10(.x) 的安裝隨身碟。
7. 建立 10.11 (DB) 的安裝隨身碟
a. 開發者可到 Apple Developer 後台領取下載碼,在 AppStore 下載。一般用戶目前尚未開放,僅能先預約申請成為測試用戶。想嚐鮮可上網求問谷歌大神。
b. 開啟終端機,執行
sudo /Applications/Install\ OS\ X\ 10.11\ Developer\ Beta.app/Contents/Resources/createinstallmedia --volume /Volumes/D --applicationpath /Applications/Install\ OS\ X\ 10.11\ Developer\ Beta.app --nointeraction
即可完成 10.11 (DB) 的安裝隨身碟。
最後這支 USB 差不多就長成這樣:
將來若有新的 OS X ,可以再繼續分割下去。像我就預留了 TempOS 這一塊,將來若有 10.12 (?) 且還能繼續使用 Clover 引導安裝的話,就把新的 OS X 安裝檔放在這裡。
這支 USB 的功能為:
(1) Mac 安裝 10.8.5 (限 2013 年以前且符合最低限制的 Mac 機種 )、 10.9.5 (限 2014 年以前且符合最低限制的 Mac 機種)、10.10.3 (符合最低限制的 Mac 機種)、10.11 (符合最低限制的 Mac 機種)。
(2) 黑蘋果安裝 10.8.5 (限四代 CPU 以前)、10.9.5 (限四代 Intel CPU 以前)、10.10.3、10.11 。
取得最新版 Clover (2016.11.28 補充:舊法,已不適用。請參考新法)
最後介紹自行編譯 Clover 並隨時取得最新版 Clover 的方式:
1. Mac AppStore 下載 XCode
2. 打開 XCode ,在選單的 XCode -> Preferences -> Downloads 頁籤,下載 Command Line Tools
3. 下載 Clover 原始檔( CloverGrower on GitHub)
4. 解壓縮,執行 CloverGrower.command 。接著會自動進行下載相關程式碼和套件進行編譯,這動作需要連結網路,視情況約幾分鐘至半小時不等的時間。
5.最後完成時,會在版號目錄下建立 pkg 安裝檔,和驅動光碟映像檔 .iso。
Q: 如果出現「Cannot pull with rebase: You have unstaged changes.Please commit or stash them.」怎麼辦?
A: 先執行 git reset --hard 再重試看看。
Q: 若出現 ed2k 的版本問題時?
A: 執行 svn up -r 18198 ~/CloverGrowerPro/edk2 將 ed2k 退回到 18198 版。
2019.09.08 補充:自行編譯產生最新版 Clover EFI 安裝程式
從 v2.5k_r507x 版本開始,以下的方式又不能用了。編譯 Clover EFI 的方式常常在變動,所以有關「自行編譯最新版 Clover EFI 安裝程式」的最新操作方法,一律移到「自行編譯最新版 Clover EFI 安裝程式與錯誤問題集」這篇文章中一併說明。
2016.11.28 補充新法:自行編譯產生最新版 Clover EFI 安裝程式(已棄用)
上面的「取得最新版 Clover 」方法,隨著 Clover Command 與 Xcode 改版之後,如今已經不適用了。以下為最新可用且較為簡單的方式(需連上網際網路):
1. 取得 Xcode:從 Mac AppStore 取得最新版 Xcode。
2. 目前最新的 Xcode 已經內建 Command Line Tools 了。只需設定即可:工具列 Xcode -> Preferences ,切換到 Locations 頁籤,下拉設定 Command Line Tools 即可。
接著就不需要操作 Xcode 了,可將 Xcode 關閉。
3. 到這裡下載「Build_Clover.command」檔案 (insanelymac.com),可得到 Build_Clover.command_x.x.x.zip 檔案。
4. 解壓縮 Build_Clover.command_x.x.x.zip,可得到 Build_Clover.command 檔案。
5. 點擊執行 Build_Clover.command ,它會自動檢查所需要的環境設定,並自動下載必要的檔案在 ~/src 目錄下,完成後出現選單視窗。
6. 輸入 7 按 Enter ,子選單選 1:「1) Standard with both ia32 and x64」。
7. 經過一段漫長的時間,會在 ~/src/edk2/Clover/CloverPackage/sym 目錄下自動生成 .pkg 與其他相關檔案,該 .pkg 就是 Clover EFI 的安裝檔。
若需要光碟映像檔( .iso ),則在執行 Build_Clover.command 出現主選單時,選「10) enter Developers mode (only for devs)」(即輸入 10 按 Enter),並在下一層子選單內選擇「10) build all for Release」(輸入 10 按 Enter)
一樣會在 ~/src/edk2/Clover/CloverPackage/sym 目錄下產生所需要的檔案。
建議先執行過一次主選單 7) (先產生過 .pkg 檔) 再執行 10) 產生 iso 檔。若直接執行主選單的 10) -> 10,會出現 pkg 無法生成的錯誤。
註:倘若懶得自行編譯,可到官網下載稍舊的版本。
2019.07.12 補充:自行編譯最新版 Clover EFI 安裝程式與錯誤問題集。
2015.03.07 補充:使用 Clover EFI 引導 OS X / Windows (x64) 雙系統
先前的安裝方式都是把 Windows 安裝在 MBR 上,所以 Clover EFI 也就一直無法引導 Windows 作業系統。其實 Windows Vista 以後就開始支援 EFI 了(僅限 64bit 版本),不過 Windows 系統預設的 EFI 分割空間太小(Windows 7 以前有這個問題),整套 Clover EFI 引導程序放不進去,只足夠 Windows EFI 自己使用。後來無意間翻到了兩篇教學文章,可產生夠用的 EFI 分割區,終於讓 Clover EFI 能夠同時引導 OS X 與 Windows 了。
重點就一個:用 Windows 安裝程序建立 GPT 分割,不要用 OS X 的磁碟工具進行分割(因為它會產生 GPT + MBR 混合模式而限制 Windows 只能在 MBR 安裝)。簡單的描述一遍作法如下:
1. 使用 UEFI 開機進入 Windows 安裝程序:
- 由於 Windows 7 對 UEFI 的相容性還不夠好,所以需要做一些處理。開機安裝來說,UEFI BIOS 設定的大概邏輯為:啟用 CSM、顯示項目啟動必須設定為傳統(Legacy)、儲存項目啟動設定為 UEFI。說明如下:
- 如果不啟動 CSM,則 Windows 7 UEFI 安裝程序會出現 BCD 錯誤。
- 啟動 CSM 但顯示設定為 UEFI,則進入 Windows 7 UEFI 安裝程序之後畫面很可能會凍結,或是高機率卡在 BIOS POST 畫面。
- 儲存項目啟動設定為 UEFI 才能進行 GPT 分割。
- 以 GA-Z77X-UP4 TH 為例,如下圖:
- Windows 7 的話,製作成 USB 安裝隨身碟之後,因少了 \efi\boot\bootx64.efi 檔案,所以 USB 安裝碟只能以 Legacy (MBR) 方式開機。預設想要 EFI 安裝只能用 Windows 光碟安裝。光碟放入之後,開機選擇 UEFI : <光碟機的裝置名稱> 。
- 承上,下載 Windows 7 版 bootx64.efi 並複製到 USB 安裝碟的 \efi\boot\bootx64.efi,即可讓 Windows 7 安裝 USB 隨身碟支援 EFI 安裝。(資訊來源)
- Windows 8 的話,USB 安裝隨身碟同時支援 UEFI 與 Legacy (MBR),通常是選擇 UEFI : <USB隨身碟的裝置名稱> 這個項目就表示系統用 EFI 環境開機。 如果是光碟安裝的話,開機選擇 UEFI : <光碟機的裝置名稱> 。
之後就會來到 Windows 的安裝程序畫面。
2. 同時輸入 Shift + F10 開啟 Console 命令列視窗,先執行「diskpart」。出現「DISKPART>」命令列之後:
執行「list disk」,確認一下磁碟號碼與狀態。
執行「sel disk X」,X 代表我們要操作的磁碟號碼。
3. 接著輸入以下指令:
clean :清除磁碟上所有的分割表與資料(重要資料請事先備份。)
convert GPT:將磁碟轉成 GPT 分割
create partition EFI size=N:建立大小為 N MB 的 EFI 分割。N 建議至少 > 200MB。
create partition MSR size=128:建立大小為 128MB 的 MSR 系統保留區(這個是 Windows EFI 必要的分割區)。
list partition:檢視上述建立 partition 操作的結果。
sel partition 1:選擇要操作的對象為 EFI 這一塊分割區。
format FS=FAT32 label="EFI":將EFI 分割區格式化為 FAT32,並冠上 Volume 名稱為 EFI。
exit:離開 diskpart 程序。
4.回到 Windows 安裝程序,依照程序進行幾個步驟之後,來到選擇安裝位置的畫面。開始對尚未分割的區域進行處理。
若要安裝雙系統的話,直接先在這個畫面就先進行空間的分割。以下圖為例,64G 的磁碟空間,最終切割成 EFI(300MB),MSR(128MB),預計要安裝 Windows 的空間(29.4G),以及最後要安裝 OS X 的空間 (34.2G)。選擇好要安裝 Windows 的位置 (29.4G 這一塊),按「下一步」就會開始安裝 Windows 了。
5. 安裝完 Windows 之後,可用 Clover EFI 引導的 OSX USB 安裝隨身碟開機,進行 OS X 安裝(安裝在上個步驟保留給 OS X 的空間)。當然了,這邊要先做「清除」將該空間格式化成「Mac OS 擴充格式(日誌式)」才能安裝 OS X 系統。
我的實作結果是,安裝 10.8.5會莫名其妙停在第二次開機,但安裝 10.9 (以後) 是正常的。
6. 在完成 OS X 的安裝之後,這時候只能以 UEFI 引導 Windows 而還不能引導 OS X,所以最後一個步驟是在 EFI 分割區安裝 Clover。
使用 Clover USB 進入 OS X ,再將 Clover EFI 安裝在 EFI 分割區內,使用 Clover USB 重開機之後,「Clover Boot Option」->「Add clover boot options for all entries」將 Clover 的引導項目加入 UEFI BIOS 即可。細節就不贅述了...
參考資料:
[ metamuse]: [EFI] 安裝 EFI 版 Windows 與使用 Clover EFI 啟動管理員
XIN_BASE:使用Diskpart刪除筆電內建的還原磁區並整合 (delete partition noerr override)
留言列表