type
status
date
slug
summary
tags
category
icon
password
Electron 开发的应用需要调试在Mac上的效果,不过手头没有 Mac 怎么办呢?在Github 上找到一个 OSX-KVM 的项目,测试可以正常运行,在这里分享一下。
在开始前
既然是虚拟机,那么需要先安装好 QEMU 不同的发行版有所不同。建议同时安装好 virt-manager 可以参考:
或者也可以去寻找其他教程。
开始安装
首先找个合适的目录打开终端,因为会创建虚拟硬盘,所以建议选一个速度快且容量大的分区。
首先拉一下代码:
接下来拉取 macos 安装镜像

选择一个你想要安装的系统版本即可,此处我选择了 14
这会下载一个 BaseSystem.dmg 不过我们需要一个 BaseSystem.img 格式的文件才能引导。 需要使用
dmg2img
转换。安装
dmg2img
转换:
创建 macos 的磁盘镜像:
不建议改名字,如果要改名字,那么需要同步更新脚本中的路径。这里大小设置为 256G,不过并不会立即分配。你也可以根据需要调整大小。
接下来就可以安装 macOS 了🚀
安装 MacOS
首先我们启动系统:

启动 macos base system

首先需要格式化磁盘,进入“磁盘工具” 在左侧选择硬盘(看好大小,200多G的那个) 点击右上角“抹掉”
名称: 给你的硬盘起个名字,例如
Macintosh HD
。格式: 选择
APFS
。方案: 选择
GUID 分区图
。
之后关闭磁盘工具,选择 重新安装 Macos,按照指示继续即可。安装会耗时几十分钟到几小时不等,主要取决于你的网速。安装过程中会重启若干次。
无法启动的问题
如果遇到了到最后一步无法启动,是很正常的,通常错误为:

这是因为macOS Sonoma 要求 CPU 必须支持 AVX2 指令集。OSX-KVM 默认的 CPU 型号(如
Penryn
)比较旧,不支持这个指令集,导致 Sonoma 无法解密和挂载其系统文件卷 (Cryptex),最终找不到核心库文件。首先需要确保你的 CPU 支持 AVX2:
绝大多数 2013 年之后的 CPU 都支持~ 如果没有输出,那么有可能不支持 AVX2 建议换一个更老的 MaoOS 系统。
确认支持后,我们只需要打开
OpenCore-Boot.sh
将其中所有 Penryn
替换为 Haswell-noTSX
即可。之后重新运行
OpenCore-Boot.sh
启动即可。这样 macos 应该就能正常启动了,进入引导页完成基础设置后就可以使用了(建议不要登帐号)

导入 virt-manager
这样每次用命令启动还是有点不爽的,我们可以直接导入到 virt-manager 内便于直接启动和管理。同样项目提供了方式:
此处需要替换路径为你的 OSX-KVM 实际项目路径,如/home/user/OSX-KVM
你也可以再打开 macOS.xml 检查一下,比如之前提到的所有
Penryn
替换为 Haswell-noTSX
问题。确认无误后执行下面命令导入即可
之后就能在 virt-manager 内启动了。

总结
因为没有显卡驱动等,性能还是挺拉胯的,也就临时测试用吧~
如果你的电脑有多个显卡,可以试试 GPU 直通,不过应该仅限 AMD 系列。具体可以看看 https://github.com/kholia/OSX-KVM/blob/master/notes.md#gpu-passthrough-notes
📎 参考
- 其他常见问题:
遇到什么问题或需要补充,欢迎您在底部评论区留言,一起交流~
上一篇
在 Ubuntu/Debian 和 Arch Linux 上安装虚拟机管理软件 virt-manager
下一篇
在 Ubuntu/Debian 和 Arch Linux 上安装虚拟机管理软件 virt-manager
- 作者:wear工程师
- 链接:https://blog.wearzdk.me/article/how-to-run-macos-sonoma-on-linux-using-qemu-kvm
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。