ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OSX-KVM 实战笔记全解析:macOS 虚拟机的直通、分辨率、CPU 特性与排错指南

OSX-KVM 实战笔记全解析:macOS 虚拟机的直通、分辨率、CPU 特性与排错指南 虚拟化开发工具【免费下载链接】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 仓库的 notes.md 为核心骨架系统整理在 QEMU/KVM 上运行 macOS 虚拟机时的进阶配置与排错实战从 macOS Sonoma 的 CPU 型号选择、App Store 登录验证问题、Ventura 分辨率异常到 GPU/USB 设备直通、AES-NI / AVX / VMX 指令集暴露、嵌套虚拟化Docker for Mac / Android Emulator、virtio 磁盘加速、自编译 QEMU、iDevice 连接等十余类高频场景。读完本文你将获得一套可复制、可验证的 QEMU/KVM macOS 运维工具箱并能结合仓库中的 OpenCore-Boot.sh、boot-passthrough.sh、scripts 等真实脚本逐项落地。所有结论均以当前仓库文件与命令输出为依据配置前请务必结合你自己的硬件环境适配。图片说明本文涉及的 USB 声卡直通免控制器直通方案在仓库中有真实运行截图佐证见下文虚拟声卡与 USB 声卡一节。一、macOS Sonoma 支持与 CPU 型号选择macOS Sonoma以及更新的 Sequoia对 CPU 特性有更高的要求。notes.md 给出的核心经验是将 QEMU 的-cpu参数从Penryn改为Haswell-noTSX并且该方案在AMD Ryzen 9 5900HS这样的 AMD 笔记本 CPU 上同样工作正常。在仓库当前的 OpenCore-Boot.sh 中可以看到脚本头部注释直接写明了这一点L16# Change Penryn to Haswell-noTSX in OpenCore-Boot.sh file for macOS Sonoma!而脚本正文L37为了支持更新的 macOS Sequoia / Tahoe已经进一步演进为-enable-kvm -m $ALLOCATED_RAM -cpu Skylake-Client,-hle,-rtm,kvmon,vendorGenuineIntel,invtsc,vmware-cpuid-freqon,$MY_OPTIONS # ATTENTION: Enable this line for macOS Sequoia and Tahoe其中MY_OPTIONSssse3,sse4.2,popcnt,avx,aes,xsave,xsaveopt,checkL21与vendorGenuineIntel组合用于向 macOS 伪造真实 Intel CPU的识别信息——macOS 内核会拒绝在 AMD CPU 上运行因此kvmonvendorGenuineIntel是 KVM 虚拟化 macOS 的关键前提。实践要点老版本 macOSBig Sur / Catalina / Mojave / High Sierra使用Penryn即可对应脚本注释 L23-L24 明确写了测试过的版本Sonoma 至少需要Haswell-noTSXSequoia / Tahoe 需要Skylake-Client,-hle,-rtm关闭 HLE 与 RTM 以避免稳定性问题若遇到启动问题优先检查MY_OPTIONS一行它是脚本中标注的调优入口。二、App Store 登录验证失败的修复在 macOS 虚拟机中登录 App Store 常遇到Your device or computer could not be verified报错。notes.md 给出了完整修复链路确认有线网卡名为en0在 macOS 终端执行ifconfig查看有线以太网接口的 BSD 名称若名称不是en0按以下顺序重置网络配置打开System Preferences - Network删除所有网络设备并应用更改在终端执行sudo rm /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist重启 macOS 虚拟机再登录 App Store。该修复最初由Glnk2012在 tonymacx86 论坛发现。notes.md 还提示微调smbios.plist文件也可能有辅助作用原文以(?)标注属于未完全验证的经验。结合仓库的 OpenCore-Boot.sh 可以看到网络侧默认使用-netdev user,idnet0,hostfwdtcp::2222-:22 -device virtio-net-pci,netdevnet0,idnet0,mac52:54:00:c9:18:27L63即用户态网络 virtio 网卡并固定了 MAC 地址52:54:00:c9:18:27。由于 macOS 依赖网卡名称en0来标识内置有线网卡并校验 Apple 服务直通 PCIe 网卡或改变网卡型号时务必检查接口名称。三、macOS Ventura 分辨率异常复位与规避3.1 症状与已知更新Ventura 的显示设置只提供 3 个预置分辨率而选择其中任何一个都可能导致黑屏仅有小部分画面可见。notes.md 记录了一个重要更新切换到vmware-svga显示设备后该问题已基本解决——仓库的 OpenCore-Boot.sh L66 正是-device vmware-svga无头脚本 boot-macOS-headless.sh L67 同样使用该设备印证了这一修复已经落入默认配置。3.2 黑屏状态下的分辨率复位流程如果仍遇到黑屏利用可见的小块显示区域操作盲操作登录系统打开终端执行sudo rm /Library/Preferences/com.apple.windowserver.plist rm ~/Library/Preferences/ByHost/com.apple.windowserver* sudo reboot重启 macOS Ventura 虚拟机。注意事项displayplacer id:FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF mode:10在 Ventura 上对分辨率问题无效macOS VM 内部改分辨率可以直接用Settings - Displays。3.3 在 OpenCore 层修改分辨率OpenCore 引导界面分辨率由OpenCore/config.plist的UIScale - Resolution键控制。notes.md 提供的 diff 如下diff --git a/OpenCore/config.plist b/OpenCore/config.plist index 4754e8c..489570f 100644 --- a/OpenCore/config.plist b/OpenCore/config.plist -692,7 692,7 keyResolution/key - stringMax/string string1920x1080/string配套要求OVMF 分辨率必须与 OpenCore 一致在 OVMF 启动 Logo 阶段OpenCore 引导界面出现前按ESC键进入 OVMF 菜单进入Device Manager - OVMF Platform Configuration - Change Preferred Resolution for Next Boot设置为与 OpenCore qcow2 中相同的值仓库默认 1024x768对应 OpenCore-Boot.sh L52 使用的OVMF_VARS-1920x1080.fd变量文件则已预设为 1920x1080修改config.plist后必须按 OpenCore/README.md 的说明重新生成OpenCore.qcow2rm -f OpenCore.qcow2; sudo ./opencore-image-ng.sh --cfg config.plist --img OpenCore.qcow2四、GPU 直通VFIO/OVMF完整操作手册GPU 直通步骤必须根据你的硬件适配宿主机需要支持 IOMMU。以下以 notes.md 作者的环境为例Ubuntu 22.04.4 LTS Intel i5-6500 ASUS Z170-AR AMD RX 66002024 年 4 月。4.1 黑名单驱动模块编辑/etc/modprobe.d/blacklist.conf阻止宿主机占用待直通 GPUblacklist amdgpu blacklist radeon4.2 定位 PCIe 设备$ lspci -nnk | grep AMD 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ef) 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0]记下两个设备的 vendor:device ID1002:67df显卡与1002:aaf0HDMI 音频。4.3 启用 IOMMU 与 VFIO在/etc/default/grub的GRUB_CMDLINE_LINUX_DEFAULT追加内核参数Intel CPU 系统iommupt intel_iommuon vfio-pci.ids1002:67df,1002:aaf0 kvm.ignore_msrs1 videovesafb:off,efifb:offAMD CPU 系统将intel_iommuon换成amd_iommuon其余参数不变。kvm.ignore_msrs1与脚本头部注释呼应——OpenCore-Boot.sh L10 与 boot-passthrough.sh L10 都写明echo 1 /sys/module/kvm/parameters/ignore_msrs (this is required)这是 KVM 跑 macOS 的必备前提。4.4 微调 vfio 模块配置创建/etc/modprobe.d/vfio.conf方案来自 Mathias Hueberoptions vfio-pci ids1002:67df,1002:aaf0 disable_vga1 softdep radeon pre: vfio-pci softdep amdgpu pre: vfio-pci softdep nouveau pre: vfio-pci softdep drm pre: vfio-pcisoftdep ... pre: vfio-pci确保相关 GPU 驱动在 vfio-pci 之后加载。4.5 更新引导与 initramfs 并重启sudo update-grub2 sudo update-initramfs -k all -u注意Pop!_OS系统需改用kernelstub命令修改内核启动参数notes.md 专门提示。4.6 BIOS 设置将 BIOS 中的Primary Display设为IGFX核显/板载显卡让独立 GPU 完全交给虚拟机。作者建议更新 BIOS 固件。4.7 验证 IOMMU 与 vfio-pci 生效$ dmesg | grep -i iommu [ 0.076879] DMAR: IOMMU enabled [ 0.183732] DMAR-IR: IOAPIC id 2 under DRHD base 0xfed91000 IOMMU 1 [ 0.330654] iommu: Default domain type: Passthrough (set via kernel command line) [ 0.489615] pci 0000:00:00.0: Adding to iommu group 0 [ 0.489627] pci 0000:00:01.0: Adding to iommu group 1 [ 0.489634] pci 0000:00:02.0: Adding to iommu group 2 [ 0.489643] pci 0000:00:14.0: Adding to iommu group 3$ dmesg | grep vfio [ 0.526198] vfio-pci 0000:01:00.0: vgaarb: changed VGA decodes: olddecodesiomem,decodesiomem:ownsiomem [ 0.543768] vfio_pci: add [1002:67df[ffffffff:ffffffff]] class 0x000000/00000000 [ 0.563765] vfio_pci: add [1002:aaf0[ffffffff:ffffffff]] class 0x000000/00000000 [ 3.384597] vfio-pci 0000:01:00.0: vgaarb: changed VGA decodes: olddecodesiomem,decodesiomem:ownsiomem$ lspci -nkk -d 1002:67df 01:00.0 0300: 1002:67df (rev ef) Subsystem: 1da2:e366 Kernel driver in use: vfio-pci Kernel modules: amdgpu确认显卡的 Kernel driver in use 变为vfio-pci即直通就绪。4.8 使用仓库脚本检查 IOMMU 分组scripts/list_iommu_groups.sh源自 Arch Wiki遍历/sys/kernel/iommu_groups/*输出每个 IOMMU Group 的 PCI 设备$ ./scripts/list_iommu_groups.sh IOMMU Group 0: 00:00.0 Host bridge [0600]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers [8086:191f] (rev 07) IOMMU Group 1: 00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 07) 01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] [1002:67df] (rev ff) 01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] [1002:aaf0] (rev ff)直通要求显卡与其音频功能位于同一 IOMMU Group如上例 Group 1否则需要 ACS 补丁或更换插槽。4.9 设置 /dev/vfio 权限仓库自带 vfio-kvm.rules内容为SUBSYSTEMvfio, OWNERroot, GROUPkvm安装并重载 udev 规则sudo cp vfio-kvm.rules /etc/udev/rules.d/vfio-kvm.rules sudo udevadm control --reload sudo udevadm trigger4.10 放开 memlock 限制编辑/etc/security/limits.conf方案来自 Heiko Siegerkvm soft memlock unlimited kvm hard memlock unlimited libvirt soft memlock unlimited libvirt hard memlock unlimited4.11 启动直通脚本检查 boot-passthrough.sh 内容并运行它来以 GPU 直通方式启动 macOS。该脚本的关键参数L57-L59-device vfio-pci,host01:00.0,multifunctionon,x-no-kvm-intxon # -device vfio-pci,host01:00.0,multifunctionon,romfilegpu_original_bios.bin -device vfio-pci,host01:00.1其中romfilegpu_original_bios.bin被注释——notes.md 提示AMD GPU 启动异常显示器无信号时可用 AMD VBFlash 工具 dump GPU BIOS 并通过romfile传给 QEMU。脚本还以-vga noneL52关闭虚拟显卡-display none VNCL78-L81提供远程管理。仓库已实测的 GPUSapphire AMD RX 6600推荐、ZOTAC GeForce GT 710 DDR3支持到 Big Sur、Sapphire Radeon RX 570。4.12 键盘鼠标复用与额外提示在 macOS 的 System Preferences 中启用Automatic login并配置 Synergy 软件复用宿主机键鼠详见下文Synergy一节AMD GPU 复位 Bug 可参考 Proxmox 社区方案RX 480 / RX 580 / RX 590 / Radeon VII 可考虑 RadeonBoost.kext 提升性能。五、USB 直通控制器级直通与设备级直通5.1 控制器级直通推荐用于完整 USB 生态流程与 GPU 直通类似用lspci -nnk找到 USB 控制器$ lspci -nnk ... 03:00.0 USB controller: ASMedia ASM1142 USB 3.1 Host Controller [1b21:1242]将1b21:1242以 vfio-pci 格式追加到GRUB_CMDLINE_LINUX_DEFAULT格式见上文 GPU 直通更新 initramfs 并重启sudo update-initramfs -k all -u用仓库脚本隔离 USB 控制器所在 IOMMU Group$ scripts/lsgroup.sh ### Group 7 ### 00:1c.0 PCI bridge: Intel Corporation Sunrise ... ### Group 15 ### 06:00.0 Audio device: Creative Labs Sound Core3D ... ### Group 5 ### 00:17.0 SATA controller: Intel Corporation Sunrise ... ### Group 13 ### 03:00.0 USB controller: ASMedia ASM1142 USB 3.1 Host Controllerscripts/vfio-group.sh 13scripts/lsgroup.sh 遍历/sys/kernel/iommu_groups打印每个 Group 的lspci摘要scripts/vfio-group.sh 则完成解绑原驱动 绑定 vfio-pci两段式操作先 unbind再向vfio-pci/new_id写入 vendor/device ID。在启动脚本加入参考 boot-passthrough.sh L62 的注释示例-device vfio-pci,host03:00.0,buspcie.0启动 VM连接到该 ASMedia 控制器的设备即可直接在 macOS 下使用。5.2 设备级 USB 直通usb-hostnotes.md 给出多组已验证的usb-host配置模板USB 3.0 闪存盘Fedora 25 guest-device nec-usb-xhci,idxhci \ -device usb-host,busxhci.0,vendorid0x0781,productid0x5590 \ -usb -device usb-mouse,bususb-bus.0 -device usb-kbd,bususb-bus.0 \Moto G3 手机-device usb-host,bususb-bus.0,vendorid0x22b8,productid0x002e \ -usb -device usb-mouse,bususb-bus.0 -device usb-kbd,bususb-bus.0 \CoolerMaster 键盘macOS Sierra guest注意这里用的是usb-tablet以获得更好的鼠标行为-device usb-host,bususb-bus.0,vendorid0x2516,productid0x0004 \ -usb -device usb-tablet,bususb-bus.0 -device usb-kbd,bususb-bus.0 \虚拟 USB 磁盘先用qemu-img创建 disk.raw-drive ifnone,idusbstick,filedisk.raw,formatraw \ -device usb-storage,bususb-bus.0,driveusbstick \已知限制macOS Sierra 及更新版本对 QEMU 暴露的 EHCI / XHCI 控制器的 USB 直通存在兼容问题macOS 缺少对应控制器驱动曾尝试 OVMF Clover 修复无效。这也是仓库默认脚本改用qemu-xhci设备见 OpenCore-Boot.sh L39的原因之一。六、Synergy共享宿主机键鼠在 macOS guest 安装 Synergynotes.md 实测版本为synergy-v1.8.8-stable-MacOSX-x86_64.dmg配置为 client开机自启System Preferences - Users Groups - 选择用户 - Login Items - 添加 SynergyLinux 宿主机安装synergy-v1.8.8-stable-Linux-x86_64.deb或更新版本配置~/.synergy.conf后运行synergys仓库附带的.synergy.conf需按你的实际拓扑调整。七、声卡方案虚拟声卡、USB 声卡直通与 HDA 直通7.1 虚拟声卡VoodooHDAVoodooHDA kext 可在 macOS 10.12 到 Big Sur 11.2 上驱动模拟声卡。要点不要混用 VoodooHDA 与 AppleALC模拟音频输出可能卡顿、失真notes.md 建议优先考虑 HDA 直通、USB 声卡直通或 HDMI 音频Flash 视频播放似乎要求存在音频设备。7.2 USB 声卡直通免控制器直通仓库实测最便宜的 USB 声卡在 macOS 上无需 USB 控制器直通即可正常工作。screenshots 目录的 QHM623_USB_Sound_Card_1.jpg 即该声卡实物照片。仓库还提供了 udev 规则 98-sound-dongle.rules 与 99-usb-disk.rules可用于固定设备权限与属组。7.3 QEMU 直通声卡示例在 boot-passthrough.sh 中已包含 HDMI 音频直通-device vfio-pci,host01:00.1OpenCore-Boot.sh L48-L49 则注释了两款约 2 美元的 USB 声卡usb-host直通示例# -device usb-host,vendorid0x8086,productid0x0808 # 2 USD USB Sound Card # -device usb-host,vendorid0x1b3f,productid0x2008 # Another 2 USD USB Sound Card八、CPU 指令集暴露AES-NI、AVX/AVX2 与 VMX8.1 暴露 AES-NI在boot-macOS.sh当前仓库默认脚本为 OpenCore-Boot.sh的-cpu参数追加aes-qemu-system-x86_64 -enable-kvm -m 3072 -cpu Penryn,kvmoff,vendorGenuineIntel \ qemu-system-x86_64 -enable-kvm -m 3072 -cpu Penryn,kvmoff,vendorGenuineIntel,aes \ -machine pc-q35-2.4 \ -smp 4,cores2 \ -usb -device usb-kbd -device usb-mouse \验证macOS guest 内sysctl -a | grep machdep.cpu.features有 OpenSSL 时可对比 AES-NI 性能openssl speed aes-128-cbc openssl speed -evp aes-128-cbc # uses AES-NI其他宿主机 CPU 特性同理可逐个追加到-cpu。事实上仓库默认的MY_OPTIONS已包含aes。8.2 暴露 AVX / AVX2前提是宿主 CPU 支持这些指令。历史上使用 Clover 引导的方案boot-clover.sh默认已暴露 AVX/AVX2若遇到问题可修改或注释MY_OPTIONS行。启用 AVX2 的 Clover 路径为Clover boot menu - Options - Binaries patching - Fake CPUID - 0x0306C0 # for Haswellguest 内验证$ sysctl -a | grep avx hw.optional.avx2_0: 1 hw.optional.avx1_0: 1 $ sysctl -a | grep leaf7 machdep.cpu.leaf7_features: SMEP BMI1 AVX2 BMI2 machdep.cpu.leaf7_feature_bits: 4248.3 暴露 VMX启用 Hypervisor.Framework嵌套虚拟化Docker for Mac、Android Emulator 等需要 macOS 的Hypervisor.Framework其底层依赖 VMX 标志检查嵌套虚拟化状态sysctl kern.hv_support输出1表示已启用若未启用先sysctl -a | grep machdep.cpu.features确认有无VMX若缺少 VMX确认kvm_intel模块正确加载见 README.md 主文档二选一在-cpu追加vmx,rdtscp最简单或将vmx,加到MY_OPTIONS开头并把-cpu Penryn换成-cpu Skylake-Client等受支持型号注意宿主 CPU 全量透传host-passthrough问题较多不推荐。完成修改后下次重启可能需要Reset NVRAM之后再查sysctl kern.hv_support应返回1。九、virtio-blk 磁盘加速MojavemacOS Mojave 及更新版本自带部分 virtio 驱动。把启动脚本中的磁盘设备从 IDE 换成 virtio 可获性能提升原笔记针对boot-macOS-NG.sh- -device ide-hd,bussata.4,driveMacHDD \ -device virtio-blk-pci,driveMacHDD \当前仓库的 OpenCore-Boot.sh L61 仍使用-device ide-hd,bussata.4,driveMacHDD你可以按上述 diff 自行切换并验证。十、自编译 QEMU需要定制 QEMU如带调试符号、特定音频后端时$ git clone https://github.com/qemu/qemu.git $ cd qemu $ mkdir build; cd build $ ../configure --prefix/home/$(whoami)/QEMU --enable-trace-backendsimple \ --enable-debug --target-listx86_64-softmmu,aarch64-softmmu --audio-drv-listpa $ make -j8; make install关键选项--enable-trace-backendsimple简单 trace 后端、--enable-debug调试支持、--audio-drv-listpaPulseAudio 音频驱动。十一、连接 iPhone / iPad 到 macOS guest两种主流方式USB OTA 透传基于 usbfluxd 方案corellium/usbfluxd 及配套使用文档VFIO USB 直通参考 Iphone_docker_osx_passthrough 项目思路走 USB 控制器直通。十二、系统集成与运维类技巧12.1 开机自启虚拟机在 QEMU 启动脚本中把REPO_PATH设为 OSX-KVM 的绝对路径当前默认是相对路径.如 OpenCore-Boot.sh L31在/etc/rc.local末尾追加启动脚本的绝对路径是否加sudo视需要。12.2 启用 rc.local现代 Ubuntu若/etc/rc.local不存在创建#!/bin/bash echo Hello! :) exit 0必要时加执行权限sudo chmod x /etc/rc.local然后创建/etc/systemd/system/rc-local.service[Unit] Descriptionenable /etc/rc.local ConditionPathExists/etc/rc.local [Service] ExecStart/etc/rc.local start TimeoutSec0 StandardOutputtty RemainAfterExityes SysVStartPriority99 [Install] WantedBymulti-user.target最后启用服务sudo systemctl enable rc-local12.3 SSH 内网远程访问宿主机为 Ubuntu 且网卡有静态内网 IP 时sudo apt install openssh-server -y sudo ufw allow ssh sudo update-rc.d ssh defaults sudo systemctl enable ssh sudo systemctl enable ssh.socket sudo systemctl enable ssh.service12.4 libvirt/qemu 权限问题以 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 权限问题sudo setfacl -R -m u:libvirt-qemu:rx path十三、常见问题排错速查问题解决方案参考guest 卡在 UEFI Shellstartup.nsh恢复干净副本git checkout OVMF_VARS-1024x768.fd或cp OVMF_VARS-1024x768.fd.bak OVMF_VARS-1024x768.fdnotes.md时间漂移root crontab 周期性执行sntp -S pool.ntp.orgnotes.mdQEMU 报gtk initialization failed追加displaynoneboot-passthrough.sh 已内置-display nonenotes.md / boot-passthrough.shcreateinstallmedia生成的 ISO/DMG 不被识别将 OpenCoreconfig.plist的ScanPolicy设为0。仓库当前配置即ScanPolicy 0OpenCore/config.plist L1026-L1027notes.md / config.plist快照savevm报 No space left确保/var/tmp与/有充足空间或用export TMPDIR$PWD/tmp指定独立快照存储notes.mdiMessage 无法使用参考 Dortania 的 iServices 配置使用 GenSMBIOS 生成合法 SMBIOS 信息notes.md13.1 物理磁盘/ NVMe 直通给 VMNVMe 建议直通控制器而非块设备。先查唯一标识$ ls -la /dev/disk/by-id total 0 drwxr-xr-x 2 root root 360 Jul 29 08:14 . drwxr-xr-x 8 root root 160 Jul 29 08:14 .. lrwxrwxrwx 1 root root 9 Jul 29 08:14 ata-ST2000FFFFF-FFFFFF_FFFFFFFF - ../../sda lrwxrwxrwx 1 root root 10 Jul 29 08:14 ata-ST2000FFFFF-FFFFFF_FFFFFFFF-part1 - ../../sda1 lrwxrwxrwx 1 root root 13 Jul 29 08:14 nvme-eui.ffffffffffffffff - ../../nvme0n1 lrwxrwxrwx 1 root root 15 Jul 29 08:14 nvme-Samsung_SSD_960_EVO_512GB_FFFFFFFFFFFFFFF - ../../nvme0n1在启动脚本追加按硬件适配需sudo运行-drive idNVMeDrive,ifnone,file/dev/disk/by-id/nvme-Samsung_SSD_960_EVO_512GB_FFFFFFFFFFFFFFF,formatraw \ -device ide-hd,bussata.4,driveNVMeDrive \可以只直通分区如sda1但不推荐。13.2 提取 .pkg 文件旧版xar已停止维护对很多.pkg会失败改用现代 7-Zip7z l example.pkg 7z x example.pkg gunzip -c something.pkg/Payload | cpio -i13.3 生成 macOS Mojave / Catalina 安装 ISO当前步骤需要在已有 macOS 系统上执行cd ~/OSX-KVM/scripts ./create_dmg_catalina.sh仓库 scripts 目录同时提供 bigsur / monterey / ventura 子目录的 Makefile 与对应create_dmg_*.sh可据此扩展到其他版本。13.4 macOS guest 性能与体验调优关闭System Preferences - Energy Saver关闭System Preferences - Desktop Screen Saver的屏保关闭 Spotlight 索引sudo mdutil -a -i off开启Remote LoginSSHSystem Preferences - Sharing。十四、充分利用全部 CPU 核心/线程macOS 要求 vCPU 核心数为 2 的幂而现代 CPU 常见 6 核 12 线程这类奇数配置。通过混合smp/sockets/cores/threads/maxcpu并利用奇数 socket 数可以凑出偶数核心数甚至指定部分核心超线程。以 Intel i76 核 12 线程为例CPU_SOCKETS3 CPU_CORES2 CPU_THREADS2 CPU_TOTAL12对应-smp行-smp $CPU_TOTAL,cores$CPU_CORES,sockets$CPU_SOCKETS,threads$CPU_THREADS,maxcpus$CPU_TOTAL当前仓库 OpenCore-Boot.sh L27-L29 默认使用CPU_SOCKETS1 CPU_CORES2 CPU_THREADS4可参照上面方式改写以榨取全部 CPU 资源。结语本文完整继承并扩充了 OSX-KVM 仓库 notes.md 的实战经验覆盖从 Sonoma 启动参数、App Store 修复、Ventura 分辨率复位、OpenCore 分辨率修改到 GPU/USB 双直通、指令集暴露、virtio 加速、嵌套虚拟化、系统集成与排错的全链路。需要特别强调的是直通类配置强烈依赖你的硬件拓扑IOMMU 分组、BIOS 设置、GPU 型号务必结合 boot-passthrough.sh、scripts、vfio-kvm.rules 等仓库文件逐项适配并在改动config.plist后按 OpenCore/README.md 重新生成OpenCore.qcow2。建议先在无直通环境下完成 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点击查看免费下载相关推荐Docker-OSX 实战指南在 Docker 容器中通过 QEMU/KVM 运行 macOS 虚拟机Docker OSX 实战指南在 Docker 容器中通过 QEMU/KVM 运行 macOS 虚拟机 本篇技术指南以 Docker OSX 官方 READM虚拟化安全OSX-KVM 在 UNRAID 上的部署实战用 OpenCore.qcow2 构建 macOS 虚拟机OSX KVM 在 UNRAID 上的部署实战用 OpenCore.qcow2 构建 macOS 虚拟机 本文以 OSX KVM 仓库的 UNRAID.md虚拟化开发工具突破Docker-OSX性能瓶颈CPU虚拟化与KVM支持全检测指南突破Docker OSX性能瓶颈CPU虚拟化与KVM支持全检测指南 为什么虚拟化支持是Docker OSX的生命线 你是否曾遇到过这样的困境兴致勃勃地执行虚拟化安全上一篇从安装到精通Grapple.nvim完整配置教程支持lazy.nvim与packer下一篇CSRankings数据可视化技术如何呈现复杂的学术排名数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表