对于Windows NT6系列的用户来说,现在的系统引导趋势是采用UEFI+GPT模式,,那么在GPT分区下,windows系列引导故障处理程序有bcdedit,bcdboot等。。正常情况下,执行bcdedit命令可以查看当前系统的引导情况,然而种种情况下,会出现意外的案列,下面进行相应的处理方案。

首先列出可能出现的现象:

1.无法打开启动配置数据存储 拒绝访问

2.无法打开启动配置数据存储 系统找不到指定的文件

0818b9ca8b590ca3270a3433284dd417.png

3.无法打开启动配置数据存储 找不到请求的系统设备

0818b9ca8b590ca3270a3433284dd417.png

4.执行msconfig,引导标签页中内容为空

0818b9ca8b590ca3270a3433284dd417.png

5.系统启动和故障恢复中,操作系统列表内容为空

0818b9ca8b590ca3270a3433284dd417.png

网上给出的解决方案大多为:

1,cmd以管理员权限执行,这可以解决第一种故障现象。

2,对bcd文件所在的分区标记为活动分区,然而这仅适用于mbr分区模式,不适用于gpt分区方式

那么该如何解决其他的故障呢??

首先我们得从uefi+gpt的windows引导说起,流程如下(http://www.heu8.com/647.html):

UEFI BIOS→ESP分区→EFI/Boot/bootx64.efi→\efi\Microsoft\boot\bootmgfw.efi→efi\Microsoft\Boot\BCD→\Windows\system32\winload.efi→加载内核启动系统

上述流程中的ESP分区(标准的ESP分区可以使用Diskgenious软件创建),为UEFI下Windows的引导分区,实际上就是一个FAT格式的分区,并无其他特殊的要求。并不像在传统BIOS下,启动Windows需要“活动的主分区”。在ESP分区下,存在几个重要的文件(“√”表示必不可少的文件):

√EFI/Boot/bootx64.efi(或bootia32.efi)

√ EFI/Microsoft/Boot/bootmgfw.efi

√ EFI/Microsoft/Boot/BCD

EFI/Microsoft/Boot/zh-CN

上面这几个文件可以系统安装光盘中找到,我们只要简单的使用“复制”-“粘贴”,放到ESP分区即可。当然也可以通过命令进行操作:

bcdboot C:\windows /l zh-cn

上述命令成功执行的前提:1、必须存在bcdboot.exe文件(原版Windows8.1/8/7的C:\Windows\System32下有此文件)。2、命令在bcdboot.exe文件所在路径下执行。3、若自行创建的FAT分区(不是标准的ESP分区),则需要执行命令:bcdboot C:\windows /l zh-cn /s Y: (Y代表FAT分区盘符)。

明明系统中存在esp分区,为什么bcdedit提示找不到呢,这种情况往往发生在ghost系统,或者不当分区操作之后。esp分区因为种种原因导致系统无法识别,这是我们需要重新新建esp分区,如下图,默认情况下esp分区类型为0xef,我们现在利用dg删除当前出现错误的esp分区,然后重新新建一个esp分区,如下图,

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

最后分区如下,重点注意箭头部分:

0818b9ca8b590ca3270a3433284dd417.png

然后从系统盘中复制相应的文件,如下:

0818b9ca8b590ca3270a3433284dd417.png

这时,我们再执行bcdedit,我们发现其运行正常了,而且msconfig,启动恢复菜单也都正常了,,所以总结产生的原因,就是esp的部分分区数据异常,导致windows无法识别,所以我们重新生成一个esp就解决了

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐