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

在线迁移的话,可以参考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就可以导入自定义镜像了,但对镜像文件本身有一些要求,详见下图

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

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

①导入的时候,选就近区域,比如想在上海地区买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)

④选强制导入

如果用导入镜像搞的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分区

参考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

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

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...