前情提要。编译个项目,需要 macOS 版本在 Big Sur,手头的黑苹果是 Catalina,但是里面东西太多,升级不慎可能会大歇菜。ThinkPad T440p 的大部分时间属于闲置状态,在略作搜索后发现有成功先例。
很久之前安装黑苹果,是把 macOS 的安装盘映像中的 EPS 分区(俗称 EFI 分区)里植入 EFI 补丁;不久之前使用黑苹果是用我自己的理念和方法把一份白苹果直接迁移为黑苹果。可以说,近几个版本的 macOS 制作黑苹果,已经疏于实操了。
首先要下载 Big Sur 的映像。网络上的现成映像,咱不大信得过。苹果官方文档页面中有各个版本的下载链接(1. 下载要在 macOS 上经由 AppStore 完成;2. 特别古早的没有列出,写本文时最老截止到 High Sierra)。下载成功后,苹果后期的风格,已经把系统安装盘做成了一个升级安装器的 app,所以需要到其所处的真实文件系统路径中去找到和提取所需的磁盘映像文件。
我原本是计划把完整的映像刻录到 USB 盘上之后,用 DiskGenius 把 EFI 补丁注入的,但是测试多次后均以失败告终。记忆中 macOS 自己会有一个 EFI 分区,但是在多次刻录实践中,仅有一次出现了这个分区。相同的工具(Big Sur 安装应用中自带的 createinstallmedia
命令),相同的参数,相同的映像文件,相同的 U 盘,但是结果却飘忽不定,老夫也很困惑。
长话短说,最终放弃了本地完整安装的方案,开始执行网络恢复安装的方案。这个方案要简单不少,以下步骤即可,
- 在 U 盘上创建个 FAT32 分区,大小有那么个一两 GB 就够(要想保险,可以把分区类型设定为 ESP,但没有设置,后续也都成功了);不过分区表一定要是 GPT 格式的;
- 把 OpenCore 以及与机型匹配的 EFI 补丁复制到 U 盘根目录;
- 在 U 盘根目录创建
com.apple.recovery.boot
目录,把从 macOS 安装映像中提取出的BaseSystem.dmg
和BaseSystem.chunklist
文件复制到其中;
其它 BIOS 设置请参考机型对应的黑苹果教程中的指引。如此一来,理论上就是把机器硬件调整成了可以和 EFI 补丁一起,欺骗苹果的系统恢复功能,把完整的 macOS 通过网络恢复安装一遍。很显然,能被这个恢复系统正常使用的网络联通能力是要满足的。在顺利的情况下,跟正常安装白苹果应该没有区别。
下面记录一些不正常。首先是 EFI 补丁。最开始用的是另一个小伙伴找到的,上手特别顺利,就是一个缺点:当系统接近完成安装的时候,会出现莫名的错误,有时候报“载入更新发生错误”,有时候又什么都不报,然后重启,一切从头,如此循环不止。正是因为太多次都不成功,最终开始怀疑这个 EFI 补丁集是不是本身有问题,于是我去找了另一个,在这里。新的这份需要先运行 GenSMBIOS 工具,把生成的设备码更新到 config.plist
文件中,否则会直接就拒绝引导。
其次是 BIOS 设置。指南中明确要求 Security Chip
设置为 Disabled
,但是本机的 BIOS 中该项为 MFG mode
,且不可更改。在整个安装过程中,第一阶段完成后重启,又发生了类似前文说到的似乎没有任何进展的状况。后来我开始怀疑此节,于是把 config.plist
文件打开,在 Security
配置节点下找到 BootSecurityModel
,把其值由 Default
改为了 Disabled
。重启后发现下一阶段自动开始了,此后则一路顺利。
可能不免会想,最后这一项的改动,会不会对前一份弃用的 EFI 补丁也适用呢?恐怕不行,因为我印象里在前一份上尝试过,而结果并无改善。