本帖最后由 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等,我觉得都没有问题。 |
参与人数 2 | 无忧币 +7 | 收起 理由 |
---|---|---|
jxpxwgh | + 5 | 赞一个! |
yyz2191958 | + 2 | 赞一个! |
Even7250 发表于 2024-8-18 13:38 我看你在QQ上加我了,找个时间咱们远程一下,我按我的思路操作一遍,看看能不能解决问题。 |
Climbing 发表于 2024-8-14 19:59 我用一个软件又进入了初始VHD系统,说明我VHD没坏,只是备份还原出了问题,导致引导不了 链接:https://pan.quark.cn/s/d069d38e756f]WIM_VHDX安装程序V5.0.exe[/url] |
Even7250 发表于 2024-8-17 08:43 先练习没优化的 |
szwp 发表于 2024-8-16 08:04 就是安装了驱动和一些常用得软件,这也要考虑。最后系统有35G左右吧,都是直接安装到C盘的 |
Even7250 发表于 2024-8-14 22:56 客观地说,以你的水平,我觉得你很难判断这个vhd系统在备份还原之前是好的。 另外,建议你用hd sentinal这一类的软件检查一下你的硬盘健康状况。VHD文件一般都很大,要是硬盘坏上几个扇区,很可能导致vhd文件损坏。 另外,vhd文件也可以直接加载到盘符,用chkdsk之类的检查一下是不是有文件系统错误。 |
Even7250 发表于 2024-8-14 19:09 我真搞不懂,那个Win8.1系统,之前是可以进去的,在我备份它马上还原到另一个盘符,都在同一个分区。在发现卡新盘符系统进不去之后,我还试过,成功进去那个原始的Win8.1系统。这一刻我它还是没坏吧。但是后面我不是又换了备份软件什么Dim++、Ghost、GSI等等。几次操作下来我发现原来的那个Win8.1系统我也进不去了。我都没动过它,它会坏?~~我不觉得它坏了,应该还是好的吧 ~~ 还是我在还原其他系统时候干扰了。真郁闷、哪里有问题。前4年,我也做过类似的操作没有出现这样的麻烦。 |
Even7250 发表于 2024-8-14 19:09 你的VHD系统都进不去,只能说明你这个系统出问题了啊,你把它恢复到分区也不能进去,不是很正常嘛。 我在第一个回复里就问过你:你原来的vhd系统运行是否正常? 对于你这种不知所谓的提问者,说再多就是纯粹浪费时间了。 |
jlshnlhj 发表于 2024-8-10 16:06 我直接放弃拆分,把父放到引导项目也进不去。反正就不知道哪里出了问题 |
Climbing 发表于 2024-8-8 18:31 赞一个~~~ |
Even7250 发表于 2024-8-9 22:38 你对UEFI和Windows启动缺乏基本的了解和认识,所以请在这方面补补课。 如果你原来安装了Win10,不需要安装Xorboot,也不需要两个ESP分区,直接用原来的windows boot manager(也就是启动win10的那个),用原来的BCD文件(在ESP分区微软目录下),增加一个win8.1的BCD启动项目即可启动。 如同楼上所说,你原来的VHD启动正常,没有必要非得把这个系统迁移到分区,当然,如果你就是想实践练习一下这个操作就无所谓。直接将vhd启动项目加到上面提到的BCD中也可以直接启动。 如果仍然搞不定,加我QQ:653668。 |
修复一下引导呢? |
本帖最后由 jlshnlhj 于 2024-8-10 20:35 编辑 Even7250 发表于 2024-8-10 12:39 如果BCD没问题,就是断链(父vhd被打开动过),再不就是直接父vhd进不去,要进父vhd,注意开启:写。用BOOTICE修复差分或重新建一个父vhd的差分子VHDL,试试。 |
jlshnlhj 发表于 2024-8-10 11:39 我之前也用过VHD,那个系统使用了挺长时间也是用拆分进系统的,但不知道为啥突然前段时间就是进不去了。怎么引导都进不去。我感觉VHD系统也还是会损坏的,所以怎么都要有个备份。就相当与备份VHD的原始系统,万一以后出了问题可以不用重装那么多驱动和软件。 |
Even7250 发表于 2024-8-10 09:27 其实你vhd用的挺好的,不知为什么非得转物理C盘?差分一个子VHDL用不是很好? 前面介绍那个正好与你的相反,它是转到vhd,你是vhd转到c:。 到下面4楼下载软件,按介绍试试。 http://bbs.wuyou.net/forum.php?m ... &fromuid=638309 比如pe中windows分区的盘符为f:,则:driveletter /currentos:f |
woshisong121 发表于 2024-8-8 18:32 尝试就对了 |
进来看看学习下 |
Climbing 发表于 2024-8-9 11:03 没学过代码 在PE系统的时候操作? 在还原转移的系统前操作?还是还原完成后操作? 用什么软件进行删除操作?还是在什么文件操作? |
能到Administrator这一步,证明系统是能够加载了,C盘系统是没有问题的,我觉得是你装了重要的软件或设置重要的路径到D盘(举例,也可能是其他盘),而且应该是有2个硬盘导致原来D盘分配到其他盘符(也可能是一个硬盘,原来没有按顺序分配盘符),找不到文件导致进不来系统。 |
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices 挂载清空卸载重启 |
Even7250 发表于 2024-8-9 09:25 卡Administrator,大概率是因为你没有删除HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices下的\DosDevices\C:这一项。因为找不到正确的C盘。 |
Even7250 发表于 2024-8-9 10:06 确实好久不更新了,但仍然能用,它只是一个UEFI的启动管理软件,这东西不需要频繁更新。 |
Even7250 发表于 2024-8-9 09:26 试一下,有结果说下 |
本帖最后由 jlshnlhj 于 2024-8-9 10:34 编辑 看5楼: HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices中将\DosDevices\C:删除 或者参考: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=437970 用:修改-克隆迁移VHD系统-C盘ID.7z 建议用8楼方案: 原来的vhd就是备份,拷贝到其他盘。差分后,bcd添加个启动项,直接用不是挺好。 |
Climbing 发表于 2024-8-8 18:31 XorBoot 论坛搜索了下发现只有2019年更新,这个版本现在依然适用么 |
woshisong121 发表于 2024-8-8 18:32 在尝试 |
test2333 发表于 2024-8-8 19:33 好的试试 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.