苹果于 2020 下半年起推出的 Apple Silicon 是具有划时代意义的处理器,它开启了作为个人电脑在 arm64 处理器架构的生态下发展的新形态,在这两年的时间内,从 x64 到 arm64 的转型进程中,macOS 取得了很大的进展。
而微软的 Windows on ARM 也是一个了不起的技术革新,arm64 版 Windows 内置了 x86_64 的应用程序仿真层,为用户提供了一个与传统的 x86_64 几乎一致的桌面体验,特别是 Windows 11 的推出,更是提升了 x86_64 应用的模拟效率。
实际上,Windows on ARM 本来是微软为高通骁龙系列芯片和树莓派运行 Windows 而推出的解决方案,由于 Apple Silicon 机型的 Mac 用户在不断增长,为 arm64 版 Windows 带来了可观的用户基数,甚至促使微软推出了一款硬件 Windows Dev Kit 2023,目的是吸引更多的开发者为 arm64 开发应用程序。
通过安装虚拟机来使用 Windows 一直是 Mac 用户老生常谈的话题,虽然 Apple Silicon 对虚拟化的性能提升极为诱人,然而目前正处于转型期,能用的虚拟机比较有限,率先支持 M1 及以上处理器 Mac 的是 Parallels Desktop。但我发现,有相当一部分用户被 Parallels Desktop 高昂的定价策略劝退,于是目光只能注意在老牌的虚拟化软件制造商 VMware。
将近一年的时间,VMware 对 Apple Silicon 的支持完全落后于友商 Parallels,Fusion 对 Apple Silicon 的支持计划于 2021 年的九月中旬启动,并发布了首个公开技术预览版,直到 Fusion 13.0.0 的正式版,才在支持 Intel 的同时正式纳入了对 Apple Silicon 的支持。
我对 Fusion 支持 Apple Silicon 的进展一直非常关注,但搜索知乎却没有发现一个详细的教程,索性自己写一个好了——这个教程就是为想通过 VMware Fusion 安装 arm64 版 Windows 的人准备的。
ℹ️特别提示:①本文以我的 MacBook Pro 2021(14 寸,M1 Pro)来演示,macOS 版本为 Ventura 13.0.1,所述的 VMware Fusion 版本是 13.0.0(含 VMware Fusion Pro 和 VMware Fusion Player,构建版本 20802013),并假设读者已对 Windows 系统及 macOS 的基本操作足够熟悉,除常见问题解答(FAQ)部分列出的以外,涉及操作系统本身的使用问题不予解答;
②如果读者是 VMware Fusion 的老手,许多内容可直接跳过,只需要过目本文的一些不熟悉和需要引起注意的地方;但对于第一次使用 VMware Fusion 的用户,请务必将本文从头到尾仔细地阅读一遍,并按照叙述一步一步地完成,避免出错;
③笔者只是一个普通的 Fusion 用户,并非 VMware Inc. 的员工,与 VMware Inc. 无任何利益上的关联,不是此软件的技术支持,使用中如有疑问,建议翻阅 Fusion 的官方帮助,或参考相应的 .pdf 版使用指南(英文):
Using VMware Fusion - VMware Fusion 13docs.vmware.com/en/VMware-Fusion/13/fusion-13-user-guide.pdf
④如果 Fusion 有大版本的更新推出,我也会随之更新本文,故文字描述会相比之前可能有一些改动,请持续关注。
准备工作
在 Apple Silicon 的 Mac 机型上,首先需要准备的有:
①VMware Fusion 13,可以打开如下的官网链接,下翻找到“Fusion 13 Pro for macOS 12+”,点击“DOWNLOAD NOW”,下载 VMware Fusion 13 的 .dmg 格式的安装包:
Download VMware Fusion | VMwarewww.vmware.com/products/fusion/fusion-evaluation.html
下载后双击该 .dmg 文件,可看到如下访达(Finder)窗口,双击中间的安装程序图标来安装 Fusion。安装后会要求输入许可证密钥,可以自行注册 VMware 账号以申请免费版 Fusion Player 的密钥。
(想找 Pro 版的可见评论区置顶,有条件的建议购买许可证入正)
②Windows 11 arm64 的 .iso 镜像文件,或者预装有 Windows 11 arm64 的虚拟磁盘文件,要求是 VMware 可读取的 .vmdk 格式。
⚠️注意:Fusion 在 Apple Silicon 上不支持使用 x86 / x64 的操作系统镜像,因为 arm64 架构的虚拟化引擎与 x64 上的完全不同!
.iso 的优点是安装比较灵活,缺点是安装过程需要花费一定的时间,而 .vmdk 可以做到“开箱即用”,省去很多安装步骤,但灵活性差,且不能预先分配磁盘空间。两种方式任选其一即可,如果有一个方式尝试出现问题,请换另外一个方式。
已有 .iso 镜像文件的读者,可以自行尝试安装,但为确保安装成功,镜像的版本号不宜过低(建议选用最新的 22H2 正式版),否则因为对虚拟机 UEFI 的驱动支持不完整,安装过程会出现奇奇怪怪的问题,例如虚拟机 BIOS 无法读取,或者安装出现蓝屏。
如果不知道在哪里去找镜像文件,我也把 .iso 文件和 .vmdk 文件整理在了阿里网盘。下载前,请务必阅读随附的使用须知:
「Windows ARM64」提取码:ri4dwww.aliyundrive.com/s/QDsV62o9qJe
创建虚拟机
1. 首次打开 VMware Fusion 时,会直接显示新建虚拟机的窗口。
接下来的步骤,会因读者的安装方式而有所差别,请参照阅读——
①如果用 .iso 镜像安装 Windows 到虚拟机,首先将下载好的 Windows 11 arm64 的 .iso 镜像拖到窗口内。
此时 Fusion 应当检测到镜像为“Windows 11 64 位 ARM”,然后点击“继续”。
②如果是从 .vmdk 虚拟磁盘文件创建虚拟机,请首先选择“创建自定义虚拟机”,然后点“继续”。
选择操作系统为“Microsoft Windows” > “Windows 11 64 位 ARM”。
2. 在固件类型的选取页面,“UEFI 安全引导”选择与否无所谓,点“继续”下一步。
3. 接下来进入“选择加密”。
这部分是添加 vTPM 的步骤,是 Fusion 13 全新引入的功能,我来解释一下:
从 Windows 11 起,为保证运行操作系统的安全性,微软对电脑的固件要求有 TPM(Trusted Platform Module,可信平台模块)2.0。
在计算机硬件中,TPM 模块是一个负责对 BIOS、硬盘等数据进行加密的芯片,相对应地,在虚拟机中引入的是虚拟的 TPM 模块,也即 vTPM。
VMware Fusion 中对 vTPM 的实现方式,是对虚拟机的文件采取完全或快速加密。完全加密(Full Encryption)是将组成虚拟机的所有文件全部加密;而快速加密又称部分加密(Partial Encryption),即只将必要的文件作加密处理(被加密的文件类型分别是 .nvram、.vmem、.vmsn、.vmss、.vmx)。
两种加密方式选其一即可。我更推荐部分(快速)加密,因为可以在满足 Windows 11 系统要求的同时,保证虚拟机读写的最大性能。
在加密的过程中,需要使用密码作为凭证,比较懒的话可以直接点击“Auto Generate Password(自动生成密码)”按钮,Fusion 会自动生成一串由大小写英文字母和数字构成的 16 位密码,并以红字提示用户。当然也可以自己创建密码,并再次输入以确认,但密码长度必须至少有 8 个字符。
⚠️注意:一定要勾选下面的“Remember Password and store it in Mac's Keychain(记住密码并将其存储在 Mac 钥匙串中)”,这样做的目的是将密码自动存入 macOS 钥匙串,可以避免以后每次打开虚拟机的时候输入密码的麻烦,还可以在“钥匙串访问”应用查到。
4. (这一步是选用 .vmdk 安装要做的,若用 .iso 安装请直接跳到下一步)
在选择虚拟磁盘的界面,请选择“使用现有虚拟磁盘”,并点击“选择虚拟磁盘...”按钮。
在弹出的选择文件窗口中,选取下载好的 .vmdk 格式的虚拟磁盘文件。
另外,下方的选项中推荐选择“制作虚拟磁盘的单独副本”,这样的好处是避免虚拟磁盘文件被覆盖,以及可以重复使用虚拟磁盘。
完成选择虚拟磁盘文件操作后,点按“继续”按钮。
5. 最后是完成虚拟机配置的步骤,不出意外就可以点击“完成”,虚拟机会自动启动。
当然,如果已对 VMware Fusion 很熟悉,也可以点击“自定设置”,在保存虚拟机后再做一些配置,比如对我来说,我通过“处理器与内存”,修改虚拟机分配的内存为 8GB(8192 MB),CPU 核心数为四核,当然我也可以设置硬盘的空间大小,等等。
⚠️注意:若用 .vmdk 安装,不建议对磁盘大小提前修改(可以在完成 OOBE 的设置后修改),千万不要在虚拟机的设置中勾选“预先分配磁盘空间”,否则会损坏虚拟磁盘,造成虚拟机启动时蓝屏。
开始安装 Windows(针对 .iso 镜像安装,若用 .vmdk 请跳过)
在启动虚拟机后,系统的安装就开始了。
出现如下的提示“Press any key to boot from CD or DVD......”时,请在虚拟机内立即按键盘上的任意键进入安装界面。(如果不慎错过,需要重启虚拟机再试)
接下来就是熟悉的安装程序界面,我觉得可以只放图不说话了,毕竟我认为步骤太小儿科了:
通过 OOBE 进入 Windows 系统
如果你通过 .vmdk 创建了虚拟机,等待一会儿就可以直接进入 OOBE(Out-Of-Box Experience,开箱体验,又称首次使用引导),当然,如果你是 .iso 镜像安装,也应该在前面的等待后到这一步了。
在 OOBE 中,前面的地区选择和键盘布局部分还好说,但对于消费者版 Windows 11 的用户,到联网这一步就出问题了:“下一步(Next)”按钮是灰色,无法点击继续。
出现这个问题的原因是虚拟机目前没有网络驱动(后面会介绍怎么解决),微软从 Windows 11 的 22H1 版本开始,对于消费者版的 Windows 11 删除了“仅使用本地帐户设置设备”的选项,让用户在没有 Microsoft 帐户和不联网的条件下,执行 Windows 的全新安装变得越来越困难。
老实说,我已经被微软的这个细节恶心到了。但吐槽归吐槽,还是有一个方法可以解决:
在虚拟机内按下 Shift + F10 的组合键,启动命令提示符。
⚠️注意:如果无法完成按快捷键这一步,请参见“常见问题解答”部分的 Q6 与 Q7。
在弹出命令提示符的窗口中,输入如下一行命令并回车,记得把输入法切换到英文输入状态下(这行命令只有字母 O,没有数字零,不会还有人搞错吧):
然后就可以通过无联网方式重新进入 OOBE。
这时候重新选择地区、键盘布局,再到联网这一步,选择“我没有 Internet 连接(I don't have Internet)”,并选择“继续执行受限设置(Continue with limited setup)”,就可以跳过这部分了。
之后创建用户名密码、隐私设置什么的,这里就省略了。
走完 OOBE 的全部流程,再等一会儿,熟悉的 Windows 桌面就在眼前。
安装 VMware Tools
之前我们说过,这个虚拟机缺少网络驱动。
接下来执行 VMware Fusion 的菜单命令:“虚拟机” > “安装 VMware Tools”,通过 VMware Tools 的安装,让虚拟机的网络正常工作。
打开文件资源管理器的“此电脑”,先双击 DVD 驱动器的“VMware Tools”:
常与 VMware Workstation 打交道的都知道,安装 VMware Tools 需要去找对应的安装程序 setup.exe,但将文件列表拉到最底部,却没有发现 x86 / x64 那样的 .exe 文件,而是一个 PowerShell 脚本 setup.ps。
难道这个脚本就是用于 VMware Tools 的安装?是的,基于不同的操作系统架构,Fusion 的开发组为 arm64 版 Windows 另外设计了一套 VMware Tools!
在运行这个脚本之前,我们还需要做这样一件事情,否则运行不成功:
点击任务栏上的“搜索”图标,键入关键词“PowerShell”,然后选择“以管理员身份运行”(运行时需要用户帐户控制,请选“是”)。
在 PowerShell 窗口中,输入下面的命令并回车:
Set-ExecutionPolicy RemoteSigned
这时候系统会提示“执行策略更改”,输入字母“Y”(是)或“A”(全是)并回车。
关闭该窗口,回到文件资源管理器,右击 setup.ps 脚本文件,选择“使用 PowerShell 运行(Run with PowerShell)”。
如有用户帐户控制,请选“是”。此时应当会有一个 PowerShell 窗口,显示 VMware Tools 的安装进度。安装完成后,窗口会在约半分钟后自动消失,当然也可以按下任意键直接退出。如有必要,可以重启一下 Windows。
在完成 VMware Tools 的安装后,你会发现网络可以正常使用了,而且屏幕的分辨率也可以在 Windows 设置里修改为全屏下与 Mac 屏幕相适应的大小。
最后一步:优化虚拟机体验
到这里,按理说教程应该结束了。
但如果读者是 VMware 虚拟机的老手,在使用时就会发现,这个虚拟机的体验依然不够完整,因为官方目前还没有实现实体机与虚拟机之间的集成功能——文件拖放、文件夹共享、剪贴板共享、窗口自适应、Unity 模式需要在后续的版本开发后才能安排上。
1. 解决基本的文件共享问题
对于文件的移动和复制问题,目前的变通办法(workaround)可以有如下的几种:
①插优盘或移动硬盘,并在虚拟机的工具栏里选择并连接 USB 存储设备。
②如果是临时将文件导入虚拟机,可以用 macOS 下的第三方压缩软件 Keka,将需要的文件压缩成 .iso 文件,放入虚拟机的光驱(对于需要安装应用程序的场景来说很管用)。
③还有一种方法是让 Windows 虚拟机作为远程服务器,把文件夹共享给 macOS。(整个过程中如有用户账户控制,请选择“是”)
在 Windows 下,首先打开文件资源管理器,定位到需要共享的文件夹,这里我们共享的是“桌面”所在的文件夹。然后右击选择“属性”:
在“属性”窗口中,点击“高级共享”按钮。
在“高级共享”窗口中,先勾选“共享此文件夹”复选框,然后点击“权限”按钮:
弹出共享权限的设置窗口,确保如下图所示的复选框勾选后,点击“确定”:
回到上一级“高级共享”窗口,点击“确定”。此时就可以看到桌面文件夹已经可以用于共享了。
接下来我们需要获取到 Windows 虚拟机的 IP 地址。打开命令提示符或 PowerShell、Windows Terminal,输入ipconfig
并回车,找到“IPv4 地址”这一行,将 IPv4 地址记下备用。
此处的 IP 地址仅作为演示,请以实际为准
回到 macOS,在访达(Finder)下,执行菜单命令 前往 > 连接服务器… :
在连接服务器窗口中,输入smb://
,接着输入刚才记下的 IP 地址,然后点击“连接”按钮。
这时候 macOS 会询问要装载 Windows 上的哪个文件夹作为宗卷,因为我们当前只共享了一个文件夹,所以可以直接选择“好”按钮:
在下一个窗口中,先选择“注册用户”,输入名称和密码。这里需要注意的是“名称”是指 Windows 要共享的用户的用户名,也就是当前共享的 Windows 用户的名称,密码为相对应的 Windows 密码(如果没有设定密码,请将“密码”字段留空)。
如有必要,可以勾选“在我的钥匙串中记住此密码”,下次可以无需再输入登录信息。
登录成功后,此时访达会将 Windows 共享文件夹挂载为一个宗卷,并弹出一个新的访达窗口,可以把文件拷贝到这里,这些文件也会显示在 Windows 的共享文件夹内。
共享文件夹使用完毕后,直接推出该宗卷即可。
2. 使用远程桌面(推荐)
鉴于我们之前已经解决了联网问题,因此可以暂时用一个“曲线救国”的措施,就是按需使用远程桌面,它可以一并弥补除了 Unity 模式之外的所有不足。
如果你用的是向日葵、TeamViewer、ToDesk 等远程桌面应用,请自行安装;我这里介绍的是 Microsoft Remote Desktop,因为是微软自家的产品,所以对 Windows 的支持很稳定,而且完全免费,还支持以 Retina 分辨率显示。
首先在 Windows 中打开“设置”,在“系统”下找到“远程桌面”,将远程桌面的开关打开。
在虚拟机下,打开命令提示符或 PowerShell、Windows Terminal,输入ipconfig
并回车,找到“IPv4 地址”这一行,将 IPv4 地址记下备用。
然后通过如下的链接,下载最新的 Microsoft Remote Desktop:
下载好的安装文件是 .pkg 格式的安装包,双击打开安装器安装后,运行 Microsoft Remote Desktop。
那么,如果需要让功能键起 F1~F12 的作用,需要按 fn + 功能键。因此,对于执行 Shift + F10 的功能,需要按下 fn + Shift + 第十个功能键。
当然,我们也可以反过来,让这 12 个功能键用于执行标准的 F1~F12,fn 来执行键帽上印的功能。
对于 macOS Ventura,可以打开系统设置,在左侧列表选择“键盘”,在右边点击“键盘快捷键”按钮:
然后找到“功能键”,打开“将 F1、F2 等键用作标准功能键”开关,点击“完成”。
对于 macOS Monterey 及以下,可以打开系统偏好设置,选择“键盘”,然后勾选“将 F1、F2 等键用作标准功能键”。
在设置了这个选项后,就可以让这 12 个功能键触发 F1~F12,但执行调整亮度、音量、播放控制等功能,需要加上 fn。
当然,如果读者的 Mac 是带有触控栏(touch bar)的机型,由于触控栏代替了实体按键,因此标在功能键上的文字或图案会一目了然。
Q7:我是安装了 Insider 版 Windows 11 的用户,在跳过联网这一步,按下 Shift + F10 快捷键没有反应,可我已经参照上一个问题,确定自己并没有按错这个快捷键了。
A:这属于 Windows 11 Insider 某些版本的 bug,与 VMware Fusion 无关。针对此问题,请重新启动虚拟机,等待重新显示 OOBE 的第一步“选择地区”界面,这时候在虚拟机中按下快捷键 Shift + F10,就可以出现命令提示符了,然后照做输命令行回车的步骤即可。
Q8:为何不能通过 Microsoft Remote Desktop 来远程连接虚拟机?
A:首先检查虚拟机是否开机并进入了 Windows 系统桌面(而不是休眠、暂停、关机等状态),然后检查虚拟机与宿主机的网络是否正常,IPv4 地址、用户名与密码是否都填对了,还有虚拟机的远程桌面的开关有没有打开。
如需管理远程桌面连接的用户名和密码,可以通过执行菜单命令 Microsoft Remote Desktop > Preferences...(或按下 Command + 逗号)打开应用的偏好设置,然后选择“User Accounts”选项卡,如下图所示。
单击“+”可新建一个用户记录,单击“-”可删除,当然也可以修改指定用户的用户名、密码(Friendly name 字段建议留空,因为我们用不到,而且填错了也会出问题)。
这里之所以我用了 Administrator,是因为我自己经常用 Windows 内置的管理员用户(Administrator 用户需要通过特殊方式启用,普通用户不建议用 Administrator)
对于无密码的用户,默认情况下可能无法连接,可以通过 Windows 设置里的“帐户”,为当前用户添加密码。
如果希望在无密码的状态下连接,需要修改本地安全策略实现:
①首先打开本地安全策略,可以通过任务栏搜索“本地安全策略”,或通过 Windows 徽标键 + R(Mac 键盘在虚拟机中被映射为 Command + R)激活“运行”窗口,输入secpol.msc
并回车。
②在本地安全策略窗口左侧的树形图窗格,依次展开“本地策略”、“安全选项”,在右侧列表下翻找到并选中“帐户:使用空密码的本地帐户只允许运行控制台登录”。
③双击该安全策略,将其从“已启用”变为“已禁用”,点击“确定”。
④重新连接即可成功。
(老版本的 Windows 11 arm64 可能会遇到下图“Name Resolution Policy”的报错,请选择第二个选项并关闭,因为这是 .NET Framework 的环境变量出现的 bug,并不影响控制台的使用,此问题现已在 22H1 版本修复)
Q9:在为 Windows 虚拟机创建克隆时,为何克隆后的虚拟机需要输入密码?如果之前我没记下来,怎样才能找到这个密码呢?
A:有没有发现,之前在创建虚拟机的时候,我们做了一个关键的步骤——为虚拟机添加 vTPM?
在添加 vTPM 后,组成虚拟机的文件会被完全或部分加密,因此虚拟机受到密码保护。之所以我们创建 Windows 虚拟机后开机不需要输入密码,那是因为我们直接保存到了钥匙串,所以这个步骤不需要做,而克隆后的新虚拟机,其密码对应的钥匙串还没有被 VMware Fusion 关联过,所以在开机前还是需要输一下密码的。
此前的 vTPM 添加步骤中,如果你已经为虚拟机自动生成了密码,即使没有记下来密码也没关系,因为找回它也很容易。
首先打开 macOS 自带的“钥匙串访问”应用,在 iCloud 钥匙串里,搜索“VMware Fusion encryption”。
(如果创建了多个独立的虚拟机,钥匙串会有多条记录,并且其修改日期和虚拟机创建时间、虚拟机密码的修改时间是能对得上号的)
双击该密码条目,点击“显示密码”左侧的复选框:
出现如下的鉴定窗口,请正确输入自己的 macOS 系统密码,并选择“允许”或“始终允许”:
然后就可以看到已经显示的密码了,这个就是当初虚拟机加密的密码,可以用它打开虚拟机了(最后为保证隐私安全,请记得及时退出钥匙串访问)。
这里我把密码打码了
但如果完全忘记了密码,又没有及时地将其保存到钥匙串,想找回密码甚至取回虚拟机内的数据就困难了。
Q10:我是 Intel 机型 Mac 的用户,可以在 Fusion 13 上安装 arm64 版的 Windows 吗?
A:不可以。Intel 机型的 Mac 只支持 x86 或 x64 的系统。
总结
作为首个同时支持 Apple Silicon 与 Intel 平台的 Fusion 正式版本,此次 Fusion 13 的推出具有特别的意义:因为 Fusion 13 发布的安装包属于通用,这意味着无论是 Apple Silicon 还是 Intel 机型的 Mac 用户都可以安装;另外,Fusion 13 在 Apple Silicon 上为 Linux kernel 5.19 带来了 OpenGL 4.3 的图形支持,可将 WDDM 1.2 用于 Windows 虚拟机,支持 vSphere 8 和 ESXi 8,提供了通过本地桌面在远程服务器上创建新虚拟机的功能,并在稳定性上进行了改进,修复了很多 bug。
回望从 WWDC20 苹果官宣 Mac 开始进行生态转型,到现在两年多的时间里,虽然 VMware 大约一年内滞后于友商 Parallels,但可以看得出此次正式推出的 VMware Fusion 体现了开发团队背后过硬的技术实力,尤其是对 USB 设备的支持明显比 Parallels Desktop 要好。
希望 VMware 能够再接再厉,不断完善 Fusion 的用户体验,为 Mac 和 Apple Silicon 的未来添砖加瓦。
顺便鞭笞一下为 Apple Silicon 刚开始出 Developer Beta 版的 VirtualBox,不仅不怎么稳定,而且跟进速度慢多了……(如果读者对 VirtualBox 适配 Apple Silicon 的进展感兴趣,可以戳这)
感谢阅读到这里,
送大家几个密钥:
4C21U-2KK9Q-M8130-4V2QH-CF810
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8
暂无评论