【问题】最近遇到一些用户使用的操作系统为Win10,但是使用过程中由于错误系统优化、卸载软件错误、误删系统文件、windows更新错误等,影响系统BCD引导文件,造成开机出现该BCD蓝屏报错,如下图所示

图一  错误信息

 

【解决方案】在PE下 命令提示符下输入:bcdboot C:\Windows  /l zh-cn 重新创建UEFI引导,即可解决此问题

 

【问题分析】磁盘主引导记录为MBR时,经常会遇到无法引导的情况,我们一般使用NTBootAutofix自动修复即可解决,如果不能解决,请按一下方式解决

但是在一些使用UEFI引导的系统上,此软件无法修复,尝试了网上很多方法,都没有解决问题。

考虑到UEFI启动的系统,引导一般存放在ESP分区上,为了保证用户数据安全,我格式化了自己电脑的ESP分区进行实际测试。

1. 格式化ESP分区

图二   可以看到ESP分区已经是空的

2. 使用命令bcdboot C:\Windows  /l zh-cn进行修复,重建引导

图三  重建引导

 

3.查看ESP分区,可以看到引导所需的文件都已复制到ESP分区

图四 查看ESP分区

 

4. 开机,可以正常启动,无报错提示。

 

【原理分析】在win8/10系统中有一条BCDboot.exe命令,它是一种快速设置系统启动分区或修复系统启动环境的命令行工具。

BCDboot.exe命令是通过从已安装的Windows系统文件夹中复制一小部分启动环境文件来设置/修复系统的;BCDboot 还会在系统分区上创建引导配置BCD文件,该文件存储了启动引导项,可让您选择引导已安装的Windows。当系统无法启动时,用U盘或光盘启动Windows PE环境、或者使用win8/10的高级修复模式启动到命令符环境(推荐),然后运行BCDboot命令来修复损坏的系统。

BCDboot命令通常在 %WINDIR%\System32 文件夹内,它运行后从计算机上已有的 Windows 映像复制一套启动环境文件到启动分区(GPT)/目录(MBR)中。这些启动环境文件包括:从已安装的系统 %WINDIR%\boot\efi 文件夹和 %WINDIR%\System32\boot 文件夹复制到系统启动分区中。

BCDboot 创建启动菜单,使用%WINDIR%\System32\Config\BCD-Template 文件为模板,在系统启动分区上创建新的 BCD(启动菜单)文件,并初始化 BCD 启动环境文件。

在基于 UEFI(统一可扩展固件接口) 的系统上,EFI 系统分区是使用 GUID 分区表 (GPT) 磁盘格式的磁盘上的系统启动分区(ESP)。BCDboot 会创建 \Efi\Microsoft\Boot 目录,并将所有需要的引导环境文件都复制到此目录中。

示例

bcdboot C:\Windows  /s S: /f uefi /l zh-cn

解释:用DG等工具先将ESP分区装载为S盘,从系统盘C:\Windows目录中复制UEFI格式的启动文件到ESP分区中,修复系统。
各参数的具体含义:
c:\windows 系统安装目录,打开我的电脑,查看你的系统是安装在那个盘,就输入相应的盘符和目录。 
/s S: 指定esp分区所在磁盘,小编指定ESP分区为t盘。 
/f uefi 指定启动方式为uefi,注意之间的空格一定要输入。 
/l zh-cn 指定uefi启动界面语言为简体中文

该命令正确执行的前提是:
1、启动分区存在 
2、windows安装盘中启动文件存在