如何在 Qemu 中安装 Windows 10 ARM64

来自BetaWorld 百科
TNEPlus讨论 | 贡献2021年8月13日 (五) 23:32的版本 (Convert to Template)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

2021.05.05 更新:Qemu、固件更新后,经作者在自己的电脑上测试,此方法已不可用。尚不清楚哪个老版 Qemu、固件的组合能够继续使用此方法。


本教程所述的操作是在 Windows 10 下进行的。若要在其他操作系统下安装,则一些步骤可能会有所不同。

  • 1. 下载 QEMU for Windows

此页面下载与您操作系统架构匹配的最新版 Qemu for Windows 并安装。安装时推荐安装到非系统目录,以避开可能存在的权限问题。

  • 2. 下载 UEFI 固件

此页面下载最新的,文件名开头为 edk2.git-aarch64 的文件,并用 7-Zip 等工具多次解压,直至提取出 QEMU_EFI.fd、vars-template-pflash.raw 这两个文件,将它们放入 Qemu 安装目录内。

  • 3. 下载 VirtIO ARM64 驱动光盘

点此下载最新的 VirtIO ARM64 驱动光盘,将其改名为 driver.iso 并复制到 Qemu 安装目录内。

  • 4. 下载 Windows 10 ARM64 安装光盘

可以从此网站或其他类似网站下载 UUP 及生成 Windows 10 ARM64 的安装镜像。此过程不详细叙述。

  • 5. 创建虚拟磁盘映像

打开命令提示符并定位到 Qemu 的安装目录,输入以下命令创建一名为 disk.qcow2,容量最大为 40GB 的虚拟磁盘映像:

qemu-img create -f qcow2 disk.qcow2 40G
  • 6. 启动 Qemu

在 Qemu 安装目录内新建一文本文档,输入以下命令:

qemu-system-aarch64.exe -M virt,virtualization=true -cpu cortex-a57 -smp 4 -m 4096 ^
-device qemu-xhci -device usb-kbd -device usb-tablet ^
-drive file=disk.qcow2,if=virtio ^
-nic user,model=virtio ^
-drive file=win.iso,media=cdrom,if=none,id=cdrom -device usb-storage,drive=cdrom ^
-bios QEMU_EFI.fd -device ramfb ^
-drive file=vars-template-pflash.raw,if=pflash,index=1

输入后保存文档,修改其扩展名为 .bat 并双击运行。 注意,可根据您计算机的实际性能修改以上命令,调整内存大小、CPU 型号、CPU 线程数等值。

  • 7. 调整分辨率(本条为可选步骤)

Qemu 窗口出现后立即按 F2 以进入 UEFI 设置主界面,用方向键和回车键选择进入 Device Manager → OVMF Platform Configuration,将 Change Preferred 一项的值改为您想要的分辨率(最大为 1024 x 768),然后按 F10,在弹出询问是否保存的窗口时按 Y,再连按两次 ESC 退出到设置主界面,选择 Reset 重启。

  • 8. 安装系统

Windows 10 ARM64 的整个安装过程和其它普通架构的 Windows 10 并无不同。唯一需要注意的是,在进行到选择安装磁盘一步时,安装程序会提示需要加载磁盘控制器驱动程序,此时您应在对话框中定位到 VirtIO 驱动光盘中的 \viostor\w10\ARM64 文件夹,选择其中的驱动并加载。安装过程会持续很长时间,需要耐心等待。

  • 9. 安装网络驱动程序(本条为可选步骤)

由于网络驱动程序的签名存在问题,安装系统后,以管理员身份运行命令提示符,运行命令:

bcdedit /set testsigning on

运行后重启系统,再安装 VirtIO 驱动光盘中 \NetKVM\w10\ARM64 文件夹下的网络驱动程序。

  • 10. 关闭部分系统功能以略微提升性能

安装完成后,可运行以下命令关闭打印服务,否则其会持续占用 CPU 使之使用率为 100%:

sc stop "Spooler"
sc config "Spooler" start= disabled

此外,还可运行以下命令关闭一些系统服务:

sc stop "WSearch"
sc config "WSearch" start= disabled

schtasks /Delete /TN "\Microsoft\Windows\Defrag\ScheduledDefrag" /F

wmic computersystem set AutomaticManagedPagefile=FALSE
wmic pagefileset delete

powercfg -h off