将带TPM 2.0、UEFI启动与加密的VMware Windows 11虚拟机迁移至KVM/Qemu的方法与注意事项咨询
将带TPM 2.0、UEFI启动与加密的VMware Windows 11虚拟机迁移至KVM/Qemu的方法与注意事项咨询
当然可以把这个VMware的Windows 11虚拟机转换成qcow2格式,并用Virt-Manager在KVM/Qemu上运行——我之前帮朋友处理过几乎一模一样的场景,下面给你拆解具体步骤、注意事项和性能相关的问题:
一、转换虚拟机磁盘到qcow2格式
首先得把VMware的vmdk磁盘转成KVM支持的qcow2格式,步骤很直接:
- 先完全关闭VMware里的Windows 11虚拟机,别用休眠或挂起,不然磁盘数据可能不一致,转换后容易出问题。
- 找到你的VMware虚拟机磁盘文件,一般是
.vmdk格式,存储在你当初设置的VMware虚拟机目录里。如果是拆分的多文件vmdk(比如一堆*-s001.vmdk、*-s002.vmdk),选那个带-flat后缀的文件作为源,或者直接选主描述文件(不带数字后缀的.vmdk),qemu-img会自动识别。 - 用
qemu-img命令转换,基本格式:
要是想让qcow2磁盘更省空间,可以加qemu-img convert -f vmdk -O qcow2 /path/to/your/vm-disk.vmdk /path/to/new/disk.qcow2-c参数启用压缩,不过转换时间会变长,命令改成:qemu-img convert -c -f vmdk -O qcow2 /path/to/your/vm-disk.vmdk /path/to/new/disk.qcow2
二、在Virt-Manager中配置新的KVM虚拟机
转换好磁盘后,就可以在Virt-Manager里搭建对应的虚拟机了,重点要匹配你的TPM、UEFI和加密需求:
- 打开Virt-Manager,点“新建虚拟机”,选“导入现有磁盘镜像”,然后选中刚才转好的
disk.qcow2。 - 操作系统类型选“Windows”,版本选“Windows 11”,Virt-Manager会自动匹配基础配置。
- CPU、内存的配置先和VMware里的保持一致,后续可以根据实际使用情况调整。
- 关键配置环节(一定要注意):
- UEFI启动:在“配置前自定义”的步骤里,找到“固件”选项,选择
OVMF_CODE.fd(这是KVM的UEFI固件,NixOS的LTS 6.6内核应该已经预装了,如果没有,直接用Nix包管理装edk2-ovmf就行)。 - TPM 2.0:同样在自定义配置里,点击“添加硬件”,选“TPM”,版本指定2.0,后端选
swtpm(软件TPM,NixOS里装swtpm包就能用);如果你的主机有硬件TPM,也可以选硬件后端,但软件TPM对普通场景完全够用,不用折腾硬件。 - 磁盘加密:如果你的VMware磁盘本身是加密的,转换后的qcow2可以在Virt-Manager里开启加密:在磁盘配置的“加密”选项里设置密码,用的是libvirt的加密机制,和Windows的BitLocker不冲突——但如果你的Windows开了BitLocker,一定要提前备好恢复密钥!
- UEFI启动:在“配置前自定义”的步骤里,找到“固件”选项,选择
- 完成创建后启动虚拟机,Windows大概率会自动识别KVM的硬件,但如果有驱动没装上,手动装
virtio-win驱动就行(NixOS里可以通过包管理获取这个驱动的ISO,挂载到虚拟机里安装)。
三、必须注意的坑点
- BitLocker恢复触发:因为从VMware换到KVM,硬件环境(磁盘控制器、主板信息等)变了,第一次启动Windows 11几乎肯定会触发BitLocker恢复模式,没恢复密钥的话直接进不了系统,所以一定要提前把BitLocker恢复密钥存在安全的地方。
- 卸载VMware工具:启动系统后第一件事就是卸载VMware Tools,然后装VirtIO驱动和
virtio-win-guest-tools,不然会有卡顿、硬件不兼容的问题。 - TPM状态存储:用
swtpm的话,Virt-Manager会自动在/var/lib/libvirt/swtpm目录下存TPM的状态文件,别随便删这个目录,不然TPM数据丢了,Windows 11可能会锁系统。 - UEFI变量备份:KVM的UEFI变量存在
/var/lib/libvirt/qemu/nvram/下的单独文件里,要是这个文件丢了,虚拟机可能无法正常UEFI启动,建议偶尔备份一下。
四、性能会不会下降?
放心,迁移后不会有明显的性能降级,甚至在磁盘I/O、网络这些场景下,KVM的表现可能比VMware更好——毕竟KVM是Linux内核原生的虚拟化技术,和NixOS的兼容性比VMware更贴合。
要是想进一步优化性能,可以做这几点:
- 确保磁盘用的是
virtio-blk驱动(Virt-Manager默认会选,但要确认Windows里已经装了对应的驱动),别用老旧的IDE驱动。 - 网络用
virtio-net驱动,比默认的e1000e性能高不少。 - CPU配置里启用“拷贝主机CPU配置”,让虚拟机直接继承主机的CPU特性,提升运算性能。
备注:内容来源于stack exchange,提问作者shmu




