外观
Windows 11 虚拟机:TPM、Secure Boot 与 VirtIO
Windows 11 把 TPM 2.0 和 Secure Boot 从「建议」变成了硬性安装门槛。PVE 能提供这两样东西的虚拟实现,但要在创建虚拟机时就配好——装完再补,代价比 Linux 客户机大得多。
适合谁
| 你的情况 | 适不适合 |
|---|---|
| 想要图形化桌面,且能接受 Windows 授权成本 | 适合 |
| 只是要跑某个 Windows-only 的小工具 | 先看看能不能用 Wine 或容器方案,虚拟机开销更大 |
| 打算长期不给它任何内存/CPU 限制 | 不建议,见下文资源规划 |
| 没有正版许可,想找绕过激活或版权的方法 | 本站不提供,请通过官方渠道获取许可 |
本文只覆盖虚拟化相关的部分
Windows 系统本身的使用、激活方式和许可选择请以微软官方说明为准,本站不对具体许可价格和条款下结论。
资源规划
| 项 | 建议起点 | 说明 |
|---|---|---|
| vCPU | 2–4 | Type 选 host,理由见创建第一个虚拟机 |
| 内存 | 4 GB 起,日常桌面用 8 GB+ | 不建议开气球驱动(Minimum memory 留空),Windows 对内存回收的反应不好 |
| 系统盘 | 64 GB 起 | Windows 更新会持续占用空间,别贴着最小值分配 |
| 显示 | 默认 Default 即可 | 需要流畅图形加速再考虑 SPICE、RDP 与 noVNC 的取舍 |
创建与安装
满足三个硬性前提
创建向导里,System 页要做三处不同于默认的选择:
| 字段 | 选什么 | 为什么 |
|---|---|---|
| Machine | q35 | Windows 11 的虚拟主板前提,装完不要再改 |
| BIOS | OVMF (UEFI) | Secure Boot 依赖 UEFI,SeaBIOS 不支持 |
| Add EFI Disk → Pre-Enroll keys | 勾上 | 预置微软和发行版的 Secure Boot 证书,否则签名内核/引导程序会被拒绝 |
| Add TPM → Version | v2.0 | Windows 11 安装程序会检测,检测不到直接拒绝安装 |
q35、OVMF、TPM 缺一不可
三者是配套的:q35 提供 Windows 11 期望的现代主板拓扑,OVMF 提供 UEFI 固件,TPM v2.0 满足安装程序的硬件检测。少配一样,安装程序大概率在检测阶段直接报错退出。完整的字段解释见创建第一个虚拟机。
其余字段(VirtIO SCSI single、SCSI 磁盘、勾 Discard/IO thread、VirtIO 网卡)按创建第一个虚拟机的通用建议来即可。
准备 virtio-win 驱动 ISO
Windows 安装程序不认识 VirtIO 磁盘,需要在装系统时手动加载驱动。从 Red Hat 维护的官方发布点获取镜像(域名 fedorapeople.org,搜索 "virtio-win iso download" 能确认当前地址),选择标注为 stable 的版本用于日常使用。
上传到 PVE 的 ISO 存储后,给虚拟机挂两个光驱:Windows 安装 ISO 一个,virtio-win.iso 一个。详细的加载驱动步骤(vioscsi\<版本>\amd64\)见 VirtIO 驱动与 QEMU Guest Agent。
只从官方渠道下载驱动
驱动运行在内核态,来路不明的 ISO 和来路不明的系统镜像是同等风险。
安装过程
- 启动虚拟机,进安装程序,到「你想将 Windows 安装在哪里」这一步会看不到任何磁盘。
- 点加载驱动程序,浏览到 virtio-win 光驱的
vioscsi\w11\amd64\目录,加载后磁盘出现。 - 正常走完安装流程。
第一次启动之后
装完系统,打开 virtio-win 光驱,运行里面的 virtio-win-guest-tools.exe,它会一次性装好网卡驱动、气球驱动和 QEMU Guest Agent。重启后回 PVE 的 Summary 页应该能看到 IP。原理见 VirtIO 驱动与 QEMU Guest Agent。
Secure Boot 证书:新装的机器一般不用管,老机器要补
微软 2011 年签发的 Secure Boot 证书已经过了有效期,新签名的引导程序和更新依赖 2023 年签发的新证书(Windows UEFI CA 2023 / Microsoft KEK CA 2023)。
- PVE 9 上新建的虚拟机:配套的 EFI 固件已经默认包含新证书,通常不用手动处理。
- PVE 8 时代建的老虚拟机、或者 EFI 磁盘是很久以前创建的:PVE 9.2 起,虚拟机启动时如果检测到 EFI 磁盘缺少新证书会给出警告,可以在 虚拟机 → Hardware → EFI Disk → Disk Action → Enroll Updated Certificates(或宿主机执行
qm enroll-efi-keys <vmid>,虚拟机必须处于关机状态)补上。
给已经开了 BitLocker 的虚拟机补证书前先备份
补证书会更新 EFI 变量。如果这台虚拟机启用了 BitLocker,EFI 变量变化可能触发 BitLocker 判定为「环境变化」,开机时要求输入恢复密钥——如果找不到恢复密钥,数据将无法访问。
影响范围:仅影响启用了 BitLocker 或依赖 Secure Boot 测量值的虚拟机;未加密的系统盘不受影响。 前置条件:操作前确认已经在 Windows 里暂停了 BitLocker 保护(PowerShell:对每个加密盘执行暂停操作),并且手头有 BitLocker 恢复密钥。 回退方式:操作前在 PVE 里打一个快照;出问题时回滚快照即可恢复到补证书之前的状态。没有把握时,先在一台测试虚拟机上走一遍流程。
Linux 客户机不受影响——宿主机这一步的证书更新对 Linux 客户机通常就够用,不需要在客户机内部再操作。
Windows 侧还有一个后续步骤:证书更新的第二阶段由 Windows Update 或系统内的安全启动更新任务完成,只在宿主机上操作不代表 Windows 内部的信任链立刻更新完毕。
检查结果
逐项确认:
虚拟机 → Summary能看到 IP(guest agent 正常)。虚拟机 → Hardware:Machine 是q35,BIOS 是OVMF,有 EFI Disk 和 TPM State 两项。- Windows 内
设备管理器没有带黄色感叹号的未知设备。 - Windows 内
tpm.msc能看到「已就绪」的 TPM。首次添加 TPM 后如果显示不到,从 Windows 内部重启一次(而不是在 PVE 控制台点 Reboot)通常就能识别。 - 需要 Secure Boot 的场景:
msinfo32里「安全启动状态」显示「开启」。
备份与维护
区分三类数据:系统盘(OS 和已安装软件)、EFI/TPM 状态(启动配置和 Secure Boot 信任链,随虚拟机配置走)、用户数据(文档、应用数据)。vzdump 会把系统盘、EFI 磁盘和 TPM 状态一起备份,但只是备份,不代表你不需要单独关心用户数据的保留策略。
PVE 9.1 起 vTPM 可以正常打快照
以前 TPM 状态默认以 raw 格式存储,只有存储本身支持快照才能对启用了 vTPM 的虚拟机打快照,NFS/CIFS 这类存储上基本用不了。PVE 9.1 起 TPM 状态可以存成 qcow2,9.2 进一步支持了带 vTPM 虚拟机的在线快照(最上层快照在虚拟机运行时不能删除)。新建虚拟机时留意 TPM 存储的格式选项,老虚拟机需不需要转换,以你的版本界面为准。
大版本更新前打快照
Windows 的月度更新一般风险不大,但功能更新(例如 22H2 → 24H2 这类大版本跳跃)偶尔会导致驱动或启动问题。更新前打一个不含内存的快照,确认更新正常后再删除,回滚方法见快照、克隆与模板。
常见问题
安装程序提示「此电脑不满足安装 Windows 11 的最低系统要求」。 检查 TPM 版本是不是 v2.0(不是 v1.2)、BIOS 是不是 OVMF、CPU Type 是否为 host。三者任一不满足都会导致这条报错。
开了 Secure Boot 之后虚拟机起不来。 多半是 EFI 磁盘的 Pre-Enroll keys 没勾,或者这是一台老虚拟机的 2 MB 规格 EFI 磁盘(不支持新证书体系)。需要删除重建 EFI 磁盘并重新勾选 Pre-Enroll keys——注意这会清空 OVMF 菜单里的自定义配置。
刚装完 guest agent,鼠标指针在 Console 里对不上。 装好 QEMU Guest Agent 后这个问题通常会消失,属于已知的过渡现象。
克隆或恢复之后 Windows 反复重新激活、或者某些角色报错。 见快照、克隆与模板里关于克隆后要改的机器标识部分;许可证具体处理方式以微软官方说明为准。
参考资料
- 创建第一个虚拟机
- VirtIO 驱动与 QEMU Guest Agent
- 快照、克隆与模板
- Proxmox VE Wiki:"Windows 11 guest best practices"、"Windows VirtIO Drivers"(发布说明与操作细节以此为准)