备份还原后的系统启动修复

最近在看笔记本的备份与还原,现在大多数的笔记本都采用的EFI类型的主板以及GPT磁盘分区格式,由于还原需要重新划分分区或格式化磁盘,还原后的磁盘签名、GUID、分区GUID、偏移等都可能发生改变,所以需要手动修改EFI启动选项,才能保证还原过后系统能够正常启动。

设置EFI选项的具体做法是,首先使用diskpart命令行挂载EFI系统分区,这个分区一般都是100M,如分配到H盘,然后使用bcdedit命令将系统启动项、启动管理器选项分别之前合适的分区。要设置启动选项,必须找到BCD文件,一般对于EFI系统,BCD文件的路径都比较固定,如H:\EFI\Microsoft\Boot\BCD。设置启动管理器选项的命令行如下:

Bcdedit /store H:\EFI\Microsoft\Boot\BCD/set {bootmgr} device partition=H:

通过实验发现,上面这个命令在传统的BIOS/MBR系统上能够起作用,但是对于EFI/GPT系统并不能设置启动设备为H:盘,原因是EFI/GPT的启动设置保存在了主板固件firmware中了,所以需要改为命令:

Bcdedit /set {bootmgr} device partition=H:

假设系统分区为C,要是还原后系统从C启动,需要运行的命令行如下:

Bcdedit /store H:\EFI\Microsoft\Boot\BCD/set {default} device partition=C:

Bcdedit /store H:\EFI\Microsoft\Boot\BCD/set {default} osdevice partition=C:

虽然以上两个命令在大多数情况都是可行的,但是有时BCD中并不包含{default}这个默认系统启动选项,通过观察发现,如果不存在{default}则往往存在{current}选项指向当前的启动系统,因此可以使用{current}替换{default}调用以上的命令。然而,这还有可能失败,这时就需要找到备份时系统所在的启动选项进行设置了,可先调用“bcdeidt /store H:\EFI\Microsoft\Boot\BCD /enum all”查看所有已存在选项,然后找到描述信息为备份时系统的相关信息,如一般默认的是”Windows 7””Windows 8”等,然后设置该启动也可以从C盘启动。

以上只是还原后修复启动项的最简单方法,如果要做到准确无误,就需要在备份时记录备份的各个磁盘、分区的GUID、磁盘签名、分区偏移等信息,然后在还原后,将所有包含备份磁盘、分区的GUID信息改为新的磁盘、分区GUID,这样不仅能够保证系统能够正常启动,还可以修复系统休眠、系统恢复等其他启动选项。具体做法这里就不详细介绍了,有需要的可以联系本人。

在测试了几台笔记本后,如DELLHPMSI等,发现还原后F3F8等一键还原无法使用了,开机按F8后,启动报错,错误码为0xc0000225,意思是找不到启动设备,但是通过Windows的系统设置中,可以选择重启并成功进入系统恢复界面,之前也有发现F8进入的一键还原界面,和通过Windows系统设置重启进入的系统恢复界面是一样的。通过挂载EFI系统分区、并分析文件、目录结构发现,在EFI系统分区中还藏有另外一份BCD,如HP机器中的H:\EFI\HP\Boot\BCDDELL机器中H:\EFI\DELL\Boot\BCD,通过手动修改其中的启动选项,可发现F8一键还原已经可用。有兴趣的朋友可以自己试试看。

你可能感兴趣的:(BCD,EFI,bcdedit,一键还原,启动修复)