OSX-KVM 完全指南:用 OpenCore 在 QEMU/KVM 上从零安装与运行 macOS(Monterey / Ventura / Sonoma / Sequoia)
虚拟化开发工具【免费下载链接】OSX-KVMRun macOS on QEMU/KVM. With OpenCore Monterey Ventura Sonoma support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.项目地址https://gitcode.com/GitHub_Trending/os/OSX-KVM点击查看免费下载本文是 OSX-KVM 仓库的完整实战指南系统讲解如何在普通 Linux 主机上通过 QEMU/KVM 虚拟化技术搭建一台可用的 Virtual Hackintosh虚拟黑苹果覆盖环境要求、安装介质获取、OpenCore 引导启动、无头模式与 libvirt 集成等完整链路。读完本文你将掌握从零创建、安装并日常使用 macOS 虚拟机的全套流程并理解底层 QEMU 参数与仓库源码的实现逻辑。项目定位Virtual Hackintosh 是什么OSX-KVM 的核心目标是让 macOS 不需要任何实体 Mac 硬件即可运行在 QEMU/KVM 之上。仓库的 README.md 明确将其定义为创建Virtual Hackintosh 系统的过程文档并且声明仓库内包含的所有二进制与资源blobs都是可重新派生的——即所有生成指令都包含在仓库中不存在来路不明的黑盒文件。从 fetch-macOS-v2.py 内置的版本清单可以看到项目当前支持的 macOS 覆盖High Sierra (10.13)、Mojave (10.14)、Catalina (10.15)Big Sur (11.7)、Monterey (12.6)、Ventura (13)Sonoma (14)——脚本中标注为 RECOMMENDED推荐Sequoia (15)、Tahoe (26)项目的出发点README 的 Motivation 一节是让 macOS 相关的教学任务、软件构建与测试、XNU 内核调试、逆向与安全研究能够以可复现的方式开展。仓库作者明确强调这类 Virtual Hackintosh 系统并非用来替代真实的物理 Mac而是提供一条可控、可重复的 macOS 实验环境路径。运行环境要求硬件与软件基线在开始之前先对照 README 的 Requirements 一节核对宿主机条件检查项要求验证方式Linux 发行版现代 64 位发行版README 以 Ubuntu 24.04 LTS 或更新为例lsb_release -aQEMU版本 8.2.2qemu-system-x86_64 --versionCPU 虚拟化支持 Intel VT-x 或 AMD SVMgrep -e vmx -e svm /proc/cpuinfo指令集Sierra 及以上SSE4.1grep sse4_1 /proc/cpuinfo指令集Ventura 及以上AVX2grep avx2 /proc/cpuinfo关于 AMD 平台的兼容性README 给出了明确结论较老的 AMD CPU 已知存在问题但现代 AMD Ryzen 处理器可以正常工作甚至能跑 macOS Sonoma。如果你使用的是 Intel 平台则需要注意 KVM 内核模块的参数差异见下文KVM 内核参数调整一节Intel 与 AMD 使用不同的 modprobe 配置文件。安装准备依赖、仓库与内核参数安装 QEMU 与工具链README 推荐通过 apt 一次性安装全部所需软件包sudo apt-get install qemu-system uml-utilities virt-manager git \ wget libguestfs-tools p7zip-full make dmg2img tesseract-ocr \ tesseract-ocr-eng genisoimage vim net-tools screen -y其中dmg2img用于把下载到的 DMG 安装镜像转换为 QEMU 可直读的 RAW 镜像genisoimagemkisofs用于离线安装场景下制作 ISOtesseract-ocr是 OCR 工具配合仓库中用 OpenCV 自动化安装 macOS的实验方向使用uml-utilities提供 TAP 网络工具。该步骤需要根据你的发行版包管理器做相应调整例如 Fedora 使用 dnf。克隆仓库与同步更新在目标 QEMU 主机上克隆仓库--depth 1 --recursive保证浅克隆的同时拉取全部子模块仓库文件在后续步骤中被直接使用cd ~ git clone --depth 1 --recursive https://gitcode.com/GitHub_Trending/os/OSX-KVM.git cd OSX-KVM后续获取上游更新使用 rebase 工作流README 明确说明本仓库重度依赖 rebasegit pull --rebaseKVM 内核参数调整KVM 需要宿主机内核开启两个关键行为加载kvm模块并将ignore_msrs置为 1——macOS 会访问一些对 KVM 而言无意义的 MSR模型特定寄存器默认策略会触发虚拟机崩溃置 1 后 KVM 将直接忽略这些访问sudo modprobe kvm; echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs如果需要永久生效仓库提供了现成的 modprobe 配置。Intel 平台使用 kvm.confoptions kvm_intel nested1 options kvm_intel emulate_invalid_guest_state0 options kvm ignore_msrs1 report_ignored_msrs0AMD 平台使用 kvm_amd.confoptions kvm_amd nested1 options kvm ignore_msrs1 report_ignored_msrs0安装方式用lscpu确认 CPU 厂商后二选一sudo cp kvm.conf /etc/modprobe.d/kvm.conf # Intel 平台 sudo cp kvm_amd.conf /etc/modprobe.d/kvm.conf # AMD 平台其中nested1开启嵌套虚拟化这是后续在 macOS 虚拟机内再跑 Docker / Android 模拟器等场景对应 notes.md 中 Hypervisor.Framework 讨论的前提。用户组权限将当前用户加入kvm、libvirt与input组避免权限问题sudo usermod -aG kvm $(whoami) sudo usermod -aG libvirt $(whoami) sudo usermod -aG input $(whoami)注意执行后需要重新登录才能生效README 特别提醒。获取 macOS 安装介质交互式下载fetch-macOS-v2.py运行仓库提供的 fetch-macOS-v2.py无需任何参数./fetch-macOS-v2.py脚本会打印版本菜单并等待选择README 中的示例输出如下$ ./fetch-macOS-v2.py 1. High Sierra (10.13) 2. Mojave (10.14) 3. Catalina (10.15) 4. Big Sur (11.7) 5. Monterey (12.6) 6. Ventura (13) 7. Sonoma (14) - RECOMMENDED 8. Sequoia (15) 9. Tahoe (26) Choose a product to download (1-9): 7选择后脚本会在当前目录产出BaseSystem.dmg文件。README 特别提醒如果 Big Sur 及以上版本在 Country Selection国家选择等界面停留较久属于正常现象初始设置向导最终会完成请耐心等待。从源码看fetch-macOS-v2.py 基于 Acidanthera 的 macrecovery 工具实现每个版本在products列表中预先登记了对应的board-id如 Sonoma 对应Mac-827FAC58A8FDFA22与逻辑板序列号下载时通过 HTTP 会话与osrecovery.apple.com交互get_session 建立 sessionget_image_info 请求恢复镜像信息然后分块下载镜像及其 chunklist 签名清单并在 verify_image 中逐块做 SHA256 校验任何哈希不匹配都会中止并报错。也就是说下载完整性由脚本自动保证无需人工核对。命令行高级用法同一脚本还提供四个 action 子命令--action源码中的 argparse 定义位于 fetch-macOS-v2.py参数作用--action download执行恢复镜像下载默认菜单模式即此动作--action selfcheck自检 MLB 序列号校验算法是否仍有效--action verify校验给定 MLB 序列号是否受支持--action guess猜测某个 MLB 属于哪种 Mac 机型-o/--outdir自定义下载输出目录默认com.apple.recovery.boot-n/--basename自定义下载文件基名-b/--board-id指定 board identifier默认Mac-27AD2F918AE68F61即 MacPro7,1-m/--mlb指定逻辑板序列号默认全零-e/--code用 EEEE 产品代码生成逻辑板序列号-os/--os-typedefault或latest选择默认版或最新版恢复镜像-diag/--diagnostics下载诊断镜像-s/--shortname直接指定版本短名high-sierra、monterey、sonoma等-v/--verbose输出调试信息例如跳过菜单直接下载 Sonoma./fetch-macOS-v2.py -s sonoma。转换镜像dmg2imgQEMU 无法直接以-drive方式读取 DMG因此需要转换dmg2img -i BaseSystem.dmg BaseSystem.img创建虚拟硬盘macOS 将被安装到一张 QEMU 虚拟磁盘上README 建议创建 256G 的 qcow2 镜像qemu-img create -f qcow2 mac_hdd_ng.img 256G重要约束如果你把磁盘文件名从mac_hdd_ng.img改成别的名字必须同步修改启动脚本中的引用见下文OpenCore-Boot.sh的MacHDD驱动行。另外 README 特别建议把该镜像文件放在高速 SSD/NVMe 上以获得最佳体验这直接决定安装过程与系统运行时的 IO 性能。安装 macOSOpenCore 启动脚本逐参数解析一键启动介质就绪后运行仓库根目录的 OpenCore-Boot.sh 即可启动安装README 说明该脚本适用于所有近期 macOS 版本无需按版本切换脚本./OpenCore-Boot.sh脚本核心 QEMU 参数OpenCore-Boot.sh 的核心args数组可拆解为以下几个层面参数作用-enable-kvm -m 4096启用 KVM 加速分配 4096 MiB4 GiB内存-cpu Skylake-Client,...,invtsc,vmware-cpuid-freqon,ssse3,...CPU 型号与指令集暴露见下-machine q35使用较新的 q35 芯片组macOS 兼容性最佳-device qemu-xhciusb-kbd/usb-tablet虚拟 USB 控制器与键盘、平板指针tablet 可避免指针漂移-smp 4,cores2,sockets14 线程 / 2 核 / 1 路拓扑-device isa-applesmc,osk...模拟苹果 SMC并注入公开的 OSK 密钥见法律边界一节-drive ifpflash,formatraw,readonlyon,fileOVMF_CODE_4M.fd只读加载 OVMFUEFI 固件代码段-drive ifpflash,formatraw,fileOVMF_VARS-1920x1080.fd加载 NVRAM 变量段预设 1920x1080 分辨率变量-smbios type2注入 SMBIOS 主板类型信息-device ich9-intel-hda -device hda-duplex虚拟 HD Audio 声卡全双工-device ich9-ahci,idsata 三个ide-hdSATA 控制器挂载 OpenCore 引导盘、安装介质、系统盘三个磁盘-netdev user,hostfwdtcp::2222-:22 -device virtio-net-pci用户态网络并把宿主 2222 端口转发到虚拟机 22 端口SSH-device vmware-svgaVMware SVGA 显卡无硬件加速见能力边界脚本头部的MY_OPTIONS变量定义了暴露给 macOS 的指令集掩码MY_OPTIONSssse3,sse4.2,popcnt,avx,aes,xsave,xsaveopt,checkinvtsc,vmware-cpuid-freqon用于向 macOS 隐藏 KVM 的 TSC 频率不一致问题这是 macOS 时钟漂移的重要来源vendorGenuineIntel则是把 CPU 厂商信息伪装为 Intel避免 macOS 在非 Intel 硬件上的兼容性检查失败。版本相关的重要注释脚本中默认启用的 CPU 行是Skylake-Client,-hle,-rtm,...注释明确说明macOS Sequoia 与 Tahoe 必须使用该行而被注释掉的Penryn行则用于较旧版本。修改 CPU 型号是 macOS Sonoma 等新版本安装中最常见的调整点脚本头部注释也提醒遇到引导问题时优先调整MY_OPTIONS一行。磁盘分区与安装启动后进入 macOS 安装器使用Disk Utility磁盘工具对虚拟磁盘进行分区与格式化现代 macOS 版本使用默认的APFS文件系统即可README 明确推荐。之后正常走安装向导即可。离线安装 macOS无需 Apple 恢复网络仓库支持完全离线安装README 标注 的 run_offline.md适合没有 Apple 恢复网络可达性的场景下载 Ventura 安装器InstallAssistant.pkg将其与scripts/run_offline.sh一起制作成 ISOmkisofs -allow-limited-size -l -J -r -iso-level 3 -V InstallAssistant \ -o InstallAssistant.iso path/to/InstallAssistant.pkg scripts/run_offline.sh在OpenCore-Boot.sh的args数组中追加两个参数把 ISO 挂到 sata.5-drive idMacDVD,ifnone,file$REPO_PATH/InstallAssistant.iso,formatraw -device ide-hd,bussata.5,driveMacDVD正常启动后用磁盘工具分区磁盘命名为macOS关闭磁盘工具在虚拟机内通过菜单Utilities → Terminal打开终端执行sh /Volumes/InstallAssistant/run_offline.sh等待几分钟后安装窗口即会出现。QEMU 中 macOS Sequoia 恢复模式界面包含 Install macOS Sequoia、Disk Utility、Safari 等安装选项上图即为在 QEMU 虚拟机中加载的 macOS Sequoia 恢复环境顶部菜单栏与窗口标题的QEMU标识清晰表明这是虚拟化环境下的安装入口界面。无头模式Headless macOS 与 VNC 访问如果你需要在没有显示器/桌面环境的服务器上运行 macOS例如构建农场README 提供了现成脚本 boot-macOS-headless.sh./boot-macOS-headless.sh与交互式脚本相比该脚本的关键差异见 boot-macOS-headless.sh内存提升到 7192 MiB使用-display none完全关闭图形输出通过-vnc 0.0.0.0:1,passwordon -k en-us暴露 VNC 服务显示器编号 1即localhost:5901密码在 QEMU 监视器中设置网络改用vmxnet3网卡模型注释说明该网卡用于 High Sierra 时需换回用户态网络行。README 给出的连接示例使用 RealVNC 客户端连接localhost:5901例如vncviewer localhost:5901。此外仓库的 customized/boot-macOS-headless.sh 提供了定制变体可在此基础上按需修改。可选与 libvirt / virt-manager 集成如果希望通过 virt-manager / virsh 管理 macOS 虚拟机而不是裸 QEMU 命令行README 给出了完整的 libvirt 集成步骤编辑仓库根目录的 macOS-libvirt-Catalina.xml把所有CHANGEME字符串替换为你的用户名macOS-libvirt-Catalina.xml中所有文件路径均形如/home/CHANGEME/OSX-KVM/...sed s/CHANGEME/$USER/g macOS-libvirt-Catalina.xml macOS.xml virt-xml-validate macOS.xml定义虚拟机virsh --connect qemu:///system define macOS.xml为 libvirt-qemu 用户授予对相关目录的读/执行权限sudo setfacl -m u:libvirt-qemu:rx /home/$USER sudo setfacl -R -m u:libvirt-qemu:rx /home/$USER/OSX-KVM启动virt-manager在列表中找到并启动macOS虚拟机。从 macOS-libvirt-Catalina.xml 的qemu:commandline段可以看到libvirt 方案与裸脚本方案在底层殊途同归同样注入isa-applesmc OSK、-smbios type2、usb-tablet/usb-kbd以及-cpu Penryn,kvmon,vendorGenuineIntel,invtsc,vmware-cpuid-freqon,ssse3,sse4.2,...参数。XML 中还包含以下值得注意的细节三块磁盘的引导顺序mac_hdd_ng.imgsdb为 boot order 1OpenCore.qcow2sda为 order 2BaseSystem.imgsdc为 order 3网卡放在 PCI bus 0x0、slot 0x0XML 注释说明这会让网卡呈现为内建状态从而让App Store 正常登录时钟配置显式指定了rtc的tickpolicycatchup等参数XML 注释说明这是为了修正 macOS 在 KVM 下的时钟行为注释中给出了 GPU 直通RX580 等与板载音频直通的 hostdev 模板以及 CPU 直通模式host,vendorGenuineIntel,...的备选方案。安装后的能力边界与进阶配置预期管理Virtual Hackintosh 能做什么、缺什么README 的 Setting Expectations Right 一节非常坦诚这类系统可以胜任软件构建、测试、逆向等工作仓库中的诸多笔记可以帮你进一步调优但默认状态下它缺少图形加速、可靠的声卡子系统、USB 3 功能以及其他类似能力。要在这些方向补齐能力需要参考 notes.md 中记录的 tweaks。README 还提到超越原生 Apple 硬件的性能并非不可能但需要投入、耐心与一点运气。上图展示了 QEMU 虚拟机内正常运行的 macOS 桌面含 Xcode 与 iOS 模拟器窗口标题栏的(QEMU) - VNC Viewer印证了无头模式下通过 VNC 获得完整桌面体验的可行性。安装后的标准配置项README 的 Post-Installation 一节给出了三条高频需求网络参考 networking-qemu-kvm-howto.txt配置出站网络以及入站 SSH / VNC 远程访问GPU 与设备直通参考 notes.md含 USB 直通、AMD GPU 笔记见 notes.md分辨率调整参考 notes.md默认 OVMF 变量预设了 1920x1080需要其他分辨率时按笔记操作iMessage 排障参考 notes.md。此外 notes.md 还覆盖了 Ventura 分辨率问题、AES-NI / AVX2 指令暴露与 macOS-expose-AVX2.png 等截图对应的实验、Hypervisor.Framework 嵌套虚拟化、virtio-blk-pci 磁盘、SSH 内网访问、时间漂移修复、开机自启等一系列主题是安装完成后的必读手册。仓库中还提供 run-diagnostics.sh 供排查启动问题使用。法律与许可边界README 专门用一节讨论合法性问题核心事实包括苹果 OSK 密钥字符串在互联网上广泛公开且出现在一份公开的法院文档中作者说明苹果将该字符串作为商业秘密保护的尝试未获成功因此 OSK 被自由地包含在本仓库也出现在OpenCore-Boot.sh的isa-applesmc参数中是否接受苹果 EULA最终用户许可协议由使用者自行判断README 明确声明这不是法律建议该项目文档同时指出AWS 已推出基于真实 Mac 硬件的 EC2 Mac 实例可视为云上运行 macOS 的另一种官方路径。这一节的定位是事实性说明读者需要自行评估当地法律与苹果许可条款再决定是否使用本项目。参与贡献与支持渠道README 欢迎通过 Pull Request 参与贡献列出的待办方向包括撰写在主流云厂商Hetzner、GCP、AWS上运行 macOS 的文档分享使用本项目构建与测试开源软件的经验编写 XNU 内核调试与开发的教程记录一键批量启动无头 macOS VM构建农场的流程用 munki 向构建农场批量部署软件让 VNC SSH 支持更易用的开箱配置用 OpenCV 自动化 macOS 安装流程的实验想法。小结从依赖安装、内核参数、安装介质下载与校验到 OpenCore 启动参数逐项拆解、无头 VNC 模式、libvirt 集成、离线安装与安装后调优OSX-KVM 提供了一条完整、可复现的 Virtual Hackintosh 落地路径。其核心工程思想值得留意所有关键配置CPU 指令集伪装、SMC/OSK 注入、OVMF 固件、恢复镜像的 SHA256 校验都沉淀在仓库的脚本与配置文件中你完全可以在理解 OpenCore-Boot.sh、fetch-macOS-v2.py 与 notes.md 的基础上按需定制属于自己的 macOS 虚拟化方案。赞分享虚拟化开发工具【免费下载链接】OSX-KVMRun macOS on QEMU/KVM. With OpenCore Monterey Ventura Sonoma support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.项目地址https://gitcode.com/GitHub_Trending/os/OSX-KVM点击查看免费下载相关推荐OSX-KVM 实战用 opencore-image-ng.sh 构建 OpenCore 引导镜像并在 QEMU/KVM 中启动 macOSOSX KVM 实战用 opencore image ng.sh 构建 OpenCore 引导镜像并在 QEMU/KVM 中启动 macOS 导读 本文围绕虚拟化开发工具【亲测免费】 探索科技前沿OSX-KVM — 在KVM上运行macOS探索科技前沿OSX KVM — 在KVM上运行macOS 项目简介 是一个开源项目由开发者 kholia https 创建它允许你在基于Linux的系统上虚拟化开发工具Docker-OSX 实战指南在 Docker 容器中通过 QEMU/KVM 运行 macOS 虚拟机Docker OSX 实战指南在 Docker 容器中通过 QEMU/KVM 运行 macOS 虚拟机 本篇技术指南以 Docker OSX 官方 READM虚拟化安全上一篇fmt网络编程协议消息格式化和日志记录的最佳实践下一篇如何优化Apache DataFusion算子性能内存与CPU调优终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →