10 分钟在 ESXi 上解锁 macOS:Unlocker 从部署到 smcPresent 验证
【免费下载链接】esxi-unlockerVMware ESXi macOS项目地址: https://gitcode.com/gh_mirrors/es/esxi-unlocker
esxi-unlocker 是在 ESXi 上解锁 macOS 支持的社区工具:装上它,ESXi 主机就能安装、启动并运行 macOS 虚拟机,官方支持 6.5、6.7、7.0 三个版本。它做的事一句话讲完——把打过补丁的 vmx 和 libvmkctl 以 RAM 盘的形式注入 ESXi 启动链,绕开苹果的 SMC 检测。
🔑 动手前的四个硬性前提
开始之前先快速盘一遍,下面四条都是一句话能核对的事,任何一条不满足,后面都会卡很久:
- ESXi 版本在 6.5、6.7、7.0(含 7.0 U1)范围内
- 主机已开启 SSH(Web 界面"服务"页把 TSM-SSH 启起来)
- 目标数据存储剩余空间 100 MB 以上,放安装文件用
- 本地机器能 ping 通 ESXi 管理 IP
四步跑通解锁:从上传到重启
步骤 1:拿到 Unlocker 项目文件
所有补丁操作最终都要在 ESXi 本地上执行,所以我们先在本机克隆仓库,把脚本和解锁包备齐。
git clone https://gitcode.com/gh_mirrors/es/esxi-unlocker步骤 2:整包传到 ESXi 数据存储
安装脚本只能在 ESXi 自己的 shell 里跑,所以把整个目录 scp 进一个数据存储即可,不用挑文件。
scp -r esxi-unlocker root@esxi-ip:/vmfs/volumes/datastore1/esxi-ip 换成你的主机 IP,datastore1 换成实际的数据存储名。
步骤 3:SSH 登录执行安装
接下来登录 ESXi,进到上传目录执行 esxi-install.sh。这一步必须走 SSH 而不是 Web 界面,因为它要调用 ESXi 内置的 BootModuleConfig.sh 来改写启动模块配置,Web 里没这个入口。
ssh root@esxi-ip cd /vmfs/volumes/datastore1/esxi-unlocker ./esxi-install.sh你会看到类似这样的回显:
VMware Unlocker 3.0.2 Installing unlocker.tgz Success - please now restart the server!注意 Success 只代表启动配置写好了,真正的二进制打补丁要等重启才发生,所以现在别急着建虚拟机。
步骤 4:跑完直接重启
这是整个流程里最容易心软跳过的地方,但这一步不能省:unlocker.py 只在启动过程中被拉起,不重启等于白装。
reboot跑 esxi-smctest.sh 验证解锁结果
主机回来后,在同一个目录执行自带的自检脚本,它会干三件事:grep vmx 里的 Apple SMC 表、向 hostd 问 smcPresent、列出 custom.vgz 这块 RAM 盘。
./esxi-smctest.sh你会看到类似这样的回显:
/bin/vmx smcPresent = true custom.vgz false 32486592 B第一行说明 /bin/vmx 里确实带 Apple SMC 表;smcPresent = true 表示打过补丁的 libvmkctl 已经向 hostd 汇报"存在 Apple SMC",vSphere 因此能接管并控制 macOS 客户机;custom.vgz 那行是装补丁文件的 RAM 盘,解压后的大小随 ESXi 版本浮动,数字不一样不用紧张。
Unlocker 到底改了哪里:一行启动配置 + 一次开机打补丁
esxi-install.sh 的核心就一行:BootModuleConfig.sh --add=unlocker.tgz,把解锁包登记进 ESXi 的启动模块列表。重启后启动链自动解包,etc/rc.local.d/unlocker.py这个 Python 脚本随开机被拉起:先停 hostd,对 /bin/vmx 修 vSMC 密钥表(让 macOS 能过 SMC 检查正常启动)、对 libvmkctl.so 改 smcPresent 汇报(让 vSphere 控制台可用),然后把两个补丁文件打成 custom.vgz 以 RAM 盘挂上,再重启 hostd。之所以每次开机重新打补丁再挂盘,而不是直接改盘上的二进制,是为了让补丁始终基于当前系统的文件生成。需要临时禁用时,在启动选项里加 nounlocker 即可。
高频翻车场景与对应修法
smcPresent = false:custom.vgz 这块 RAM 盘没挂上,最常见原因是装完没重启或安装没成功。重跑./esxi-install.sh后重启即可。
vSphere 控制台连不上 macOS 客户机:libvmkctl 补丁没生效。先看 esxi-smctest.sh 第三行有没有 custom.vgz,没有就重启一次,有却连不上就重新走一遍安装。
macOS 卡在苹果 Logo 进不去系统:vmx 的 vSMC 密钥表没修好,或虚拟机"客户机操作系统"版本没选成对应的 macOS 版本。先核对 esxi-smctest.sh 第一行是否指向含 Apple SMC 表的 vmx 文件,再回头检查虚拟机设置。
安装脚本报错或执行中断:多半是 ESXi 版本不匹配,比如拿旧包去跑 7.0 U1 之后的系统。让 Unlocker 版本与 ESXi 版本对齐再装。
版本边界:支持到哪、什么时候要重装
- 官方支持 ESXi 6.5 / 6.7 / 7.0(含 7.0 U1),ESXi 8 及以后没有兼容性说明
- 任何一次 ESXi 升级或重装之后,unlocker 都会失效,必须重新装
- 它是社区维护的工具,VMware 官方不提供技术支持
⚠️ 升级 Unlocker 到新版本前,务必先用 esxi-uninstall.sh 卸掉旧版,readme 明确警告:不这么做可能导致 VMware 不可用。
从克隆到 smcPresent 为 true,整个闭环就是传文件、装配置、重启、验证四步,跑完就可以开始建 macOS 虚拟机了。上游仓库会跟进 ESXi 的新版本,动手之前值得瞄一眼最新版号。
【免费下载链接】esxi-unlockerVMware ESXi macOS项目地址: https://gitcode.com/gh_mirrors/es/esxi-unlocker
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考