虚拟化驱动很重要,否则会报错
VirtIO虚拟化驱动下载地址:
2012R2:
https://windows-1251783334.cos.ap-shanghai.myzijiebao.com/Win8.1_Win2012R2.zip
2016-2022、win10、win11:
https://windows-1251783334.cos.ap-shanghai.myzijiebao.com/Win10_2016_2019.zip
导入镜像前通过winpe(http://www.winbaicai.com/ 、https://www.laomaotao.net/)用dism命令提前集成好虚拟化驱动,这样强制导入后就不用再修驱动了
排除驱动问题后,得注意下UEFI GPT改造BIOS MBR
形形色色的系统盘分区
UEFI GPT不是腾讯云支持的BIOS MBR,上云会报No bootable device。上云前需要在本地改造。
本地机器先用pnputil命令安装虚拟化驱动,然后使用p2v/v2v软件starwind将本地系统转成.vmdk,可参考https://cloud.tencent.com/developer/article/1843176
经过我多次验证,UEFI GPT的原镜像,直接进系统安装驱动是不行的,必须是在winpe里离线用dism命令安装驱动
UEFI GPT的即便在winpe里搞成BIOS MBR了,如果没在winpe里顺带用dism处理虚拟化驱动,重启是会遇到INACCESSIBLE_BOOT_DEVICE的问题
一、新建UEFI虚机验证原系统在虚拟化中正常
使用VMware Workstation新建虚机注意选UEFI,磁盘选择转成的Windows.vmdk
本地p2v导出的.vmdk可以正常启动虚机,说明系统引导项和系统文件正常。
二、新建BIOS虚拟机,磁盘选择转成的Windows.vmdk
建好BIOS虚机后,挂winpe.iso(大白菜http://www.winbaicai.com/ 、老毛桃https://www.laomaotao.net/ 等安装后可以生成.iso,这个需要自己搞一下)从winpe启动进入后
本地镜像修复——GPT转MBR
1 检查磁盘分区形式和引导项
2 删除ESP和MSR分区
借助Win PE进行格式转换。转换过程中需要用到DiskGenius和引导项修复工具。
打开DG,删除掉ESP和MSR。
删除完分区,需要“保存更改”
3 分配空闲分区给系统盘
将释放的分区归还给C盘
4 转换分区表类型为MBR格式
选中磁盘并右击,选择“转换分区表类型为MBR格式”
5 激活引导分区
激活当前分区
确保分区已经是活动分区,通过颜色就可以看出,红色代表分区为活动分区。
点击“保存更改”,确保分区调整生效
6 生成引导项
生成Boot可引导项,我这里点击“引导修复”工具,点击“开始修复”即可自动完成修复
修复完成之后,打开系统盘,可以看到系统盘下面生成了一个Boot文件夹和Bootmgr、BOOTNXT文件
7 用dism命令集成下虚拟化驱动
以Win10_Win11_2016_2019_2022为例(NT10.0的驱动一样)
单个驱动安装示例:选对盘符,选对路径,原系统的Windows目录是哪个盘符就写哪个盘符
Dism /Add-Driver /Image:"C:" /Driver:"C:新建文件夹VirtIO_Win_58007VioStorWin10_2016_2019amd64viostor.inf" /ForceUnsigned
Dism /Add-Driver /Image:"C:" /Driver:"C:新建文件夹VirtIO_Win_58007NetKVMWin10_2016_2019amd64netkvm.inf" /ForceUnsigned
遍历安装示例:路径到系统分支的顶层目录即可(不建议遍历安装,这里只做了解,驱动最好精确匹配)
Dism /Add-Driver /Image:"C:" /Driver:"C:新建文件夹VirtIO_Win_58007VioStorWin10_2016_2019" /recurse /ForceUnsigned
Dism /Add-Driver /Image:"C:" /Driver:"C:新建文件夹VirtIO_Win_58007NetKVMWin10_2016_2019" /recurse /ForceUnsigned
8 退出PE重启机器看能否进入系统、能的话看各业务软件是否正常,正常的话,再用pnputil搞一遍驱动,参考命令:
pnputil -i -a netkvm.inf的绝对路径
pnputil -i -a viostor.inf的绝对路径
提醒下,原系统的密码自己记好
9 以上OK了的话,上传.vmdk到腾讯云COS,导入自定义镜像即可使用
系统盘大小不超过500G,镜像实际大小不超过50G
qemu-img命令需要安装这个软件 https://qemu.weilnetz.de/w64/
一般来说,系统盘不超过500G、.vmdk小于50G的话应该没问题,一般不需要检查,系统盘超限的话,改造成bios mbr后用在线迁移工具试试,https://cloud.tencent.com/document/product/213/65711
说明:之所以导出.vmdk前在物理机装一遍虚拟化驱动、在winpe里改造gpt → mbr的时候用dism搞一遍驱动、改造好后重启进入系统后又用pnputil搞一遍,是因为本地物理机磁盘情况不尽相同,避免传到云上后因为驱动进不去系统的情况出现。