在 M1 Mac 中安装 x86 的 Windows

今天在我的 M1 MacBook Air 上运行了 x86 版本的 Windows 7。在这里做个简单的记录。

安装步骤

  1. 下载并安装 UTM

    首先,访问 UTM 官方网站 下载 UTM 应用。按照提示安装到你的 Mac 上。

  2. 准备好一个 Windows x86 ISO 文件

    需要注意的是,不是所有的 x86 都能在 UTM 上运行。

    我就尝试了好几个 win 10/7 的镜像,都是可以安装,但是到最后运行的时候都会报错。

    你需要在官网上确认,他们测试过必然能跑的镜像:https://mac.getutm.app/gallery/

    image-20230516午後80223847

    进入 Windows 7 的内容:

    可以找到 Requirements 部分的内容,写的非常清楚,需要的是这样的一个镜像:

    en_windows_7_ultimate_with_sp1_x64_dvd_u_677332.iso

    对应的 hash 值是 36ae90defbad9d9539e649b193ae573b77a71c83.

    image-20230516午後80308966

    在很多地方都能下载到,例如 我在这里下载的:en_windows_7_ultimate_with_sp1_x64_dvd_u_677332

  3. 导入镜像

    image-20230516午後80624660

    选择第二个“emulate”:

    image-20230516午後80647255

    一路往下操作就好:

    Screenshot 1

  4. 安装完成后就可以简单使用了:

    Screenshot 6

  5. 虽然官网上有与宿主机 Mac 共享文件夹的功能,安装这个软件即可: SPICE guest tools

    Screenshot 7

    但我始终没能成功。

    我最后的解决办法是在宿主机 Mac 上用 Python 起临时服务器解决的:

    python3 -m http.server 9000
    

    image-20230516午後81129229

    在虚拟机内访问 Mac 的 ip:9000 即可:

    Screenshot 8

遇到的问题

  1. 安装某些软件提示 NSIS ErrorError launching installer:

    image-20230516午後81358552

    一般是下载网上的软件,保存的路径上有中文导致的。因为系统是纯英文的,对中文支持不太好。

    简单把文件挪到桌面就可以跳过这个问题了。

  2. 无法安装 chrome 和 edge。

    换过不下 10 个版本的离线版 chrome 和 edge,都提示有问题。

    这时候还是得靠 360 极速浏览器。

    但要注意的是,还是挺耗资源的。我看系统监控里的 cpu 常常 100%。

  3. 中文语言包

    除了装 win7,我还装了 xp。但是 xp 的中文支持不行。

    Screenshot 10

    我单独下了个语言包:http://download.microsoft.com/download/WindowsXPEmbedded/Update/2002/NT5XP/EN-US/LANGCHS.exe

    但是装好以后就启动不了的,也就不折腾了。所以有需要的同学注意一下。

总结

UTM 是一个基于 QEMU 的虚拟机,同时也具备模拟器的功能。虚拟化和模拟的主要区别在于它们处理硬件和软件的方式。

虚拟化是在物理硬件上创建虚拟硬件的过程,然后在这些虚拟硬件上运行操作系统和应用程序。虚拟机可以运行与宿主机不同的操作系统。例如,在一台运行 macOS 的 Mac 上,你可以使用虚拟化软件运行 Windows 或 Linux。

模拟器则是用来模拟不同的硬件平台,它可以在一种硬件架构上模拟另一种硬件架构。例如,你可以在一台 ARM 架构的 Mac(如 M1 Mac)上使用模拟器运行 x86 架构的 Windows。

因此,我们在 M1 Mac 上使用 UTM 运行 x86 的 Windows,UTM 需要通过模拟来实现这种硬件架构的转换。这个过程需要大量的计算资源,因此会感觉 Windows 比较卡,尤其是在运行 chrome 等这种占用内存很大的软件。我目前虚拟机里的 CPU常常会飙到 100%。

虚拟化和模拟都有各自的优点和缺点。虚拟化在性能上比模拟更优秀,但需要与宿主机相同的硬件架构。模拟则可以在不同的硬件架构之间进行转换,但会牺牲一些性能。

目前 UTM 也可以在 iOS 上运行。改天我再记录相关的操作。

https://docs.getutm.app/guides/windows/#downloads

https://github.com/aria2/aria2/releases/tag/release-1.36.0

参考资料


在 Mac/Win/Linux 上查询文件的 MD5 值 linux 查看nginx 启动路径