Mac 上想跑一台 Windows 或 Linux,商业方案要么按年订阅,要么体量吓人。UTM 是另一条路:免费、开源(Apache-2.0)、Swift 写的原生界面,底下接 QEMU 和 Apple 自家的虚拟化框架,macOS、iOS、visionOS 都能用。2019 年建仓,如今 36.8k star,是苹果生态里最活跃的开源虚拟机项目。
本文依据 v5.0.8(2026-10-17 发布) 的仓库、发布说明和官方文档整理。先把最重要的结论放在前面:Apple Silicon 的 Mac 上装系统,请选 arm64 / aarch64 镜像。这不是偏好问题,是架构决定的——下面解释为什么。
一、基本信息
| 项目 | 内容 |
|---|---|
| 仓库 | utmapp/UTM |
| 官网 / 文档 | getutm.app · docs.getutm.app |
| 许可证 | Apache-2.0(内含 (L)GPL 组件,重新分发需留意) |
| 实现语言 | Swift |
| 最新版本 | v5.0.8(2026-10-17) |
| 系统要求 | macOS 12+、iOS 15+、visionOS |
| 老系统 | macOS 11 与 iOS 14 最后支持到 v4.7.5;iOS 11–13 用 v3.2.4 |
| macOS 获取 | GitHub 的 UTM.dmg 免费;Mac App Store 付费 |
| 模拟能力 | QEMU 支持 30+ 种处理器架构,含 x86_64、ARM64、RISC-V、PPC |
关于付费版要说清楚:官方文档明确写了 App Store 版与 GitHub 版功能完全一致,没有任何阉割,唯一区别是自动更新;买 App Store 版等于直接资助开发。所以”免费版是不是残血”这个顾虑可以放下。
二、先搞懂两个词:Virtualize 与 Emulate
新建虚拟机的向导第一步就是二选一,这一步选错,后面所有性能问题都由此而来。
Virtualize(虚拟化):客户机直接跑在物理 CPU 上,接近原生速度。但官方文档把限制写得很死:
Virtualization requires the guest architecture to match the host. That means x86_64 for Intel Macs and aarch64 for Apple Silicon. If the guest architecture does not match the host, virtualization will not be used even if enabled in the QEMU settings.
翻译过来:Intel Mac 只能虚拟化 x86_64,Apple Silicon 只能虚拟化 aarch64。架构不匹配时,就算你在设置里开了虚拟化,它也不会生效——UTM 会悄悄掉回模拟。
Emulate(模拟):QEMU TCG 把客户机指令逐条翻译成宿主指令,什么架构都能跑(x86 Windows、DOS、Classic Mac OS、PPC、RISC-V……),代价是慢。
| Virtualize | Emulate | |
|---|---|---|
| 架构要求 | 必须与宿主一致 | 任意,30+ 种 |
| 速度 | 接近原生 | 明显慢,JIT 型负载更慢 |
| 加速来源 | Hypervisor.framework / Apple Virtualization | QEMU TCG(JIT) |
| 典型用途 | arm64 Linux、Windows 11 ARM、macOS 客户机 | 老系统、跨架构尝鲜、复古计算 |
还有一个容易踩的多核陷阱:在 ARM 宿主上模拟 x86(官方叫 strong-on-weak),默认只给 1 个核,因为 x86 的内存序要求在 ARM 上多核模拟无法保证正确。设置里勾 “Force multicore” 可以强开多核,但文档直说”以正确性为代价”,可能偶发奇怪崩溃。
所以”Mac 上推荐 ARM 镜像”的完整逻辑是:Apple Silicon 上选 arm64 镜像 → 走虚拟化 → 接近原生;选 x86 镜像 → 自动进模拟 → 慢一个量级,还默认单核。镜像架构选对,比调任何参数都管用。
三、ARM 镜像去哪下
| 系统 | 架构 | 下载 | 备注 |
|---|---|---|---|
| Ubuntu Server | arm64 | ubuntu.com/download/server/arm | 官方指南用它;装完 apt install ubuntu-desktop 补桌面 |
| Debian | arm64 | cdimage.debian.org …/arm64/iso-cd/ | netinst 小镜像,装时选 GNOME + SSH server |
| Fedora | aarch64 | getfedora.org/en/workstation/download/ | 下载页选 ARM 版本 |
| Kali Linux | arm64 | kali.org/get-kali | 选 ARM64 安装镜像 |
| Windows 11 | ARM64 | microsoft.com …/windows11arm64 | 或用 CrystalFetch 从微软拉最新构建 |
几个注意点:
- Ubuntu 的 Desktop 下载页给的是 Intel 镜像,官方 UTM 指南在 Apple Silicon 上用的是 Server for ARM,装完再补桌面环境。别顺手下了 Desktop 的 amd64 ISO。
- Windows 那边 arm64 给 Apple Silicon、amd64 给 Intel,下错的最典型症状是开机直接进 EFI shell 而不是安装器。CrystalFetch 是免费小工具,能合法地从微软拿到最新 Windows 构建,省得跟微软下载页的浏览器兼容性斗智斗勇。
- 无论哪种方式拿到 Windows 镜像,运行它都需要有效的微软许可证。
- 认架构就看文件名:
arm64/aarch64是 ARM,amd64/x86_64是 Intel。装完在 Linux 里uname -m应返回aarch64。
只有一种情况值得在 Apple Silicon 上碰 x86_64:你要跑的系统或软件根本没有 ARM 版(某些老 Windows 程序、复古系统)。那时接受模拟的慢,或者用下一节的 Rosetta 折中。
四、两种后端,和 Rosetta 这个折中
UTM 的设置页分成 QEMU 和 Apple 两套,对应两个后端:
QEMU 后端:功能最全。USB 设备、SPICE 剪贴板与动态分辨率、VirtFS 目录共享、快照、30+ 架构模拟都在这里;同架构客户机在 macOS 上经 Hypervisor.framework 硬件加速。
Apple Virtualization 后端:只支持虚拟化,成熟度不如 QEMU,但它是在 Apple Silicon 上虚拟化运行 macOS 客户机的唯一途径。Linux 客户机需要 macOS 13+ 且从 UEFI 启动,才有声音、键盘、触控板和剪贴板;macOS 27 起又加了 USB 直通、Linux Secure Boot、“不保存更改运行”和虚拟机互联网络模式。
新建 Linux 虚拟机时,向导里有两个勾选项:“Use Apple Virtualization” 和 “Enable Rosetta (x86_64 Emulation)“(macOS 13+)。后者就是折中方案的关键。
Rosetta:arm64 系统 + x86_64 应用
Rosetta 让你在 arm64 的 Linux 虚拟机里直接运行 x86_64 的 Linux 可执行文件——系统本身是 ARM 的、跑在虚拟化上,只有那些 Intel 二进制交给 Rosetta 翻译。比整台 x86 虚拟机快得多,也是”Mac 上推荐 ARM 镜像”之后最实用的补充。
启用后 Rosetta 运行时以一个名为 rosetta 的 VirtioFS 共享出现,客户机里挂载并注册为 x86_64 ELF 处理器:
sudo mkdir /media/rosetta
sudo mount -t virtiofs rosetta /media/rosetta
# 写进 /etc/fstab 开机自动挂载
# rosetta /media/rosetta virtiofs ro,nofail 0 0
sudo apt install binfmt-support
sudo /usr/sbin/update-binfmts --install rosetta /media/rosetta/rosetta \
--magic "\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00" \
--mask "\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \
--credentials yes --preserve yes --fix-binary yes
(macOS 13 上 --preserve 要设 no,更新的系统设 yes。)
光有处理器还不够,x86_64 的共享库也得装。Debian/Ubuntu 系开 multiarch:
sudo dpkg --add-architecture amd64
sudo apt update
sudo apt install <package>:amd64
一个已知坑:base M1(非 Pro/Max)+ macOS Ventura 上,Apple Virtualization 后端的 Linux 客户机会随机 kernel panic 冻死。官方文档的建议是 base M1 用户避开这个后端,直到 Apple 或 Linux 维护者修复——用 QEMU 后端就好。
v5.0 的图形进展
v5.0 给 Windows 11 带来了 DirectX 加速(驱动仍实验性,游戏兼容性有限,官方建议全新安装),给 Linux 带来 Vulkan 1.3(Mesa 的 VirtIO Venus 驱动)和 OpenGL 4.1(新的 Apple Core OpenGL 渲染后端,仅 macOS,且不支持 Vulkan/DirectX)。注意 Linux 桌面渲染目前仍要走 VirGL:Vulkan 路径缺几何着色器的间接绘制支持,官方明确让桌面配回 VirGL Gallium 驱动。
五、上手:向导走一遍
以 Ubuntu / Windows 11 为例,流程是一样的:
- 点 + 打开向导,选 Virtualize(不是 Emulate)。
- 选操作系统(Windows / Linux / macOS…)。
- 分配 RAM 与核数。RAM 不要超过物理内存;核数留空则默认取 Apple Silicon 的性能核数。
- Linux 在这一步可勾 Use Apple Virtualization 与 Enable Rosetta;Windows 勾 Install Windows 10 or higher 和 Install drivers and SPICE tools。
- Browse 选 ISO,指定磁盘上限,可选共享目录,Save,Run。
Windows 的 guest tools ISO 里带 Autounattend.xml:挂到第二个光驱后,安装器会自动装对驱动、绕过 TPM/Secure Boot 检查、首次登录时拉起 SPICE tools 安装器,省掉大量手工步骤。安装过程中鼠标不对劲就点工具栏的捕获按钮把鼠标直接送进客户机,Control+Option 退出捕获。
Ubuntu 有两个”看起来像坏了其实是预期”的行为:安装结束点 Reboot Now 后可能黑屏挂光标——手动退出虚拟机、卸载安装 ISO、再启动即可;Server 版装完没有图形界面,sudo apt install ubuntu-desktop && sudo reboot 补上。
共享目录与剪贴板
| 后端 | 目录共享 | 客户机侧 |
|---|---|---|
| QEMU | SPICE WebDAV | 装 spice-webdavd,客户机内访问 http://127.0.0.1:9843 |
| QEMU | VirtFS(9p,更快) | fstab:share /mnt/utm 9p trans=virtio,version=9p2000.L,rw,_netdev,nofail,auto 0 0 |
| Apple | VirtioFS | sudo mount -t virtiofs share /media/share |
剪贴板共享两个后端都靠 spice-vdagent(sudo apt install spice-vdagent 后重启)。VirtFS 有个经典权限坑:共享目录继承 macOS 的 UID/GID(比如 502/20),和客户机的 1000/1000 对不上,普通用户访问被拒;用 bindfs 做 UID 映射,或干脆 sudo chown -R $USER /mnt/utm(后者会给文件写 user.virtfs 属性,别对宿主 home 目录这么干)。
快照
v5.0 新增 Snapshots 标签页,随时存状态、随时回滚:
- QEMU 后端:macOS 与 iOS 26+ 支持;运行中快照连运行状态一起存。
- Apple 后端:需要 macOS 27+,且创建/恢复/覆盖快照时虚拟机必须停止或挂起。
- 只包含虚拟机内置的可写磁盘;可移动、只读、外置驱动器不在快照里;disposable(不保存更改)模式下不可用。
六、iOS 与 visionOS:顺带一提
同一个仓库也产出移动端包,但玩法完全不同,核心矛盾是 JIT:QEMU 要靠动态代码生成才有性能,而 iOS 上 JIT 需要越狱或各种 workaround。
| 包 | 安装方式 | JIT | Hypervisor | USB |
|---|---|---|---|---|
UTM.deb | 越狱(Cydia/Sileo + AppSync Unified) | 有 | 有(M1 iPad+) | 有 |
UTM.ipa | 侧载(AltStore / SideStore) | 需半绑定启用 | 无 | 无 |
UTM.HV.ipa | TrollStore | 有 | 有(M1 iPad+) | 有 |
UTM.SE.ipa | 任意签名 / App Store | 无 | 无 | 无 |
UTM SE(slow edition) 用线程解释器代替 JIT,免越狱、免 workaround,能上 App Store,代价是慢;只打包 ARM、PPC、RISC-V、x86 四类架构,适合 DOS、Alpine 这种轻系统。侧载普通版推荐 AltStore(源 https://alt.getutm.app)或 SideStore,JIT 靠 AltJIT、StikDebug 这类半绑定方案;TrollStore 设备要下 UTM.HV.ipa,普通 IPA 带的 dynamic-codesigning entitlement 它不支持。
另外两条移动端硬限制:非越狱 iOS 给应用的内存上限大约是物理内存的一半;JIT cache 会被系统双重计数,内存紧张时先调小 JIT cache(默认是客户机内存的 1/4,且独立于客户机内存之外)。
一句话:手机平板上跑虚拟机是玩具和应急,Mac 才是 UTM 的主战场。
七、排错清单
| 现象 | 原因 | 处理 |
|---|---|---|
| 开机进 EFI shell 而不是安装器 | ISO 架构下错(arm64/amd64),或没挂 ISO、没按任意键 | 换对架构的镜像;Ubuntu 可在 EFI shell 里执行 fs0:\efi\boot\bootaa64.efi |
Windows 安装器 BSOD SYSTEM_THREAD_EXCEPTION_NOT_HANDLED | Windows 构建太老 | 用 build 21390 及以上的镜像 |
| ”This PC can’t run Windows 11” | TPM/Secure Boot 检查 | 新版 UTM 已自动启用两者;旧版用 LabConfig 注册表项绕过 |
| Windows 装完没网 | 没装 SPICE guest tools(含网卡驱动) | 挂 guest tools ISO 安装;OOBE 卡联网时 Shift+F10 执行 OOBE\BYPASSNRO,被微软封的新版改用 start ms-cxh:localonly |
ping 不通但网页能开 | libslirp 限制,ping 本就不工作 | 正常现象,Windows 可能因此误判”无网络” |
| Apple Silicon 上 x86 Windows 只有单核 | 内存序限制,多核模拟不保证正确 | 接受单核,或 Force multicore 换正确性 |
| Windows 11 24H2 安装器黑屏 | guest tools 图形驱动兼容问题 | 弹出 guest ISO 重启进安装器,装完再挂回装 tools;仍黑屏就重置虚拟机 |
| Ubuntu 加减设备后没网 | 网卡枚举名变了 | 改 /etc/netplan/00-installer-config.yaml 里的适配器名(如 enp0s1) |
| ARM64 启动长时间黑屏 | 两个 wait-online 服务同时 enabled | systemctl disable systemd-networkd.service;可加串口设备进命令行操作 |
| base M1 + Ventura 客户机随机 panic | Apple Virtualization 后端已知 bug | 换 QEMU 后端 |
| 共享目录普通用户访问被拒 | 宿主与客户机 UID/GID 编号不同 | bindfs 映射或 chown -R |
| 更新 UTM 后挂起的虚拟机恢复异常 | v5.0.8 已知问题 | 更新前先关闭所有虚拟机 |
八、值不值得用
适合:Apple Silicon 上想要一台接近原生的 arm64 Linux 开发/测试机;需要 Windows 11 ARM 跑办公、网银或只有 Windows 版的工具;想玩 DOS、Classic Mac OS、PPC 这些复古系统;不想为虚拟机付订阅费的人。
不适合:指望在 Apple Silicon 上流畅跑 x86 Windows 大型软件或游戏(模拟慢、默认单核,DirectX 驱动也还实验性);需要企业级 GPU 直通和成熟快照策略的场景;base M1 + Ventura 还坚持用 Apple 后端的 Linux 用户。
和这个专栏上一篇 Podroid 对照着看挺有意思:一个在安卓上免 root 起真虚拟机跑容器,一个在苹果生态里把 QEMU 和系统虚拟化框架包装成人人可用的图形界面——思路同源,都是”把完整的 Linux/Windows 环境塞进消费设备”,只是 UTM 在 Mac 上能吃到硬件虚拟化,体验上限高得多。
最后回到标题那句话:在 Apple Silicon 的 Mac 上,先选对 arm64 镜像,再谈其它优化。 架构选对了,UTM 是一台安静、快速、免费的虚拟机;选错了,它是一台昂贵的幻灯片放映机。