Skip to content

Instantly share code, notes, and snippets.

@sujunmin
Created September 1, 2021 06:08
Show Gist options
  • Save sujunmin/c9ffd7137ea6fcf5ce83a55a0d56a5b4 to your computer and use it in GitHub Desktop.
Save sujunmin/c9ffd7137ea6fcf5ce83a55a0d56a5b4 to your computer and use it in GitHub Desktop.
研究如何使用蘋果環境
  1. 先了解什麼是 UEFI (Google UEFI 有很多說明)。
  2. 知道自己的電腦 BIOS 要怎麼調 UEFI 開機,開機順序是不是能夠手動調整 (以下說明的剛好都有,能夠手動調整的筆電跟不能手動調整的桌機。
  3. 會備份自己的 ESP 磁區 (Windows 下我覺得 DiskGenius 不賴,免費版雖會有警告說只能複製小檔,但已經夠了,Mac 下的下面再說)。
  4. 會做 UEFI 開機碟 (如果搞爛了還能夠透過這個開機碟恢復),最好是 Mac 安裝碟 (我是透過桌機的 Mac 去做)。
  5. 知道什麼是 CFG-lock,為什麼要解鎖 CFG-lock,要不要解鎖 CFG-lock,能不能從 BIOS 解鎖,因為這個部分跟硬體有關係,所以要小心做,小心決定,剛好我也是有解鎖跟沒有解鎖各一,感覺是還好,但後續有一個地方就是卡關,下面會說明。
  6. 要怎麼分配磁碟,雙系統開機還是單一系統,要規劃一下,我的桌機是雙系統,筆電是單一系統。
  7. 上 github 找有沒有人做好了 efi 與 kext (蘋果的 kernel extension),做好了是最好的,可以直接拿來用 (我的筆電就是因為這樣,不想折騰太久,就找一些大大貢獻的資料,去買同型號的二手筆電)。
  8. 現在都是 OpenCore 方式,我個人覺得如果有人做好,基本上十分簡單。
  9. 先找一個 16G 以上的隨身碟,用 DiskGenius 分割個 ESP 空間放之前找到的版本 (EFI 目錄下,另外記得要看清楚,像我的筆電就是要先用舊版的 OpenCore 與相關 efi),接下來做 Mac 開機碟,我是透過桌機的 Mac 做開機碟
  10. 開始灌 MacOS,插入隨身碟重開機,如果你的 UEFI 開機能在 BIOS 夠手動調整開機選單 (會讓你選 efi 位置的) 就到 BIOS 隨身碟加進去。如果不能手動調整,就得重開幾次,插不同的洞試試,或是在 Windows 中透過 Bootice 來設定 UEFI 開機列表。
  11. 安裝時就一步一步針對之前分配磁碟的規畫下去做,可能要重開幾次,都要從隨身碟重開,安裝程式會自動開 ESP 空間,安裝蘋果的 UEFI efi 與相關檔案,當然,那是不能用的,我們不能透過蘋果原生的 efi 開機,所以都得從隨身碟重開。
  12. 安裝完後可以進去系統。完成設定以後,我們來執行不再使用隨身碟方式作業。Mac 安裝 OpenCore Configurator 這個好用的工具,他有一個功能,能夠 mount ESP 磁區,mount 完以後,把隨身碟的 ESP 所有資料都複製到電腦的 ESP 磁區。同樣的,調整 BIOS 開機列表 (這時候沒有 Windows 比較麻煩,需要有一個 WinPE 環境執行 Bootice 設定開機列表)。
  13. 重開機試試,應該就能直接開進 OpenCore 的 bootloader,選擇想要的了。
  14. OpenCore 的 bootloader 不錯的地方就是你不用管有多少東西要開 (Windows/Linux/MacOS),他會自己產生列表 (當然 ESP 磁區也要有後續相關的 efi)。
  15. 如果有需要升級 OpenCore 與相關的 kext (譬如說我的筆電,安裝的時候是比較舊版的 OpenCore,但 github 上有大大做更新的 OpenCore 與相關資料),那就跟之前做開機碟一樣,不一樣的是不用再做真的開機碟,只需把隨身碟的 ESP 磁區內容換成新的 OpenCore 版本)。為什麼要這一步?當然也可以直接更新電腦的,但不能開機就會很麻煩,所以先拿雖身碟試試是對的。
  16. 隨身碟開看看,沒問題就是可以再複製到電腦的 ESP。更新 kext 也是一樣,在隨身碟上先做,測試無誤後再更新到電腦上。
  17. 如果想追到最新,但是 github 大大沒更新怎麼辦?有一個工具很棒 OC-tool,拿舊的 OpenCore 設定檔跑一下,把一些獨特的 kext 還有 AML 檔餵它吃,就可以產生出最新的 EFI 與相關資料了,當然可能會有一些資料格式有問題、一些資料缺少的問題,不過有隨身碟模式可以試試,再機動調整就可以了 (譬如說我的筆電觸控板的 kext 就只能用舊版,新版的反應會很奇怪)。
  18. 前面有提到 CFG-lock,我的筆電因為大大好心,有特地做一個 CFG unlock 的 efi,只要用該 efi 開機,選擇 unlock 就可以解鎖,升級沒什麼問題。但我的桌機 BIOS 沒有 CFG-unlock 選項,也沒人幫他做 unlock efi,也無法透過 BIOS 檔案來觀察下 efi shell 來解鎖,就忘了桌機沒有解鎖 CFG-lock,新版本的 OpenCore 預設是 unlock 的 (AppleCpuPmCfgLock 與 AppleXcpmCfgLock 是 false),一開機就死在那,而且會影響到原來機器上的 OpenCore 設定。弄了半天終於有辦法把設定改成 true,就能開機做後續作業。
  19. 因為大部分應該都沒法是 Retina 螢幕,Retina 螢幕有一個好處,就是實際解析度比看到的還大,所以之前在居家辦公的時候,同事說我的截圖怎麼那麼糊,他也是用 Mac 筆電,可視解析度還比我小,找了一下原來要做這個 hiDPI,馬上好很多。
  20. 剛剛的 OpenCore Configurator 除了 mount ESP 磁區外,他其實是能設定各項功能的,但太燒腦了,基本上能不碰就不碰。
  21. 除了上面的工具以外,還有一個好用的工具 Hackintool,也是很重要的工具。
  22. 版本控會發現 OpenCore 升級完以後系統看到的版本還是原來的 (譬如說打開 Hackintool 會說版本還是舊的),這時候要清理 nvram,這個就像是一些基本設定的資料。這時候要透過 OpenCore Configurator 把設定設好,重開就能看到選項,但是之前設定的開機列表又會跑掉了,所以升級是件麻煩的事情,基本上沒事不會清 nvram。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment