1. 折腾前的判断:AMD Ryzen 这台机器到底能不能干这事
折腾这事花了我两个周末。手头主力机是 AMD Ryzen 7 5800X,配某品牌 B550 主板,32GB 内存,Windows 11 日常使用。想搞 macOS 虚拟机,不是出于“什么都想装一遍”的装机冲动,而是确实有绕不开的需求:Safari 兼容性测试、Xcode 工具链、偶尔要看 iOS 模拟器。macOS VM 在 Intel 平台上的教程很多,但 AMD 平台不太一样,尤其新版本 macOS 对 CPU 的识别越来越挑,直接按 Intel 的流程抄作业很容易翻车。
先说结论:这条路能走通,但和 VMware 里装 Ubuntu 那种“一路下一步”完全不是一个体验。苹果没有给非苹果硬件提供官方支持,虚拟出来的环境只能当作功能验证用。它可以满足编译、脚本、浏览器测试、模拟器等轻中度任务,不适合当主力开发机;显卡加速基本等于没有,视频渲染、3D 场景、Metal 相关 API 这类需求不要抱期待。如果你拿它当半个“Xcode 服务器”来用,会舒服很多。
为什么最后选了 VMware Workstation?我其实先试过好几套方案。VirtualBox 免费,但对 macOS 的虚拟设备和稳定性支持偏弱;QEMU/KVM 功能潜力大,AMD CPU 支持也算好,可它要把 OpenCore、显卡设备、virtio 驱动串起来调,时间成本太高;Hyper-V 性能好,但 macOS 对 Hyper-V 虚拟设备链路的兼容性不完整,适合服务端批量跑,不适合坐在电脑前反复调试。VMware Workstation 恰好卡在中间:图形界面简单、虚拟设备齐全、网络模型成熟,配合社区解锁方案能让 macOS 在虚拟机里被正常引导。
如果你问“既然 AMD 能跑,为什么不直接装到实机上”,我的回答是:实机双系统要处理核显、声卡、睡眠、USB 定制,还要随时担心系统更新后进不去;虚拟机把硬件高度抽象,折腾范围可控得多。当然,macOS 的授权方式有自己的边界,这篇文章只是记录个人技术实验,不是教你去搞所谓完美黑苹果。
2. 动手前的环境准备:BIOS、Windows 与 VMware 三件事
在真正打开 VMware 之前,我建议先把三件事搞定,省得后面系统装到一半才来排查。
2.1 BIOS 与 AMD-V/SVM 开关
动手第一步不是装 VMware,而是先进 BIOS。AMD 的硬件虚拟化扩展叫 AMD-V,主板厂在 BIOS 里大多叫 SVM Mode / Secure Virtual Machine。我这块 B550 默认是 Auto,实际跑虚拟机时还是会被判定为关闭,我直接改成 Enabled 才稳。
开机按 Del/F2 进 BIOS,在 CPU 配置、高级、超频菜单里搜 SVM,把它设为 Enabled。保存重启后打开任务管理器“性能”页,确认“虚拟化”显示“已启用”。如果这里还是禁用,先检查 BIOS 是不是真的保存成功,或者看主板有没有把 SVM 藏在 Security 菜单下面。
Secure Boot 要不要关?我用下来不是必须。但有部分主板开启 Secure Boot 后会连带改动 CSM 或安全启动状态,导致后续 OpenCore 的 EFI 变量读取不正常,所以我顺手关了。如果你能正常挂载安装镜像,不关也可以跳过。
2.2 关掉 Windows 的 Hyper-V 干扰
如果以前开过 WSL2、Docker Desktop 或 Windows 沙盒,这步几乎绕不开。“虚拟机平台”和 Hyper-V 功能会占住 AMD-V,Windows 自己会变成一个 hypervisor,VMware Workstation 再去用硬件虚拟化时,要么直接弹“不兼容 Device/Credential Guard”,要么能跑但启动速度、CPU 占用和稳定性都很怪。
以管理员身份打开 PowerShell,执行:
bcdedit /set hypervisorlaunchtype off重启后,到“Windows 安全中心 > 设备安全性 > 内核隔离”,把“内存完整性”关掉。然后用 systeminfo 检查:
systeminfo | findstr /i "hyper"如果输出里还有“检测到虚拟机监控程序”,多半是 Hyper-V 角色没卸载干净。去控制面板“启用或关闭 Windows 功能”,把“虚拟机平台”和“Hyper-V”取消勾选,再次重启。
要承认,这样会牺牲 WSL2 和 Docker Desktop 的可用性,属于二选一。我平时用 VMware 比较多,就把它关了。如果你两边都要用,目前我还没找到一个在 AMD 平台下完全两全的稳定方案。
2.3 给 VMware 打 macOS 解锁补丁
VMware Workstation 默认的客户机列表里没有 Apple。社区常用的 unlocker 工具能把 Apple Mac OS X 这个选项放出来,同时补上 macOS 的 VMware Tools 镜像。
操作流程不复杂:
- 关闭 VMware,任务管理器确认 vmware-tray、vmware-authd 等进程退干净。
- 以管理员身份打开命令提示符,运行 unlocker 目录里的 win-install.cmd。
- 等待完成提示,不要中途关窗口。
- 再打开 Workstation,新建虚拟机时看客户机类型列表,出现 Apple Mac OS X 就说明成功了。
这个补丁会改 Workstation 的底层动态库,系统自带杀毒大概率拦。我遇到一次直接删文件导致补丁半成功,后来把 Workstation 安装目录加白名单后重跑才恢复。如果你不想加白名单,至少先关掉实时防护,别让补丁写到一半被中断。
还有一点容易忽略:Workstation 升级后补丁会失效,必须重新跑一次。补丁目录里一般有还原脚本,改坏了可以退回原状态再试。
3. 创建虚拟机:模板参数与 VMX 文件调整
环境准备好后,新虚拟机的参数是我试了四五版之后定下来的。不要急着按 Intel 教程的默认值一路点,很多问题就出在初始参数上。
3.1 新建虚拟机时的关键选项
新建向导里选 Custom,不要选 Typical。因为 Typical 会默认 BIOS 固件和 SCSI 控制器,有些参数后面不容易改。
我最后定下来的配置大概是:
- 客户机操作系统:Apple Mac OS X
- 版本:macOS 12 或 13,看解锁补丁提供哪些选项
- 固件:UEFI
- CPU:6 核
- 内存:12GB
- 网络:NAT,网卡类型先选 e1000e
- 磁盘控制器:LSI Logic SAS
- 磁盘:120GB,分割成多文件
安装阶段 macOS 对 vmxnet3 没有内置驱动,得等 VMware Tools 装好之后才支持,所以我先用 e1000e。如果你用的镜像已经整合过驱动,可以直接上 vmxnet3,但从最稳的角度还是 e1000e 起步。
磁盘控制器我选的是 LSI Logic SAS,没有选 NVMe。VMware 的虚拟 NVMe 控制器虽然快,但在 macOS 解锁环境里兼容性参差,APFS 对这种非原生控制器偶尔会出分区表问题。LSI SCSI/SATA 看着保守,实际更稳。
3.2 半小时排错后定稿的 VMX 配置
创建完先不要开机,把 VMX 文件用文本编辑器打开,确认或追加下面的键值:
smc.present = "TRUE" smc.version = "0" ethernet0.virtualDev = "e1000e"smc.version = "0"是社区很常见的处理。SMC 是苹果平台控制器,VMware 模拟的 SMC 默认版本会让新版 macOS 认为硬件不被信任,设成 0 之后等于告诉系统“不要在这一点上卡校验”。这个键确实解决了我最开始安装器无限重启的问题。
但不要从网上随便抄一长串 cpuid/x86 family 参数。AMD 的兼容性主要由引导层的补丁接管,VMX 里强行改 CPUID 反而会让系统信息混乱。我试过从别的博客复制 CPUID 字段,最终一个都没用上,反而还引入了新的启动错误。
3.3 准备工作分区与安装镜像
把安装镜像挂到虚拟光驱。如果 ISO 里包含 OpenCore 和 macOS 安装器,开机就会出现引导菜单;如果镜像只是官方安装器,还需要单独准备一个 OpenCore 引导盘。
如果你还拿不准用哪种镜像,我的建议是优先选明确标注“支持 AMD Ryzen 5000”的整合引导版本。镜像来源需要自己把关,从你可以合法获取的地方准备安装文件。官方恢复镜像在 AMD 平台上十有八九会卡在 CPU 识别,不建议一上来就硬刚。
4. 安装 macOS 的完整流程
4.1 从 OpenCore 引导到恢复环境
通电开机,OpenCore 菜单出现后,选择macOS Base System或Install macOS ...。如果屏幕只有一行日志就重启,说明引导阶段出问题。此时需要在 OpenCore 配置里把 boot-args 加上-v,让启动过程输出完整日志。
如果用的是 OpenCore GUI 菜单,通常按空格会展开辅助选项;没有辅助选项就说明镜像作者的 config 没开 Verprise 输出。最省事的方法是换一个支持 AMD 的镜像,或者用编辑器打开 OC 的 config.plist,在 boot-args 里加入-v debug=0x100 keepsyms=1。
进入恢复环境后,打开“磁盘工具”。左侧选虚拟磁盘,名字可能是 VMware Virtual SATA Hard Drive 或对应的虚拟设备,点“抹掉”。格式选 APFS,方案选 GUID 分区图。
完成后再关闭“磁盘工具”回到安装器。如果安装器列表里没出现磁盘,返回磁盘工具重新挂载一次再试。这个步骤看着简单,但我第一次操作时选错了分区图,导致安装第二遍才成功。
4.2 磁盘分区与安装阶段
选择刚才抹好的分区,点继续。第一遍安装会复制文件到硬盘,完成后自动重启。重启后如果回到 OpenCore 菜单,优先选带硬盘名称的启动项,而不是 Installer。后面可能还会再重启一到两次,看到“选择国家/地区、键盘”时才算进入桌面初始化。
Apple ID 和 iCloud 这步能跳过就跳过。一个不规范的虚拟机序列号登上云端,后续要清理很麻烦。我都是先选“稍后设置”,把系统跑起来再考虑要不要登录。
安装过程中如果提示“安装 macOS 副本已损坏”,多半是系统时间不在镜像发布的时间范围内。打开恢复环境的“实用工具 > 终端”,执行类似date 032110002025的命令,把日期改成镜像发布当天附近,然后退出终端重新装。
4.3 安装 VMware Tools
桌面初始化后,菜单 VM -> Install VMware Tools。如果光驱里挂的不是 macOS 的 installer 镜像,需要先手动卸载,再从 Workstation 安装目录挂载 darwin.iso。
点安装,按提示允许系统扩展。重启后网络、剪贴板、鼠标流畅度会明显改善。Tools 安装后如果显示“系统扩展被阻止”,去 系统设置 -> 隐私与安全性 点允许,再重启一次。
这里有个容易踩的坑:如果你运行 unlocker 时杀毒软件拦过补丁,darwin.iso 可能没有生成完整,Tools 装到一半报错。这种时候不是反复试安装,而是回炉重跑 unlocker,再把新的 darwin.iso 挂进来。
5. AMD 平台特有的坑与排查实录
5.1 最典型的三类启动失败
AMD 平台最磨人的不是 VMware 本身,而是 CPU 兼容补丁。典型表现有三种:
第一种是开机直接出现禁行标志,或者 panic 信息里出现 cpuid、launchd 关键词。原因基本是镜像里的内核补丁只匹配特定 AMD CPU 型号,或者 OpenCore 版本太老。解决路径不是去改 VMware 参数,而是换一个明确支持 Ryzen 5000 系列的引导镜像;再不行就往下降 macOS 版本。我实测 macOS 12 比 14 稳很多,14 能装但偶尔睡眠唤醒后黑屏。
第二种是卡在gIOScreenLockState这类显示初始化日志。VMware 的虚拟显卡不是原生 Apple 驱动,OpenCore 里的显卡注入要尽量简化。如果镜像里加了仿冒显卡参数,反而会把 VMware 的 SVGA 设备搞乱。遇到就删掉无用的 GPU 注入项,别拿真实黑苹果的配置来套。
第三种是安装第一阶段很顺利,重启后始终回到 OpenCore 菜单,选硬盘启动项后闪一下代码就自动重启。这个通常和 APFS 引导识别、CPU 信息上报有关。我最后通过把 OpenCore 的 CPU 信息上报 Quirk 打开才解决,但要注意不同 OpenCore 版本菜单名不一样,直接抄配置不一定有效。
5.2 常见问题速查表
| 症状 | 可能原因 | 处理思路 |
|---|---|---|
| VMware 报 Device/Credential Guard 不兼容 | Windows Hyper-V 或内核隔离占用 AMD-V | bcdedit /set hypervisorlaunchtype off后重启,关闭内存完整性 |
| 开机直接禁行或 panic | AMD CPU 补丁不匹配,或 OpenCore 版本太旧 | 换支持 Ryzen 5000 的镜像,或降级 macOS 版本 |
| 卡在 gIOScreenLockState | 显卡注入参数干扰虚拟显卡 | 删除 OpenCore 里多余的 GPU 注入项 |
| 安装器提示“副本已损坏” | 系统时间和镜像签名时间不匹配 | 在终端用date命令把时间改到发布日附近 |
| 安装重启后找不到引导项 | APFS 驱动没加载,或 NVRAM 启动路径混乱 | 更新 OpenCore,确认 APFS 驱动已加载,先设置启动磁盘再摘光驱 |
| Tools 安装前后网络不通 | vmxnet3 驱动没加载 | 网卡改成 e1000e,或装完 Tools 后再换 vmxnet3 |
5.3 我踩过最久的一个坑
我最想单独拿出来说的是“安装完成后,意外拔掉虚拟光驱里的引导盘,重启直接空转”这件事。
macOS 启动依赖 EFI 里的 NVRAM 变量,OpenCore 会在 NVRAM 里写本次启动路径。如果你在 OpenCore 第一次引导时把光驱拆了,或者 VMware 的 EFI 变量没有保存,系统就会像找不到启动盘一样卡住。
解决方法是把虚拟光驱重新挂回原安装 ISO,用 OpenCore 再进一次,选硬盘启动项,进系统后把“启动磁盘”设置成内置硬盘,然后再卸掉光驱。这个顺序很重要:先设置启动磁盘,再摘光驱。我一开始顺序反了,结果每次重启都得插着引导盘,非常尴尬。
6. 稳定运行后的调优操作
6.1 CPU、内存与磁盘的分配思路
CPU 核心数别给太满。我一开始给 12 核,结果 APFS 校验和 hypervisor 调度带来的额外开销反而让启动变慢,很多测试也没比 6 核好多少。最后定在 6 核、12GB 内存。如果你只是测 Safari 和命令行,4 核 8GB 其实就够。
VMware 内存默认是“按需分配”,对 macOS 这种会主动吃内存做缓存的系统来说,建议在虚拟机设置里打开保留所有客户机内存,同时把虚拟机目录放到固态盘上。否则 Windows 内存压力一大,macOS 的界面会明显掉帧。
磁盘方面,我用的是“分割成多文件”的虚拟磁盘,方便迁移。如果你确定这个虚拟机长期放在同一块盘上,空间足够的话可以选“立即分配所有磁盘空间”,减少 APFS 扩容时的延迟。
6.2 快照与日常更新策略
快照是救命工具。每次给 macOS 做系统更新前,先关机拍一个干净快照;镜像补丁、VMware Tools、OpenCore 里的任意一个环节不匹配,都可以一键回滚。快照文件会很大,留下两三个即可,别长期堆一堆。
不要轻易跨大版本更新。AMD 虚拟机里跨版本升级常常会遇到内核扩展不匹配,表面看起来正常,登录后各种服务崩溃。建议小版本更新前先备份,跨大版本时直接重装系统比升级省事。
VMware 主版本升级也要小心,Workstation 一升级,unlocker 补丁就失效,macOS 虚拟机可能直接无法启动。我现在的顺序是:先看新版 unlocker 是否支持当前 Workstation,再决定要不要升级。
6.3 最后的实用习惯
安装完成后记得把虚拟光驱里的 OpenCore 或安装 ISO 断开连接,否则每次开机都先进引导菜单,手滑还会又回到安装器。
另一个不算技术但影响体验的点:关 macOS 虚拟机时不要直接点“强制关机”。在 macOS 里执行sudo shutdown -h now,等 VMware 显示机器已关机后再退出。APFS 在突然断电式关闭后偶尔会出现卷文件校验,严重时启动盘会变成只读。
我个人现在把这套环境当作一个“软件测试沙盒”用:需要 Xcode 命令行、Safari 测试、跑脚本时打开,不用就快照收藏并关机。它带来的最大价值是让我在只有 AMD x86 机器的情况下,仍然可以低成本完成一些 mac 侧工作流。如果你也是同样处境,照着这套流程走,少壮两天不眠夜。