2024年5月2日发(作者:)

Windows Server 2008 R2 之十九Bcdedit的使用

从Windows Vista开始,无论是早期的从纯 DOS 模式下引导还是现在 Windows

2000/XP/Server 2003

采用的 NTLDR + 的引导方式,均被抛弃了。一种被称为 Boot Manager

的组件取代了NTLDR + 的引导方式, 成为 Microsoft在 Windows Vista

里面采用的 Windows 引导方式。在Windows Vista里面,当你启动计算机的时候,首先是

BIOS 开始运行,BIOS 从启动设备里面读取主引导扇区(MBR)的记录,然后把控制交给

储存在 MBR里面的启动代码,接着 Boot Manager启动并从Boot Configuration Data (BCD)

数据库里面读取启动项目信息并把这些信息显示在屏幕上面,并等待用户选择。当用户选择

了一个启动项目以后,Boot Manager 根据用户的选择,从 BCD数据库里面获取相关的启

动参数和配置信息,然后开始系统的引导过程。对于安装了 Windows Vista 的机器,

Microsoft 将修改被激活的主分区的启动扇区(Windows 安装程序将在磁盘的第一个扇区里

面写入 MBR 内容) ,使用新的启动扇区内容替代原有的启动扇区的内容。经典的错误提

示信息: “NTLDR is missing”将被“Bootmgr is missing”所取代。

对于VISTA和Windows 2008,默认情况下BCD数据库在放在c:bootbcd中;但在windows

7和Windows 2008 r2中系统分区被隐藏起来(安装时系统会划分200M的系统分区,用来

存放引导文件),需通过“磁盘管理(”),对系统分区执行“更改驱动器号和路径”,

分配盘符,才能访问。

一、BCD数据库文件的内容

BCD 文件,本质上就是一个注册表的 hive 文件,因此可以使用注册表编辑器直接对它

进行修改。它所在的注册表键值如下图

关于 BCD文件,我们需要关注的内容只有 Objects 下的内容,在 Objects下,有很多以

CLSID命名的

子键,每一个子键均有其特殊的含义。

展开每一个 CLSID 键,一般都会有 2 个字键:Description 和 Elements。在 Elements 键

下方,会有树木不等的子键存在,每一个子键都代表不同的含义。有一些是显示的内容,有

一些是指向一些特殊的程序或目录用于 Windows Vista 的启动,剩下的一些和 Windows

Vista 的启动参数有关。

例如:

12000004 键下的 Element 字符串内容就是用于设定在 Boot Manager 的启动菜单上显

示内容的。

12000005 键用于指定 Boot Manager的语言。如果安装了的简体中文版本,那么这里的

内容一定是 zh-CN,如果你想使用英文版的 Boot Manager,那么只需要修改为 en-US 即可。