下面这份文档是根据实际测试整理而成,不是理论分析,供参考。后续如果升级到 QEMU 8/9/10 或更新的 virtio-win,也可以继续在此基础上补充。
Windows 11 ARM64 在 FNOS(libvirt/QEMU)上的 VirtIO 驱动部署与兼容性测试
文档版本: v1.0 测试日期: 2026-06 作者: X-Real
一、测试环境
宿主机
| 项目 |
参数 |
| 操作系统 |
FNOS |
| 虚拟化 |
libvirt |
| Hypervisor |
QEMU |
| QEMU版本 |
7.2.19 (Debian 1:7.2+dfsg-7+deb12u16) |
| Machine Type |
virt-7.2 |
| CPU架构 |
ARM64(aarch64) |
虚拟机 XML:
<type arch='aarch64' machine='virt-7.2'>hvm</type>
二、Guest 操作系统
| 项目 |
参数 |
| 操作系统 |
Windows 11 ARM64 |
| 版本 |
25H2 |
| 全新安装 |
是 |
三、VirtIO 配置
虚拟机采用 VirtIO PCI 设备。
包括:
VirtIO SCSI
VirtIO Network
VirtIO Serial
VirtIO GPU
VirtIO Balloon
libvirt XML:
<controller type='scsi' model='virtio-scsi'/>
<controller type='virtio-serial'/>
<interface>
<model type='virtio'/>
</interface>
<video>
<model type='virtio'/>
</video>
<memballoon model='virtio'/>
四、安装驱动
使用:
virtio-win-0.1.266.iso
分别手动安装。
1、VirtIO SCSI
目录:
vioscsi
状态:
正常
系统磁盘正常识别。
2、NetKVM
目录:
NetKVM
状态:
正常
网络正常。
3、Balloon
目录:
Balloon
状态:
正常
4、VirtIO Serial
目录:
vioserial
状态:
正常
5、VirtIO GPU
安装:
viogpudo
设备管理器显示:
Red Hat VirtIO GPU DOD Controller
说明:
Windows 已使用 VirtIO GPU Display-Only Driver。
五、QEMU Guest Agent
libvirt XML:
<controller type='virtio-serial'/>
Guest Channel:
<channel type='unix'>
<target type='virtio'
name='org.qemu.guest_agent.0'/>
</channel>
Windows 服务:
QEMU Guest Agent
运行状态:
Running
宿主机验证:
virsh qemu-agent-command VMNAME '{"execute":"guest-info"}'
返回:
{
"return": {
"version":"108.0.2"
}
}
说明:
Guest Agent 工作正常。
支持:
- guest-get-osinfo
- guest-network-get-interfaces
- guest-get-disks
- guest-get-fsinfo
- guest-fstrim
- guest-exec
- guest-shutdown
- guest-sync
- guest-set-time
等全部常用功能。
六、Guest Tools
测试:
virtio-win-guest-tools
结果:
安装失败
错误:
There is a problem with this Windows Installer package.
A program run as part of the setup did not finish as expected.
分析:
由于:
- VirtIO Driver 已全部正常安装;
- Guest Agent 已正常运行;
- VirtIO Serial 工作正常;
因此判断:
Guest Tools 安装失败更可能是 ARM64 平台 MSI 安装逻辑兼容性问题,而不是驱动或虚拟机配置问题。
建议:
ARM64 环境采用:
手动安装各驱动
+
单独安装 QEMU Guest Agent
无需安装整个 Guest Tools。
七、ACPI\LNRO0005 未知设备
系统存在:
32 个 Unknown Device
Hardware ID:
ACPI\LNRO0005
资源:
Memory Range
0x0A000000-0x0A0001FF
0x0A000200-0x0A0003FF
0x0A000400-0x0A0005FF
...
特点:
0x200 Bytes
地址:
连续递增 0x200
数量:
32
全部挂载:
ACPI ARM64-based PC
原因分析
QEMU ARM virt Machine 默认创建:
32 个 VirtIO MMIO Transport
Windows ARM64 能够枚举:
ACPI\LNRO0005
但是:
Windows 目前没有 VirtIO MMIO Bus Driver。
因此:
Unknown Device ×32
Linux:
发现 MMIO Transport
↓
无 Backend
↓
忽略
Windows:
发现 ACPI Device
↓
没有 Driver
↓
Unknown Device
是否影响使用
不会。
因为真正工作的都是:
VirtIO PCI
包括:
- SCSI
- Network
- GPU
- Balloon
- Serial
均正常。
八、兼容性测试结果
| 功能 |
状态 |
说明 |
| Windows 安装 |
✅ |
正常 |
| VirtIO SCSI |
✅ |
正常 |
| NetKVM |
✅ |
正常 |
| Balloon |
✅ |
正常 |
| VirtIO Serial |
✅ |
正常 |
| VirtIO GPU DOD |
✅ |
正常 |
| Guest Agent |
✅ |
正常 |
| Guest Agent 通讯 |
✅ |
正常 |
| Guest Tools |
❌ |
MSI 安装失败 |
| ACPI\LNRO0005 |
⚠ |
32 个未知设备 |
| 系统运行 |
✅ |
不受影响 |
九、结论
本测试环境:
FNOS
+
libvirt
+
QEMU 7.2.19
+
Windows 11 ARM64 25H2
能够稳定运行。
推荐部署方式:
Windows ARM64
↓
手动安装:
vioscsi
NetKVM
Balloon
vioserial
viogpudo
↓
安装
QEMU Guest Agent
↓
完成
无需安装:
virtio-win-guest-tools
十、后续优化建议
- 升级 QEMU(8.x/9.x/10.x)
- 验证是否支持关闭默认创建的 VirtIO MMIO Transport,避免
ACPI\LNRO0005 未知设备。
- 更新 virtio-win
- 测试更新版本是否改善 ARM64 下
virtio-win-guest-tools 的安装兼容性。
- 继续验证功能
- VirtIO GPU 多显示器支持;
- SPICE Clipboard(
qemu-vdagent);
- VirtIO GPU 在 Windows ARM64 上的 WDDM/图形加速支持;
- 热插拔、内存气球(Balloon)和电源管理等高级特性。
这份文档可以作为当前环境的第一版基线文档。如果后续升级到 QEMU 8/9/10、FNOS 新版本,或测试更新的 virtio-win,建议直接在此基础上新增章节进行对比,这样可以清晰地追踪 Windows ARM64 虚拟化兼容性的演进过程。