15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > UTM:开源的多面手 macOS 虚拟机(更新到 2023.3.2)

UTM:开源的多面手 macOS 虚拟机(更新到 2023.3.2)

时间:2023-07-01 01:51:01 | 来源:网站运营

时间:2023-07-01 01:51:01 来源:网站运营

UTM:开源的多面手 macOS 虚拟机(更新到 2023.3.2):

前言

笔者曾经介绍了支持 arm64 的平台的 VMware Fusion,这篇文章引起了一部分 Apple Silicon 机型的 Mac 用户的关注。

实际上,笔者自己从买到 Apple Silicon 的 Mac 起,一直在努力寻找其他代替 Parallels Desktop 的虚拟机方案——因为实在看不惯它的收费的套路,于是乎找到了两个替代品:UTM 和 VMware Fusion。

之所以此前并未提及 UTM,原因是最初写上面的文章的时候,UTM 才刚有一些起色,还不能做到成熟,但用到 3.1.5 版本的时候,逐渐发觉它有了很大的改变,比如操作逻辑从困难逐渐变得容易,增加了虚拟化 Monterey 版本及以后的 macOS 的支持,不仅对于 arm64 架构系统的虚拟化有了一定的提升,还增强了稳定性,修复了不少的 bug,这些改变都非常可喜,因此笔者再单独出一篇文章介绍 UTM。

由于 Windows 11 arm64 是很多 Apple Silicon 用户关注的焦点,因此操作系统的安装步骤就拿它为例。这里介绍的步骤适用于绝大多数版本的 Windows,其他的操作系统安装步骤与此有相通之处,但并不完全一致。

ℹ️阅读提醒:①本文以 MacBook Pro(14-inch,2021)演示,内容视情况不定期更新,因此当官方推出新的版本时,本文部分文字会有相应的改动,请持续关注。

②目前 UTM 最新的正式版本是 4.1.6,故接下来基于此版本做介绍。不同版本号之间可能会有一些功能上的变化,但大体是相同的,请以自己所用的版本为准(越新越好)。

③笔者只是一个普通的 UTM 用户,不是 UTM 的技术支持,因此恕不在此测试操作系统(勿问“○○在 UTM 上表现如何”、“能运行○○吗”、“和○○相比哪个更好”等问题)。使用方面建议阅读官方的帮助文档(英文),若读者是程序员,可以去官方的 GitHub 项目页查找或提交相应的 issue,甚至贡献代码。

什么是 UTM?

UTM 本来是一个旨在实现 iPhone 与 iPad 运行虚拟机的开源项目,基于开源社区数十年来备受瞩目的 QEMU,但在 2020 年 M1 芯片的问世后,顺带也支持到了 Mac 上来。UTM 的 macOS 版支持 Apple Silicon 和 Intel 双架构,和 iOS 版一样完全免费,可以在这里下载它的 .dmg 文件:

同时,它在 App Store 上架了一个无内购的买断付费版,其实这个付费版应当看作捐赠版,与官网的免费版功能完全相同,目的是让用户更好地支持开发,并通过 App Store 接收最新的 UTM 更新。App Store 链接在下方:

上面两个链接是正式版,建议大多数用户下载。如果没有使用最新版本,推荐更新。

另外,对于想尝鲜的用户,官方 GitHub 项目页的 Releases 部分可以下载 Beta 版本的 UTM(如果从正式版升级到 Beta 版,为防不测,建议对已有的虚拟机文件做个备份):

由于 UTM 继承了 QEMU 的所有特性,可以支持的操作系统和虚拟 CPU 很多,无论是 arm64 还是 x64 处理器的 Mac,都可以既能直接以原生速度虚拟化运行与本机架构相同的操作系统,又能用模拟的形式运行其他处理器架构的操作系统,所以,UTM 可以称得上是“多面手”的虚拟机。

准备工作

在下载安装好 UTM 后,开始安装操作系统前,需要准备好操作系统的安装映像。

因为是安装 Windows 11 arm64,我们有两种方式:一是通过 .iso 文件,.iso 文件的获得,可以通过 UUP Dump 下载站,或者通过其他能够获取 .iso 的方式(比如 ITELLYOU)。.iso 文件最好采用正式版,比如最新的 22H2,过低版本号的 .iso 因缺少 UEFI 驱动支持,安装时会出现蓝屏。

二是通过 .vhdx 格式的文件,需要通过如下的链接获取 .vhdx 格式的 Hyper-V 虚拟磁盘文件,预装了 Windows 11 on ARM Insider Preview,有 Beta 和 Dev 两种渠道。下载该文件的前提是登录加入 Windows Insider 计划的 Microsoft 账户,具体的方法请自行查阅。

本文选择第一种方式来安装 Windows 11。

创建虚拟机

首次打开 UTM 的时候,可以有两种方式创建虚拟机。

第一种是按照预配置方式,前往虚拟机资源库,下载现有的虚拟机(虚拟机资源库提供了一些操作系统的预配置,部分甚至直接预装了操作系统),根据需要下载文件,并解压出一个 .utm 扩展名的虚拟机包后,直接双击打开。

如果日后需要复用该虚拟机,可以右击该虚拟机,选择“克隆”。

第二种是从头开始,点击“+”创建一个虚拟机,开始页面如下图所示(我这里已经创建好几个虚拟机了)。

在新建虚拟机的第一步,UTM 首先会询问用户需要“虚拟化”还是“模拟”。“虚拟化”采用原生的虚拟化引擎,要求操作系统支持的处理器架构与电脑一致,运行速度更快,而“模拟”速度较慢,但架构不受限制。

⚠️注意:这一步的选择直接关系到虚拟机是否正常启动,如果选错,虚拟机会出现异常。因此,针对你自己的机型,可以参照如下的表格选择(不知道自己电脑属于何种机型?可以点击屏幕左上角的苹果菜单  > 关于本机)。

要安装的操作系统架构Apple Silicon 机型的选择Intel 机型的选择
arm64(或者叫 aarch64,注意不是 arm/arm32)虚拟化模拟
x86_64模拟虚拟化
既非 arm64 也非 x86_64(例如 PowerPC、RISC)模拟模拟
这里的例子是 Windows 11 arm64,由于安装的操作系统与自己的 CPU(Apple M1 Pro)架构相同,因此选择第一个“虚拟化”。

接下来选取操作系统,UTM 已经对一些操作系统有了一定的预配置,因此可以无脑选择,当然如果对 QEMU 很熟悉的话,可以选择“其它”来自定义设置。

对于 Windows 11 arm64 的安装,这里我选择“Windows”。

接下来选择操作系统映像,对于 Windows 操作系统,针对 .iso 安装,直接点击“浏览”按钮(如果是 .vhdx 格式安装,需要先勾选“导入 VHDX 磁盘映像”,再点击“浏览”),然后选取你下载好的 .iso 或 .vhdx 文件。

这里我还默认勾选了“Install drivers and SPICE tools”,可以在系统安装好后继续安装 SPICE Guest Tools。也许你可能现在并不知道 SPICE Guest Tools 是什么,别着急,后面我会专门解释。

选取映像文件完毕,点击“下一步”。

接下来设定硬件与 CPU 核心数,CPU 核心数目可留空,内存可设定为 8192 MB(8GB 大小属于官方的推荐配置,如果你的 Mac 内存没那么大,可以保持在 4GB,也就是 4096 MB)。

然后设定存储驱动器大小,Windows 11 的系统最低要求是 64 GB,当然如果希望在虚拟机里多装一些软件,可以调的更大一些。

接下来进入“文件共享”的设置,可以点击“浏览”选取文件夹,设定一个路径,用于虚拟机与实体机的文件交换,这个功能只有部分操作系统支持,对于 Windows,待安装 SPICE Guest Tools 后,会在资源管理器中以网络驱动器的形式显示。

我习惯设定这个路径为自己的桌面,当然你可以设定为别的文件夹,然后点击“下一步”。

最后进入“总结”页面,可以设定虚拟机的名称,方便区分多个虚拟机。

虚拟机绝大多数的设置是不需要动的,点击“保存”即可直接创建虚拟机。

但如果读者还想再进一步设置,可以勾选“打开虚拟机设置”,在虚拟机创建后做一些设定,以后也可以从虚拟机列表右击虚拟机,点击“编辑”。

这样整个虚拟机就创建完成了,它会出现在左侧的虚拟机列表里。

运行虚拟机

点击虚拟机名称旁边的运行按钮运行虚拟机,此时就开始安装系统了。

对于 Windows 11,在虚拟机开机一会儿后,会出现如下的提示“Press any key to boot from CD or DVD...”,请在虚拟机内立即按键盘上的任意键进入安装界面。

(如果不慎错过,出现“UEFI Interactive Shell”,请重启虚拟机再试)

接下来的安装步骤完全省略,因为这并不属于本文的重点,如果还有不清楚的地方,请参阅如下文章的“开始安装 Windows”和“通过 OOBE 进入 Windows 系统”部分:

在完成安装并经历一些设置步骤后,就是熟悉的桌面了。

为虚拟机安装 SPICE Guest Tools(限部分操作系统支持)

和 Parallels Desktop 的 Parallels Tools、VMware 的 VMware Tools、VirtualBox 的 VirtualBox 客户机增强功能一样,UTM 也有相应的 SPICE Guest Tools(来自于开源的项目 SPICE,旨在为 QEMU 提供开源的虚拟机驱动方案),它包含一套完整的虚拟机驱动程序,可以更好地提升虚拟机的体验,并实现剪贴板与文件夹共享。

SPICE Guest Tools 目前支持的操作系统有 Windows 和 Linux,后者在帮助文档中有说明,对于前者,SPICE Guest Tools 支持 XP 及以后的所有 Windows 版本。

UTM 为 Windows 虚拟机提供了一套比较便捷安装它的方式。如果此前事先勾选了“Install drivers and SPICE tools”,那么桌面上会自动弹出 SPICE Guest Tools 的安装程序窗口。如果没有,可以点击工具栏上的光驱图标按钮,选择“Install Windows Guest Tools...”。

若电脑上无 SPICE Guest Tools,则 UTM 会自动下载 SPICE Guest Tools 的 .iso 映像,下载后 UTM 将尝试挂载。注意应确保所有虚拟机的光驱内没有加载任何映像,否则会弹出提示,要求预留空光驱(解决方法是点击工具栏上的光驱图标按钮,选择“CD / DVD(ISO)映像” > “弹出”,弹出所有虚拟光盘)。

在打开 SPICE Guest Tools 的安装程序时,请点击“Next >”按钮下一步。

接下来点击“I Agree”同意用户许可协议。

然后就开始安装 SPICE Guest Tools,请耐心等待安装完成。

最后是安装完成的界面,请务必选择“Reboot now”并点击“Finish”按钮,重启 Windows 使安装的 SPICE Guest Tools 生效。

(顺便提一下,这个驱动的数字签名竟然是 Red Hat Inc.)

重启后,这下虚拟机的体验就更完整了:不仅可以根据窗口自适应调整分辨率,还可以缩放为全屏,实现虚拟机与宿主机之间的剪贴板共享,之前设置的共享文件夹可以在资源管理器里查看,甚至 USB 的使用也是正常的。

至于激活系统什么的我也不多介绍了,因为 arm64 和 x64 版的 Windows 11 的激活机制是一样的,而且这也超出 UTM 的叙述范围了。

最后上一张我自用虚拟机的效果图:

常见问题解答(FAQ)

Q1:在 Windows 虚拟机中,与共享文件夹之间复制文件时出现“错误 0x80070021:另一个程序已锁定文件的一部分,进程无法访问”的错误提示(类似下图),这个问题该如何解决?

A:因为共享文件夹是通过 WebDAV 的网络驱动器实现的,早在 Windows XP Service Pack 2,微软出于对 WebDAV 服务的安全考虑,对 Windows 做了一定的限制:若文件超出一定大小,则不予执行复制或移动操作,以防止未经授权的服务器对于客户端计算机进行大流量的攻击。

但可以通过修改注册表适当地提高这个界限。首先打开注册表编辑器,通过左侧的树形图或直接通过地址栏输入,定位到如下路径:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/WebClient/Parameters然后在右侧双击FileSizeLimitInBytes项,将其键值改为ffffffff(基数为十六进制) 。

重新启动计算机使改变生效,再复制就可以了。

注意:由于 Windows 注册表天然的限制,上述键值不能大于十六进制的FFFFFFFF(转换为十进制数是 4294967295),这意味着在虚拟机与共享文件夹之间,移动或复制文件最高的限制大约是 4.29 GB。

对于大多数情况下的文件移动和复制,这个大小是足够的,但对于超出 4.29 GB 的文件,目前 UTM 还未突破这一问题,可以考虑的解决方案有:通过优盘在宿主机与虚拟机之间转移,或分卷压缩文件、拆分文件(夹),或通过 SMB 的高级共享将 Windows 共享文件到 macOS,或使用远程桌面软件(例如 Microsoft Remote Desktop)。

当然更高级一点的,可以通过内网 SSH 连接实体机的形式上传下载,简要说一下方法(部分的细节有所省略):

首先需要在 macOS 里开启远程登录和远程管理。在 macOS Ventura 里打开系统设置 > 通用 > 共享,将“远程登录”和“远程管理”开关打开,或在 macOS Monterey 及以下版本,打开系统偏好设置 > 共享,勾选“远程登录”和“远程管理”的复选框。

然后点击远程登录旁边的信息图标(Monterey 及以下版本是直接点击左边列表的“远程登录”),记下划红线那块,“@”符号前的是用户名,“@”符号后的一串数字是访问本机的 IP 地址。

每个人的访问 IP 地址未必相同,这里拿我的做了例子,图中用户名部分被模糊处理
对于 Windows 端,需要根据系统的架构下载并安装对应的 PuTTY 客户端,务必记得在安装向导中添加到环境变量PATH

最后直接在命令提示符(或 Windows 终端、PowerShell)里进行传输操作,这里用到的关键字是pscp,其命令和 Linux 的scp用法基本相同,用到了之前记下的 macOS 用户名和 IP 地址,具体用法可以参考:

Q2:为何不能通过 UTM 下载 SPICE Guest Tools for Windows?

A:请检查相应的网络状态,因为 UTM 下载 SPICE Guest Tools 是通过 GitHub 来拉取资源的,关于如何顺畅访问 GitHub,方法请自行搜索。

若无法自动下载 SPICE Guest Tools,也可以通过如下官方帮助文档的说明,手动下载 .iso 文件:

Q3:在安装 SPICE Guest Tools for Windows 的时候,出现了类似下图的提示,这个提示正常吗?

A:这个问题在较低版本的 Windows 10 及再往前的 Windows 都会遇到,原因是 SPICE Guest Tools 的驱动程序的数字签名不被旧版本的 Windows 信任,这属于正常现象,允许这些驱动的安装就可以了。

Q4:如何关闭 macOS 菜单栏的 UTM 图标?可以在 UTM 中设置反转鼠标的滚动方向吗?

A:执行菜单命令 UTM > 设置…,选择“Application(应用)”,然后取消勾选“Show menu bar icon(显示菜单栏图标)”,即可关闭 macOS 菜单栏的 UTM 图标。

同样,在设置窗口选择“输入”,勾选“Invert scrolling(反转鼠标滚动)”,即可全局设置反转鼠标的滚动方向,对于 macOS 虚拟机,需要在系统设置内单独设置鼠标,不将滚动方向设置为“自然”。

Q5:在 Apple Silicon 上虚拟化 macOS 的时候,为何不能登录 Apple ID?

A:这个问题与 UTM 本身无关,而是苹果限制了虚拟机全局登录 Apple ID 的能力,但其他功能可以和实体的 Mac 一样正常使用。

Q6:我下载了一个 .qcow2 磁盘映像,如何在 UTM 上使用它呢?

A:由于 UTM 是在 QEMU 的基础上开发的,因此 .qcow2 映像也可以在 UTM 上使用。

在创建虚拟机的步骤中,可以先根据自己的需要创建好虚拟机,然后再在虚拟机列表右击虚拟机,选择“编辑”,找到“驱动器”下方的“新建…”,此时会弹出一个浮动的窗口,然后选择“导入”来导入 .qcow2 映像,最后把原先创建的磁盘删除。

Q7:为何在安装某些操作系统的情况下,虚拟机的显示不正常?

A:出现该问题的原因可能是使用了不兼容或不完全兼容的虚拟显卡,因此可以尝试更改对虚拟机的设置。方法是在虚拟机列表里右击选择“编辑”,然后点击左侧的“显示”。在右侧的设置项中,找到虚拟显卡,选择其他的显卡,最后点击“保存”。

如果拿不准的话,可以逐个尝试,也可以参考我自己总结的一些虚拟显卡配置:

Q8:我对 UTM 的默认处理器配置不够满意,有什么办法可以提升虚拟机的运行速度?

A:虽然 UTM 的模拟未必能接近原生的运行速度,但也有一些办法来让虚拟机的运行速度更快一些,比如提升虚拟机运行内存、CPU 核心数,还可以勾选“强制多核”来提高模拟速度。对于 Windows 7 至 Windows 10 x64 LTSC(x86_64 架构),我本人推荐的配置如下图:

其他的架构在此不做列举,请自行尝试。

另外,强制多核不适用于与 Mac 相同架构的操作系统,以及某些操作系统限定了运行配置,或者某些模拟的硬件有一定的内存和 CPU 核心数限制,如果设置不当,虚拟机的运行反而会出问题。因此,除 Windows 外,在对操作系统不熟悉的情况下,这部分不应当擅自修改。

Q9:为何有些老旧的操作系统不能识别键盘?

A:请确保鼠标在虚拟机内,有些情况下需要设置虚拟机的输入设备为“强制使用 PS/2 控制器”才能使用。如果在设置后依然出问题,则属于无解的情况了。

总结

UTM 是一个根植于开源项目 QEMU 的 iOS 虚拟机,自苹果在 2020 年的 WWDC 宣布 macOS 的软件生态由 x64 向 arm64 转型起,它也顺带对 macOS 做了支持,特别是 Apple Silicon。UTM 致力于给复杂的 QEMU “做减法”,在为用户提供 QEMU 的灵活性的同时,让界面不断原生化,更接近系统的自带应用,操作更加简便,因此,对 QEMU 比较熟悉的用户,使用 UTM 不会感到困难。

作为虚拟机,UTM 还可以虚拟化 macOS(限 Apple Silicon)与 Linux,甚至一些过时的系统也同样可以模拟运行。由于支持模拟的 CPU 种类多样(可以在虚拟机的设置里修改),因此对于古董系统爱好者和需要 QEMU 开发的开发者来说,也是一个非常有益的补充。

另外,UTM 有一个独特的“一次性模式(Disposable Mode)”功能。右击已经创建好的虚拟机,选择“Run without saving changes(运行而不保存更改)”,即可在此模式下运行。在一次性模式中,所有对虚拟机的更改在关机后不会保存,这对软件测试人员和软件安全从业人员来说,提供了不小的便利。

就 Apple Silicon 而言,虽说 UTM 跨架构的模拟表现对于部分操作系统尚可,主流的 x86_64 上还有很长的路要走,但它在 macOS 的适配进度上已经甩开了同样开源的 Oracle VirtualBox,还有 UTM 目前在 arm64 虚拟化的表现与竞品的差距不断缩小,足够让笔者咋舌。

希望 UTM 能够不断彰显开源软件的优势所在,在 Mac 和 Apple Silicon 向未来发展的道路上注入新的活力。

感谢阅读~



关键词:更新,虚拟

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭