BitTigerio 2018-04-07
UEFI和GPT下硬盘克隆后的BCD引导修复-Storm_Center http://www.stormcn.cn/post/1901.html
当硬盘引导换成GPT,系统启动也变成UEFI后,如果直接通过克隆方式来更换硬盘,有可能新硬盘无法启动,需要修复启动文件BCD。BCD可放在单独的ESP分区(FAT格式,用光盘文件正常安装就有),也可放在C盘,UEFI启动的BCD文件在efi\microsoft\boot\下。即使是MBR和BIOS启动且同样拥有ESP单独分区的话,BCD则是在BOOT文件夹中,所以即使是MBR格式,如果同样引导文件未放在C盘,也需要在克隆后修复对应位置的BCD,修复则同前者一样,都是要把引导文件的路径指向对应分区和路径下的BCD。还有恢复环境recovery,也是需要指向指定的分区或位置(如果没有设置专门的NTFS分区,则放在C盘也可)。
如果不修复引导,则在克隆后用新硬盘启动,会出现0xc0000225的错误(顺便说一下,MBR格式硬盘且有ESP分区的,可能出现的错误代码是0Xc000000e),也可能直接黑屏没有反应,如果修复失败,还有可能出现黑屏但还有鼠标光标,剩下的鼠标光标也能动,这绝不是丢失或损坏了什么dwmapi.dll文件的问题,也调不出什么任务管理器去运行explorer.exe,都是引导与启动修复失败的结果。
而修复BCD,一般都有工具,有智能自动修复的,只要指定windows目录所在地,或者在PE中要先给ESP指一个盘符,让修复工具能自己找得到它,只要硬盘修复成功启动,ESP还是会回到无盘符状态,不会影响什么的,唯一要注意的是随着WIN10以后的更新版本系统的出现,修复工具最好选用最新版本的,虽然win7时代的工具可能也能用。另外自动修复工具其实与命令修复(如bcdboot c:\windows /s z: /f uefi /l zh-cn,这里/s后的z:是预先指定的ESP分区的盘符,如果引导文件在C盘,这里也得指定为c:,/f后面也可以用ALL,具体参数参考bcdboot/?)都是往BCD文件里添加一条新的启动引导项,而不是在旧有条目上进行修改。
如果要对BCD引导文件里旧有条目手动进行修改,这些工具(如EasyBCD、BOOTICE)也都有手动修改的功能。不过我在虚拟机中尝试克隆硬盘后手动修改BCD是成功,但在一台实机上却一直失败,被修改的路径应该是正确的,但却无法被识别成正确的C盘(而是加装双硬盘后的H盘,即使前一块硬盘在取掉的情况下仍然如此),以至于虽然能启动,但最后出现如上面说过的黑屏上只剩下一个鼠标光标。所以在实机上我采用的方法是用PE启动,然后运行DG,用DG里的克隆硬盘进行克隆,克隆后,在PE计算机管理中的磁盘管理里,新硬盘的状态是脱机的,这不是仅仅由于权限策略限制而脱的机,而是由于两块硬盘上的签名一样(即盘符设置相同)而造成的脱机,这时不能在磁盘管理里随便就点联机进行让其恢复联机状态,如果此时联了机,新硬盘的签名就改变了,克隆的作用就没了,新硬盘上各分区将按顺序在旧硬盘后分配到盘符,这样即使用新硬盘进行启动,就会出现找不到系统,所以必须在保持其脱机状态下关机,然后取走旧硬盘,再用新硬盘进启动,这样就能顺利进入系统,一切如常,然后再考虑处理旧硬盘,如果还想用的话。
注意自动修复BCD也仅仅是修复引导启动,而BCD里还有windows的恢复环境,那个WinRE,在克隆后这个恢复环境也有可能遭到破坏,但修复工具们一般不管它,需要手动修复,就是指定恢复环境WinRE在哪,可以手动指定,也有命令可用于修复,就是reagentc命令,具体参数就不说了,因为在上面即使是引导修复成功的虚拟机上,我用命令也无法修复恢复环境,最后还是手动用BOOTICE工具来修改,没做成功的就不说了,以后再琢磨。
>> 除非说明均为原创,如转载请注明来源于http://www.stormcn.cn/post/1901.html