Arch Linux: Using Windows as QEMU Guest

 21st August 2020 at 3:06pm

使用 QEMU 搭载 KVM,在 Arch Linux 宿主机上运行 Windows 操作系统。

QEMU + KVM 在性能上比 VirtualBox / VMware 好得多。

文档主要在 Arch Wiki:

先按这两个文档配置好 QEMU 及 KVM。装好 virt-manager(Virtual Machine Manager)。

这里 下载 Windows 安装包,用 ISO 镜像。

通过 virt-manager 新建一个虚拟机:

  • 将 ISO 文件作为光驱设备
  • 添加一个 SATA 类型的硬盘作为磁盘
  • 其他选项使用默认的即可

按正常流程安装好 Windows。这个过程可能会非常慢,SATA 类型的磁盘非常慢,后面会优化。

安装过程中,先在 这里 下好 Virtio 的 Windows 驱动;在页面里找到 stable virtio-win ISO 字样的文件,下载下来。然后也作为一个光驱设备加载进虚拟机中。这个光盘中的文件是 Windows 作为 QEMU guest 下的各种驱动非常非常必要

Windows 安装好后,在 Windows 中打开 virtio-win 的光驱,找到根目录下的安装程序安装驱动。

装好后,开始做一些优化。

磁盘 I/O 速度优化

磁盘的 bus type 为 VirtIO 时性能最佳。需要 Windows 中装 virtio-scsi 驱动配置。这个驱动在 virtio-win 那一步已经安装了,但是需要绕下路才能启用,不然开机时会蓝屏。

先在 virt-manager 中为虚拟机新加一个 VirtIO 类型的磁盘,容量随意。然后仍然使用之前的 SATA 盘开机,观察「磁盘管理」程序中新磁盘是否被正常识别。如果被正常识别说明驱动安装 OK,如果没有,则去「设备管理器」中选择该磁盘,安装驱动程序,从 virtio-win ISO 中搜索驱动。

然后可以关机,将系统盘从 SATA 改为 VirtIO,再开机观察是否正常。如果正常,就把第二磁盘去掉。

显示效果优化

显示设备默认用的 QXL,已经是最好的。如果你想支持 4K 分辨率,在 virt-manager 的 Preference 中解锁 XML 编辑,然后在虚拟机的 Video QXL 中的 XML 中,将 vgamem 的值调到 65535。

重启虚拟机后,即可以上 4K 分辨率。

Windows guest 与 Linux host 同步文件

Samba 性能太差。用 WinSCP 的目录监听同步功能。但可能只能 Windows => Linux 单向同步。

Windows 中使用翻墙服务

直接通过网络访问 Linux host 中的翻墙服务。