【玩转腾讯云】Windows UEFI+GPT改造BIOS+MBR

2023-06-21 11:12:32 浏览数 (1)

虚拟化驱动很重要,否则会报错

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搞一遍,是因为本地物理机磁盘情况不尽相同,避免传到云上后因为驱动进不去系统的情况出现。

0 人点赞