在WWDC2020
开发者大会上,苹果正式发布了新版macOS
,命名为Big Sur
。此次发布的操作系统是自Mac OS X
被推出以来变化最为重大的一次,也迎来了它的一个新纪元——10.X 版本的结束,11.X 版本的开始。
尝试Hackintosh
后发现,11.0 Beta 的安装过程中BaseSystem
操作环境已经不再吃prelinked kernel
这一套了,但装好的系统仍然可以,于是就有了用虚拟机装好系统再用OpenCore
在本机上启动的方案。
目前Intel
平台相关安装教程已经比较丰富,本文重点讨论一下如何在AMD
平台吃上黑苹果,也是分享下我给台式机 (B450+3700X) 的安装流程。
更新:目前正式版的 OpenCore 已经支持 U 盘直接安装系统,无需使用本文方案。
需要的工具
1、Windows 下:VMWare WorkStation Pro 15.0.0、Unlocker 303
2、macOS 下:系统自带的磁盘工具、OpenCore、Lilu 全家桶
3、其他:macOS Big Sur Developer Beta 的 cdr 镜像
准备阶段
1、在 BIOS 下打开虚拟化 SVM Mode - Enabled
2、在 macOS 下使用磁盘工具分出一个独立的 APFS 容器
3、在 Windows 下安装 VMWare WorkStation Pro (注意必须是 15.0.0 版本,较新版本会遇到无法启动虚拟机的错误)
4、使用 Unlocker 给虚拟机解锁,用管理员身份运行 win-install.cmd
虚拟机安装阶段
新建虚拟机
选择自定义(高级),剩下的步骤除如下图所示,硬盘选择刚才分出来的 APFS 容器,图中未涉及全都按照默认。
编辑 vmx 文件
右键打开虚拟机文件夹位置,用记事本编辑 vmx,编辑时确保当前虚拟机已经彻底关闭,否则无法保存成功
1、更改 board-id.reflectHost = "TRUE" 为 board-id.reflectHost = "FALSE"
2、添加 board-id = "Mac-63001698E7A34814"
3、在任意位置添加以下内容(解决“客户机操作系统已禁用 CPU,请关闭或重置虚拟机”的报错)
smc.version = "0"
cpuid.0.eax = "0000:0000:0000:0000:0000:0000:0000:1011"
cpuid.0.ebx = "0111:0101:0110:1110:0110:0101:0100:0111"
cpuid.0.ecx = "0110:1100:0110:0101:0111:0100:0110:1110"
cpuid.0.edx = "0100:1001:0110:0101:0110:1110:0110:1001"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:0111:0001"
cpuid.1.ebx = "0000:0010:0000:0001:0000:1000:0000:0000"
cpuid.1.ecx = "1000:0010:1001:1000:0010:0010:0000:0011"
cpuid.1.edx = "0000:1111:1010:1011:1111:1011:1111:1111"
featureCompat.enable = "FALSE"
4、修改以下内容(解决“这个虚拟机需要 avx2,但是没有 avx”的报错)
更改 virtualHW.version = "16" 为 virtualHW.version = "10"
编辑虚拟机设置
1、找到处理器设置,两个✔都不要勾选
2、找到 USB 控制器设置如图修改,避免在虚拟机中无法使用键鼠
运行虚拟机
右键虚拟机-电源-打开电源时进入固件,蓝色界面选择 CDROM 即可进入安装界面。安装 Big Sur 到分出来的 APFS 容器上,耐心等待安装完成进入桌面后关机。
配置 OpenCore,引导阶段
1、使用 OpenCore 0.5.9 Release 或更高版本进行配置
2、在 Kernel - Patch 条目下打上最新的 AMD_Vanilla patches
3、编译最新 master 分支的 Lilu、WhateverGreen、VirtualSMC、AppleALC 等 kext
4、7C436110-AB2A-4BBB-A880-FE41995C9F82 条目下的修改
①、boot-args 引导参数加上 -lilubetaall
②、新增 Key 值 booter-fileset-kernel,DATA 类型,Value 填写 00
③、新增 Key 值 booter-fileset-basesystem,DATA 类型,Value 填写 00
5、AvoidRuntimeDefrag 改为 False 解决卡 EB 的问题