【玩转腾讯云】disk2vhd离线迁移服务器

迁移之前先搞定虚拟化驱动

两种方式

[方式一]winpe里用dism命令

单个安装示例:选对盘符,选对路径,原系统的Windows目录是哪个盘符就写哪个盘符

Dism /Add-Driver /Image:"C:" /Driver:"C:\\VirtIO_Win_58007\\Win10_2016_2019\\amd64\\viostor.inf" /ForceUnsigned

Dism /Add-Driver /Image:"C:" /Driver:"C:\\VirtIO_Win_58007\\Win10_2016_2019\\amd64\\netkvm.inf" /ForceUnsigned

遍历安装示例

Dism /Add-Driver /Image:"C:" /Driver:"C:\\VirtIO_Win_58007\\Win10_2016_2019\\amd64" /recurse /ForceUnsigned

Dism /Image:"C:" /Get-Drivers

[方式二]打开系统cmd命令行,cd /d ".inf所在目录"

pnputil -i -a netkvm.inf

pnputil -i -a viostor.inf

特殊情况很多,并不能100%保证迁移过去驱动就一定是OK的,你可以先看完整篇文档,如果你有winpe,基本上都能靠自己闭环解决,晚点我会搞个制作winpe的视频。

在线迁移的话,可以参考https://cloud.tencent.com/developer/article/2136337

在线迁移过程中,主要靠公网传输几十G甚至更大的数据,慢、诸多影响因素,最终可能失败,并且全程源端服务器业务基本停了,还不如直接使用离线导入的方式,我个人比较喜欢使用离线迁移的方式,省事、成功率高、节省时间、排障方便,本文档主要介绍使用disk2vhd离线迁移,大致思路就是:用disk2vhd导出.vhd文件上传到cos再导入自定义镜像

当然,导出虚拟化文件的方式比较多,比如starwind、disk2vhd等。

disk2vhd是微软出品,可以放心使用,下载地址:https://download.sysinternals.com/files/Disk2vhd.zip

starwind也很好,可参考https://cloud.tencent.com/developer/article/1843176

disk2vhd导出.vhd的注意事项

①VSS(Volume Shadow Copy Service)是前提,但VSS服务是Windows系统自带的,一般都是正常的,基本可以忽略

②如果是在winpe里操作,原系统盘此时相当于winpe的一块没有业务的数据盘,此时不要勾选Use Volume Shadow Copy、不要选Use Vhdx

③如果是直接在系统运行的情况下操作,需要勾选Use Volume Shadow Copy,但不要选Use Vhdx

④导出的时候,注意.vhd文件保存的位置,比如导出磁盘0,需要把磁盘0的所有分区都勾选,导出到磁盘0之外的分区上,一定不要选错保存的位置

详情参考https://cloud.tencent.com/document/product/213/17815#.E5.AF.BC.E5.87.BA.E9.95.9C.E5.83.8F

导出后就可以上传到COS了,COS上传完成后,文件会有个对应的URL,然后就可以用这个URL导入自定义镜像了,但对镜像文件本身有一些要求,详见下图

重点注意下:不支持UEFI+GPT,仅支持BIOS+MBR

导入镜像前,先详细阅读官网文档:https://cloud.tencent.com/document/product/213/4945

导入自定义镜像时的注意事项

上图的基本要求肯定得先满足了,下面说的是这个大前提下的其他注意事项

①导入的时候,选就近区域,比如想在上海地区买cvm,那就选上海

②选64位系统

③选接近的系统版本(这只是个标签而已,无关紧要,选哪个都行,但标签毕竟是为了好区分,所以还是尽量选接近的吧)

不支持NT5内核的系统,支持NT6或以上内核版本的系统(cmd命令行执行ver命令就能看到,例如下图就是NT10.0)

比如2008R2选2008、2012R2选2012、2016/2019/2022/Win10/Win11都选2016

不支持2003*系统,不支持XP*系统

Tencent Cloud only support [OS disk type = "BIOS+MBR"] ,not support [OS disk type = "UEFI+GPT"],not support Server2003*, if you try to import Server2003*, the result will be failure.

Tencent Cloud allows customer to import images:

NT6.0 (Windows Vista/Server 2008,theoretically speaking,support,but we haven't tested it thoroughly)

NT6.1(Win7/Server 2008R2,we have tested it)

NT6.2(Win8/Server2012,theoretically speaking,support,but we haven't tested it thoroughly)

NT6.3(Win8.1/Server2012R2,we have tested it)

NT10.0(Server2016/Server2019/Server2022/Win10/Win11/Windows Server vNext ,we have tested it)

④选强制导入

cloudbase-init不是必须的,主要管重置密码、设置hostname等,如果有需要,可以先导入后再安装,建议提交安装TAT,TAT设置密码很方便,不需要重启机器,可参考https://cloud.tencent.com/developer/article/2145058

2018年6月后创建的vpc,在其中购买cvm时,只要你的镜像没有禁用dhcp、不是静态IP配置,会自动dhcp分配ip的。

除过从现有系统导出.vhd,如果是纯净版系统需求,也可以自己通过vmware制作,可参考https://cloud.tencent.com/developer/article/1836962

如果用导入镜像搞的Windows机器进不去系统,出现INACCESSIBLE_BOOT_DEVICE或no bootable device、booting from harddisk,一般是启动引导有问题,分这几种情况:

1、INACCESSIBLE_BOOT_DEVICE这个报错大概率是硬盘驱动的问题

需要在winpe里用dism命令搞定驱动

用dism命令集成下虚拟化驱动

以Win10_Win11_2016_2019_2022为例(NT10.0的驱动一样)

单个驱动安装示例:选对盘符,选对路径,原系统的Windows目录是哪个盘符就写哪个盘符

Dism /Add-Driver /Image:"C:" /Driver:"C:\\新建文件夹\\VirtIO_Win_58007\\VioStor\\Win10_2016_2019\\amd64\\viostor.inf" /ForceUnsigned

Dism /Add-Driver /Image:"C:" /Driver:"C:\\新建文件夹\\VirtIO_Win_58007\\NetKVM\\Win10_2016_2019\\amd64\\netkvm.inf" /ForceUnsigned

遍历安装示例:路径到系统分支的顶层目录即可

Dism /Add-Driver /Image:"C:" /Driver:"C:\\新建文件夹\\VirtIO_Win_58007\\VioStor\\Win10_2016_2019" /recurse /ForceUnsigned

Dism /Add-Driver /Image:"C:" /Driver:"C:\\新建文件夹\\VirtIO_Win_58007\\NetKVM\\Win10_2016_2019" /recurse /ForceUnsigned

2、特殊提一下导入的2008系统报0x0000007B的问题

参考https://cloud.tencent.com/developer/article/2141822

3、recovery模式不能用的问题,因为winre.wim没集成虚拟化硬盘驱动

参考https://cloud.tencent.com/developer/article/1998997

4、如果挂winpe看到系统盘EFI分区则需要改造成BIOS+MBR

参考https://cloud.tencent.com/developer/article/2075580改造成BIOS+MBR的,需要注意的是:UEFI+GPT的即便在winpe里搞成BIOS+MBR了,如果没在winpe里顺带用dism处理虚拟化驱动,重启是会遇到INACCESSIBLE_BOOT_DEVICE的问题。

正常来说,在最前边有个几百兆的启动引导分区,被客户删掉了或者把激活点到后面的分区了,这种就是两步走,先右键确认第一个分区是激活分区,然后用nt boot auto fix选第一个分区的盘符(不一定是C:,以具体的为准)修复即可。总之,这2步都执行下,稳妥。

这是前边几百M删了,需要分两步修复启动引导的情况:

这是前边几百M没删,但是右键不是激活分区导致的进不去:

这是导出.vhd时,忘记勾选前边的启动引导分区了,只勾选了系统所在那个分区,没勾选前边的启动引导分区:

导出后,在磁盘管理器里附加上看一下导出的对不对

6、其他导入镜像的特殊情况,需要虚拟化文件的COS链接定位

比如是.vhd的,下载到同地域cvm,从磁盘管理器里附加上.vhd文件看下其分区和内容到底对不对
把数据盘的.vhd强制导入镜像买机器的,这种你再怎么修复启动引导都进不去系统

比如是.vmdk的,搞到vmware虚拟机看看能不能启动

还有些情况,原本导出的文件系统就是有问题的

7、还有一种特殊情况,部分cvm的启动引导问题是系统盘和数据盘磁盘顺序反转引起的

系统盘本应是磁盘0变成了磁盘1

数据盘本应是磁盘1变成了磁盘0

从而出现系统不能启动的情况报错no bootable device

临时办法是关机 → 解挂数据盘 → 开机 → 挂载数据盘

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
【玩转腾讯云】disk2vhd离线迁移服务器
单个安装示例:选对盘符,选对路径,原系统的Windows目录是哪个盘符就写哪个盘符
<<上一篇
下一篇>>