跳转到内容

Windows 11 虚拟机:TPM、Secure Boot 与 VirtIO ​

Windows 11 把 TPM 2.0 和 Secure Boot 从「建议」变成了硬性安装门槛。PVE 能提供这两样东西的虚拟实现,但要在创建虚拟机时就配好——装完再补,代价比 Linux 客户机大得多。

适合谁 ​

你的情况适不适合
想要图形化桌面,且能接受 Windows 授权成本适合
只是要跑某个 Windows-only 的小工具先看看能不能用 Wine 或容器方案,虚拟机开销更大
打算长期不给它任何内存/CPU 限制不建议,见下文资源规划
没有正版许可,想找绕过激活或版权的方法本站不提供,请通过官方渠道获取许可

本文只覆盖虚拟化相关的部分

Windows 系统本身的使用、激活方式和许可选择请以微软官方说明为准,本站不对具体许可价格和条款下结论。

资源规划 ​

项建议起点说明
vCPU2–4Type 选 host,理由见创建第一个虚拟机
内存4 GB 起,日常桌面用 8 GB+不建议开气球驱动(Minimum memory 留空),Windows 对内存回收的反应不好
系统盘64 GB 起Windows 更新会持续占用空间,别贴着最小值分配
显示默认 Default 即可需要流畅图形加速再考虑 SPICE、RDP 与 noVNC 的取舍

创建与安装 ​

满足三个硬性前提 ​

创建向导里,System 页要做三处不同于默认的选择:

字段选什么为什么
Machineq35Windows 11 的虚拟主板前提,装完不要再改
BIOSOVMF (UEFI)Secure Boot 依赖 UEFI,SeaBIOS 不支持
Add EFI Disk → Pre-Enroll keys勾上预置微软和发行版的 Secure Boot 证书,否则签名内核/引导程序会被拒绝
Add TPM → Versionv2.0Windows 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 和来路不明的系统镜像是同等风险。

安装过程 ​

  1. 启动虚拟机,进安装程序,到「你想将 Windows 安装在哪里」这一步会看不到任何磁盘。
  2. 点加载驱动程序,浏览到 virtio-win 光驱的 vioscsi\w11\amd64\ 目录,加载后磁盘出现。
  3. 正常走完安装流程。

第一次启动之后 ​

装完系统,打开 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 内部的信任链立刻更新完毕。

检查结果 ​

逐项确认:

  1. 虚拟机 → Summary 能看到 IP(guest agent 正常)。
  2. 虚拟机 → Hardware:Machine 是 q35,BIOS 是 OVMF,有 EFI Disk 和 TPM State 两项。
  3. Windows 内 设备管理器 没有带黄色感叹号的未知设备。
  4. Windows 内 tpm.msc 能看到「已就绪」的 TPM。首次添加 TPM 后如果显示不到,从 Windows 内部重启一次(而不是在 PVE 控制台点 Reboot)通常就能识别。
  5. 需要 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 反复重新激活、或者某些角色报错。 见快照、克隆与模板里关于克隆后要改的机器标识部分;许可证具体处理方式以微软官方说明为准。

参考资料 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。