Time: 2016-12-07 Tag: bcdboot

在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 文件夹复制到系统启动分区中。在UEFI+GPT环境下,BCDboot 将文件复制到固件所标识的默认系统启动分区(ESP)。另外,BCDboot 还使用%WINDIR%\System32\Config\BCD-Template 文件为模板,在系统启动分区上创建新的 BCD(启动菜单)文件,并初始化 BCD 启动环境文件。可以在 BCD-Template 文件中定义特定的 BCD 设置(需要BCB文件编辑器)。


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

BCDboot 命令行格式
BCDBOOT source [/llocale] [/svolume-letter] [/v] [/m [{OS Loader GUID}]] 

BCDboot 命令参数
1.png

示例 
1、BIOS+MBR 常用
bcdboot C:\Windows /l zh-cn
解释:从系统盘C:\Windows目录中复制启动文件,并创建BCD(中文)启动菜单,从而修复系统启动环境。
2、UEFI+GPT 常用
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启动界面语言为简体中文

总结:
WIN8/10的系统启动修复命令bcdboo还是比较简单的,它从损坏的系统(中一般是 c:\windows目录,这些文件当然是你安装系统时就存在了)复制启动文件到你的启动分区中,来达到修复系统的目的。因此,该命令正确执行的前提是:
1、启动分区存在 
2、windows安装盘中启动文件存在
否则,该命令将无法执行或出错。这种情况及其罕见,必须人工手动来恢复启动环境,这将是下一篇文章了。