|
本帖最后由 Climbing 于 2024-8-8 18:32 编辑
你原来的vhd系统运行是否正常?HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices中将\DosDevices\C:删除,另外,还要更新BCD指向新的系统分区。
跟备份软件无关,是你自己的操作有问题。
【2021.09.01】Windows Vista/7/8/10/11系统迁移原理及迁移步骤
将Windows系统从机械硬盘迁移到固态硬盘在本坛快成月经帖了,其实用什么工具都无所谓,但有时候遇到问题不知道从哪里下手解决,主要原因就是没有搞清楚迁移原理。
迁移系统,你要搞清楚原理,然后就是非常简单的操作,随便一个克隆软件都可以搞定。这里就讲一下Windows 7以上系统的迁移原理:其实就是两个步骤,一是系统分区的迁移,二是引导修复及BCD启动配置文件的修复。
1、系统分区的迁移,随便一个克隆软件都可以搞定:Drive Snapshot、 GHOST、ATI、DiskGenius、分区助手、再生龙、dism++、imagex等等,凡是能给系统分区做克隆或者复制操作的都可以,需要注意的就是系统分区含有大量的硬链接,所以不能用直接复制的方法(如果有支持硬链接复制功能的软件,直接复制也可以)。如果源盘和目标盘能够同时访问到,那么直接用分区复制功能(ghost、Diskgenius、分区助手都可以);如果不能同时访问,就用上述软件给系统分区做一个克隆,通过移动硬盘中转一下。建议这些操作都在PE下进行。在将系统分区恢复到目标硬盘后,注意删除目标分区SYSTEM注册表:\HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices下的“\DosDevices\C:”这一项。注意:如果你的目标硬盘使用了当前系统不支持的硬盘控制器,例如从SATA接口的硬盘(一般使用AHCI)迁移到M.2 nvme,那么你需要先在原来的系统里安装好新硬盘控制器的驱动,这个驱动一般可以从主板厂商或者硬盘厂商处获取,安装或者用dism++添加到当前系统中。
2、引导及BCD修复。无论是MBR或者GPT,用Windows的bcdboot命令行都可以修复,好多PE下也都提供了引导修复功能。无论哪种硬盘格式,都建议你在PE下事先规划好硬盘的分区,对于mbr就是规划系统分区和数据分区,而对于GPT,则要事先建好ESP(FAT32)、MSR、系统分区、数据分区。mbr有引导扇区,GPT则只有引导分区(也就是ESP分区,没有引导扇区这个概念)。由于Windows的系统分区是绑定硬盘GUID的,所以换硬盘或者换分区都需要更新BCD文件(BCDBOOT都可以自动处理)。BCDBOOT会自动复制Windows系统引导文件到启动分区,这些文件默认来源于目标系统: \windows\boot 这个目录,这个目录下的PCAT目录对应BIOS+MBR启动方式,EFI目录则对应UEFI+GPT启动方式。
了解了上述原理,那么正常情况下迁移系统的步骤(假设源硬盘和目标硬盘不能同时访问)就是:
1、备份原来的系统分区(注意下原硬盘上各分区的大小,尤其是系统分区的大小),如果是GPT硬盘,建议也备份一下ESP分区。这个我推荐用Drive Snapshot,在当前系统下就可以操作,直接备份到移动硬盘上即可。如果你原来的硬盘还有数据分区,同时备份到移动硬盘(可以用直接复制的办法,没必要用克隆软件)。这里需要注意一点:如果你原来的系统是在机械硬盘上,而新硬盘是nvme的ssd(或者使用了不同的硬盘控制器),你在备份系统之前,需要先在原系统里安装好相应硬盘控制器的驱动(nvme的驱动),驱动安装成功的标志就是你在老系统下能够看到新硬盘,否则迁移后的系统启动时有可能会遇到0x7B蓝屏错误,如果迁移后你才发现这个问题,就需要在PE下注入新的硬盘控制器的驱动。
2、接上新硬盘,进入PE,给新硬盘分区(如果是GPT格式,要注意先建立ESP和MSR分区),新硬盘的系统分区不要小于原硬盘的系统分区。
3、将备份到移动硬盘上的系统分区恢复到新硬盘的系统分区上,如果是GPT,建议同时恢复一下备份的ESP分区。假设新的系统分区盘符是F:,ESP分区盘符是Z:,那么在PE的cmd命令行下用(这是UEFI+GPT格式硬盘):
bcdboot F:\windows /s Z: /f UEFI
如果是普通mbr硬盘,则是:
bcdboot F:\windows /s F:
这样就同时修复了硬盘的引导及BCD启动配置文件。
然后注意将目标系统system注册表(F:\Windows\System32\config\SYSTEM)删除一下\HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices下的\DosDevices\C:。
用这个命令加载目标系统注册表:reg load hklm\sys f:\windows\system32\config\system
然后在注册表编辑器中修改hklm\sys对应的注册表项即可。
编辑完成后,关闭注册表编辑器,然后:reg unload hklm\sys
4、重启,从新硬盘启动,搞定。
如果你熟悉使用grub4dos、grub4dos_UEFI、grub2、XorBOOT这一类的第三方启动管理软件,配合NTBOOT这一类的启动工具,上述很多操作都可以简化,我觉得这都属于高手级别的操作了,这级别的高手不需要参考上面这种小白文档。
-----------------
补充内容:
-----------------
我这个帖子主要是介绍原理(授人以渔),关于系统迁移,在坛子里快成月经帖了,经常见人发类似的求助帖子(我在私下里也帮好多人解决过系统迁移问题)。理解了原理,用什么工具都无所谓,万变不离其宗。
[QUOTE=MacOS;17807680]还有个事,UEFI理论上,WINDOWS系统会在主板设置中写入WINDOWS BOOT MANAGER的引导项目,现象上,这会在正确关机或重启时加到设置中,有时候系统没那么智能会写入错误的WBM,可以用BOOTICE等工具在UEFI环境下修改这个设置,同时要排查EFI混乱问题[/QUOTE]
UEFI默认查找ESP分区:EFI\boot\bootx64.efi 来启动。
Windows Boot Manager则是启动ESP分区的:\EFI\Microsoft\Boot\bootmgfw.efi
我修改UEFI启动设置一般使用XorBoot,因为这个软件本身也是一个支持UEFI的第三方启动管理软件。当然,用BootICE也没有问题,这两个软件都是无忧论坛Pauly同学的作品,应用非常广泛,常用的PE都自带。
[QUOTE=youwant;17807743]好文章,要是有对应pe和常见的工具就更好了 :D[/QUOTE]
常用的工具在顶楼都有介绍,而且,这些软件应用非常普遍,大部分的PE至少都带有其中若干个工具。而我推荐使用的bcdboot,是Windows自带的。至于PE,可以用的太多,我推荐本坛d0z兄弟的(我自己用的)。另外,本坛也有兄弟推荐USBOS、USM、WEPE等,我觉得都没有问题。
|
评分
-
查看全部评分
|