You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

将带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命令转换,基本格式:
    qemu-img convert -f vmdk -O qcow2 /path/to/your/vm-disk.vmdk /path/to/new/disk.qcow2
    
    要是想让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和加密需求:

  1. 打开Virt-Manager,点“新建虚拟机”,选“导入现有磁盘镜像”,然后选中刚才转好的disk.qcow2
  2. 操作系统类型选“Windows”,版本选“Windows 11”,Virt-Manager会自动匹配基础配置。
  3. CPU、内存的配置先和VMware里的保持一致,后续可以根据实际使用情况调整。
  4. 关键配置环节(一定要注意)
    • 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,一定要提前备好恢复密钥!
  5. 完成创建后启动虚拟机,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

火山引擎 最新活动