cc682/NetRoc
http://netroc682.spaces.live.com/
在目标机的软件配置
要进行内核调试,必须启用并配置一些在操作系统加载阶段就会确定的特性。这些特性的设置包含在启动选项中,这些启动选项用于决定boot loader如何加载并配置操作系统及其他可引导的程序和设备。
目标机的内核调试设置,也可以在系统引导之后使用KdbgCtrl实用程序修改。
从Windows Vista开始,Windows包含了新的boot loader架构、新的引导选项和新的引导选项编辑器。更多信息,查看Windows Vista引导选项。
本节包含以下内容:
引导选项介绍
编辑引导选项
引导参数参考
使用引导参数
绕过启动选项
禁用1394控制器
使用KDbgCtrl
引导选项介绍
所有运行Microsoft Windows的操作系统上,引导选项的概念和内容都是相近的。但是,Windows Vista之前,不同处理器固件的电脑保存引导选项的方式不同,并且在各个系统上需要用不同的工具来查看和编辑这些选项。使用BIOS固件,即使用x86和x64处理器的电脑,在boot.ini中存储引导选项,并且可以使用记事本编辑。主要是使用Itanium处理器的一系列采用EFI固件的电脑,在非挥发性的RAM中存储引导选项,必须使用专用工具修改。
Windows Vista及以后版本的Windows,采用不依赖固件的存储方式和配置系统存储引导选项。Vista也引入了新的引导配置器和系统相关的boot loader。获取更多信息,可以查看Windows Vista引导选项。
本节包含以下内容:
Boot.ini中的引导选项
EFI NVRAM中的引导选项
Windows Vista引导选项
本节描述和驱动程序开发测试相关的引导选项。要查看关于基于x86和Itanium系统的启动过程,包括各个系统上标准的启动选项,可以在 Microsoft TechNet站点上查看Microsoft Windows XP Professional资源包文档及Microsoft Windows Server 2003资源包。
Boot.ini文件中的引导选项
Boot.ini是在系统分区根目录下的一个文本文件,一般为c:\Boot.ini。 Boot.ini 用于存储传统上基于x86和x64的具有BIOS固件系统的引导选项。
在Windows Server 2003及更早版本的基于NT架构Windows系统中,当电脑启动时,Windows boot loader,即Ntldr会读取Boot.ini并为显示引导菜单中所有系统显示入口。然后,Ntldr按照Boot.ini文件中的设置加载被选中的系统。
在NTFS文件系统下,默认情况Boot.ini文件具有系统,隐藏,存档,只读属性;但是,管理员组的用户可以修改这些属性。文件属性不会影响boot loader的操作。
下面几节简要描述了Boot.ini文件并具体到使用个人电脑高级技术(Personal Computer Advanced Technology (PC/AT))BIOS固件的机器上来解释引导选项的情况。
本节包含:
Boot.ini文件概述
编辑Boot.ini文件
备份Boot.ini文件
本文档描述驱动开发者和测试者关心的Boot.ini文件。查看更全面的基于x86系统Boot.ini文件描述,包括Boot.ini参数列表信息,查看 Microsoft Windows XP Professional 资源包文档中的"检查和纠正x86系统Boot.ini设置"。
Boot.ini 文件概述
Boot.ini文件是在Windows Vista之前的运行于BIOS固件及基于NT内核系统中用于存储引导选项的文本文件。它一般位于系统分区根目录,如: c:\Boot.ini。
下面是一个典型Boot.ini文件内容的示例:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
C:\CMDCONS\BOOTSECT.DAT="Microsoft Windows Recovery Console" /cmdcons
Boot.ini文件有两个主要的部分:
-
[boot loader]节包含影响系统中所有引导入口的选项。这些选项包括timeout(引导菜单的超时值),和default(默认操作系统) 。
下面是一个Boot.ini的[boot loader] 节示例。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
-
[operating systems] 节为每个操作系统或安装的每个可引导程序包含一个或多个引导入口(boot entrie)。
引导入口是为操作系统或可引导程序定义的一组加载配置。引导入口指定了一个操作系统或可引导程序以及他们的文件位置。也可以包含配置系统或程序的选项。
下面的示例显示了一台有两个操作系统的机器上boot.ini文件的[operating systems]节,Microsoft Windows XP 和Microsoft Windows 2000。每个操作系统都分别有一个引导入口。
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
每个引导入口都有如下一些元素:
-
操作系统位置。Boot.ini文件使用高级RISC计算命名惯例(Advanced RISC Computing (ARC) naming convention)来表明操作系统位于磁盘的哪个分区及哪个目录。例如:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
-
一个更加友好的引导入口名字。这个名字用引号括起来,并会在引导菜单中被显示出来。例如:
"Microsoft Windows XP Professional"
-
引导入口参数,也称为
引导参数或
加载参数,可以启用、禁用或配置操作系统特性。引导参数类似于命令行参数,每一个都以斜杠开始,如
/debug。可以在每个引导入口中配置0个或多个参数。
与驱动测试和调试有关的引导参数列表,可以查看引导参数参考。
同一个操作系统也可以有多个引导入口,每个可以有不同的引导参数。安装系统的时候,Windows会创建标准的引导入口,也可以通过编辑Boot.ini文件手动添加新的、自定义的入口。
编辑Boot.ini文件
Windows Vista以前,基于BIOS的计算机将引导选项存放在名为Boot.ini的文本文件中。可以使用Windows XP及Windows Server 2003包含的Bootcfg(vootcfg.exe)工具编辑它,也可以用像记事本一样的文本编辑器来编辑。Bootcfg在Windows 帮助和支持中有文档说明。
也可以在系统的控制面板中修改某些引导选项。在系统信息对话框中的高级选项卡,点击启动和故障恢复里面的设置。由于这个功能有所限制,所以本节不会讨论。可以在帮助和支持中心查看关于启动和故障恢复对话框的更多信息。
Bootcfg
Bootcfg是用于在本地或远程电脑上编辑引导选项的命令行工具。使用Bootcfg命令和程序,可以编辑Boot.ini文件或可扩展固件接口(Extensible Firmware Interface)中的配置,既非挥发性随机访问存储器(EFI NVRAM)。Windows XP和Windows Server 2003的%Systemroot%\System32目录下包含Bootcfg。(Bootcfg的显示在以EFI NVRAM保存引导选项的机器中有少许不同,但是命令是一样的。)
可以使用Bootcfg添加、删除和修改所有引导入口及引导选项;但是不能使用它指定模糊的引导超时时间。也可以在替换或升级操作系统时,用脚本或批处理文件来设置或重置引导选项。不像手动编辑,Bootcfg不能编辑Boot.ini文件中被保护的属性。也可已帮助避免出现可能造成系统无法启动的输入错误。
要使用Bootcfg,必须是Administrators 组的成员。可以在帮助和支持中心查看更多有关Bootcfg的指令信息。
使用记事本编辑
可以使用类似记事本这样的文本编辑器来编辑Boot.ini文件。但是,由于这种方式很容易产生错误,所以应该只在Bootcfg不能使用的时候使用。
编辑Boot.ini文件之前,必须去掉Windows为保护它不被无意中更改而设置的保护属性。当Boot.ini在NTFS文件系统中时,必须是Administrators 组的成员才能修改这些属性。
通过下面一些步骤来使得Boot.ini可被编辑。这些步骤去掉它的系统、隐藏和只读属性。
配置Boot.ini文件属性
- 在命令行窗口,转到引导分区的根目录。
-
输入下面的命令:
attrib -s -h -r Boot.ini
系统、隐藏和只读属性就去掉了。
-
编辑完成后,可以恢复Boot.ini的保护属性。但是,Ntldr可以使用任何文件属性的Boot.ini。在命令行窗口,输入以下命令:
attrib +s +h +r Boot.ini
这样就恢复了Boot.ini的保护属性。
备份Boot.ini文件
当安装或升级成一个Windows Vista之前的基于NT内核系统时,Windows安装程序会创建新的Boot.ini文件。这个新文件可以保留一部分对旧文件做过的改变,但不是全部。
要保留编辑过的Boot.ini文件,应该在升级或安装新系统之前备份。
升级完成后,可以用备份的文件替换掉新文件。如果是新安装一个系统,可以从备份文件中将自定义的入口复制到新的Boot.ini中。
升级或安装新系统都会恢复Boot.ini文件默认的安全属性,包括只读属性。要编辑它,需要使用Bootcfg或修改掉文件属性。更多信息可以查看编辑Boot.ini 文件。
EFI NVRAM中的引导选项
使用可扩展固件接口(EFI)固件的机器,例如使用Intel Itanium2处理器的,在NVRAM中保存引导选项。NVRAM是一种可写,并且可在关闭电脑后保存数据的存储媒介。
EFI固件和BIOS的作用差不多,但是没有传统BIOS的一些限制。X86平台系统上由BIOS和引导管理器(NTLDR)实现的启动过程,由名为EFI BIOS和EFI引导管理器的组件完成。
要在运行Windows Server 2003和更早版本基于NT内核系统的EFI系统上配置和驱动开发测试相关的特性,必须编辑NVRAM中的引导选项。下面的小节简单描述EFI NVRAM中的引导选项,并说明这些选项如何表现于具体的系统上。
在Windows Vista及之后版本的Windows中,基于BIOS或EFI的机器都将引导选项存储在引导配置数据(Boot Configuration Data (BCD))中。这是一种用于存储引导选项的固件无关的配置和存储系统。更多信息可以查看Windows Vista的引导选项。
要获取更多有关基于Itanium系统引导选项的信息,可以查看EFI规范。可以从Intel Extensible Firmware Interface 站点上下载到该规范的最新版本。
本节包含:
EFI引导选项概述
编辑EFI引导选项
备份EFI引导选项
EFI引导选项概述
类似基于BIOS固件的系统,EFI NVRAM中的引导选项也有两种类型:
- 适用于及其中所有可引导设备和可引导程序的全局定义变量(Globally-defined variables)
- 引导选项变量是适用于某个可引导设备或程序的特定加载配置,例如操作系统。系统特定的变量包含机器上可引导设备或程序每个配置的引导入口。
Bootcfg工具(在编辑EFI引导选项中讨论,并在Windows帮助和支持中描述)可以查看和编辑EFI NVRAM中的引导选项。
下面的例子显示了一个Itanium处理器电脑上Bootcfg的输出。
Boot Options
------------
Timeout: 30
Default: \Device\HarddiskVolume3\WINDOWS
CurrentBootEntryID: 1
Boot Entries
------------
Boot entry ID: 1
OS Friendly Name: Windows Server 2003, Enterprise
OsLoadOptions: /debug /debugport=COM1 /baudrate=57600
BootFilePath: \Device\HarddiskVolume1\EFI\Microsoft\WINNT50\ia64ldr.efi
OsFilePath: \Device\HarddiskVolume3\WINDOWS
Boot entry ID: 2
OS Friendly Name: EFI Shell [Built-in]
下表说明了Bootcfg显示出来的EFI NVRAM中的各项元素。
字段
|
说明
|
示例
|
Boot Options
|
包含适用于所有引导入口的选项。
|
(节头)
|
Timeout
|
决定引导菜单显示时间,当达到这个时间时,boot loader加载默认系统。
|
Timeout: 30
|
Default
|
指定默认的操作系统位置
|
\Device\HarddiskVolume3\WINDOWS
|
CurrentBootEntryID
|
指示当前操作系统使用的引导入口
|
CurrentBootEntryID: 1
|
Boot Entries
|
包含特定系统的数据。由每个操作系统或可引导程序的一个或多个引导入口组成
|
(节头)
|
Boot entry ID
|
Bootcfg用于标识引导入口的ID。这个值在重新排序引导入口时会改变。它并不是EFI组件使用的固定的EFI引导入口ID。
|
Boot entry ID: 1
|
OS Friendly Name
|
用于引导菜单中显示的入口名字
|
Windows Server 2003, Enterprise
|
OsLoadOptions
|
指定入口的引导参数。引导参数是用于启用、禁用和配置系统特性的命令。EFI引导管理器将他们传递给可引导设备或系统来解释和实现。
查看关于驱动程序调试测试相关的引导参数,查看引导参数参考。
|
OsLoadOptions: /debug /debugport=COM1 /baudrate=57600
|
BootFilePath
|
指定操作系统的EFI boot loader位置。在基于EFI的系统中,每个操作系统或可引导设备都在EFI分区上有自己的boot loader拷贝。
在EFI NVRAM中,boot loader文件路径被存储为以全局唯一标识符(GUID)标识EFI 分区的二进制EFI设备路径。
Bootcfg在显示路径的时候使用的是分区的NT设备名。
|
BootFilePath: \Device\HarddiskVolume1 \EFI\Microsoft\WINNT50\ia64ldr.efi
|
OsFilePath
|
指定操作系统位置。
在NVRAM中,这个值被存储为以引导分区GUID和包含操作系统的目录路径组成的EFI设备路径。
Bootcfg在显示路径的时候使用的是分区的NT设备名。
|
OsFilePath: \Device\HarddiskVolume3 \WINDOWS
|
另外,还有一个很重要的而Bootcfg没有显示的EFI引导入口元素,即EFI引导入口ID。EFI引导入口ID是EFI引导入口的唯一标识。这个标识在引导入口被创建时指派,并且不会再改变。它在几个列表中用于描述引导入口,包括BootOrder数组,并且它是系统在磁盘中用于存储引导入口包括引导入口备份在内的相关数据的目录名。EFI引导入口ID具有Bootxxxx这样的形式,xxxx是一个反映引导入口被创建次序的十六进制数字。
注意 Bootcfg中的引导入口ID和Nvrboot中的引导入口号并不是EFI引导入口ID。Bootcfg和Nvrboot中的ID是用于反映在Boot Entries节中顺序的线性数字,并且如果重新排序入口的话,会被改变。
要获取更多有关基于Itanium系统引导选项的信息,可以查看EFI规范。可以从Intel Extensible Firmware Interface 站点上下载到该规范的最新版本。
编辑EFI引导选项
编辑使用Windows Server 2003或更早基于NT内核Windows并使用EFI NVRAM的系统的引导选项,可以使用Bootcfg(bootcfg.exe)——运行于Windows的工具;或者Nvrboot(nvrboot.efi)——运行于EFI环境下的工具。两个工具都包含在Windows XP 64位版本和之后的64位版本Windows中(Both tools are included in the Windows XP 64-Bit Edition and the 64-bit version。原文有错?根据后面的文档补全了)。
可以在系统的控制面板中修改某些引导选项。在系统信息对话框中的高级选项卡,点击启动和故障恢复里面的设置。由于这个功能有所限制,所以本节不会讨论。可以在帮助和支持中心查看关于启动和故障恢复对话框的更多信息。
Bootcfg
Bootcfg是用于在本地或远程电脑上编辑引导选项的命令行工具。使用Bootcfg命令和程序,可以编辑Boot.ini文件或EFI NVRAM中的配置、非挥发性随机访问存储器(EFI NVRAM)。、Windows XP和Windows Server 2003的%Systemroot%\System32目录下包含Bootcfg。(Bootcfg的显示在以EFI NVRAM保存引导选项的机器中有少许不同,但是命令是一样的。)
可以使用Bootcfg添加、删除和修改所有引导入口及引导选项;但是不能使用它指定模糊的引导超时时间。也可以在替换或升级操作系统时,用脚本或批处理文件来设置或重置引导选项。
在使用EFI NVRAM存储引导选项的系统上,Bootcfg也可以显示引导分区表、为镜像驱动器添加 引导入口或者更新系统分区的GUID。
要使用Bootcfg,必须是Administrators 组的成员。可以在帮助和支持中心查看更多有关Bootcfg的指令信息。
Nvrboot
Nvrboot (nvrboot.efi) 是一个基于EFI的引导入口编辑器,Windows XP 64位版本和之后的64位版本Windows都包含它。Nvrboot在EFI环境中运行,不能在操作系统运行的时候运行Nvrboot。
Nvrboot 只能编辑引导入口。不能用它显示或改变引导菜单超时时间,也不能使用push命令(nvrboot p)修改默认的引导入口。
Nvrboot 也包含用于备份和恢复NVRAM中引导入口的命令。这个步骤在备份EFI中的引导选项节中讨论。
Nvrboot 采用用户友好的格式显示引导选项。例如,他以分区GUID后接Windows目录路径的方式显示操作系统和boot loader文件的路径。
下面的步骤解释了如何从EFI shell中启动Nvrboot。EFI shell是多数基于Itanium系统提供的工具。由于EFI shell工具有众多制造商,所以本节的这些内容可能不能精确的描述某些特定机器。
运行 Nvrboot
- 重起计算机。
- 在引导菜单选择EFI Shell。
- 在shell提示符,键入驱动器名或系统分区的文件系统号码,如C:或FSn,n是系统分区的文件系统号。
- 键入cd msutil 定位到nvrboot.efi所在的Msutil目录。
- 键入nvrboot 启动Nvrboot。
查找Nvrboot的说明,可以键入h。
备份EFI中的引导选项
安装64位Windows的时候,安装程序会自动为安装创建一个引导入口,并为它创建一个备份保存到名为Bootxxxx的二进制文件中,Bootxxxx是这个引导入口的NVRAM ID。安装程序将备份文件和新安装系统的boot loader保存在EFI分区的一个新目录下。默认的,安装目录在\EFI\Microsoft\ subdirectory 中。
但是,系统并不为你创建的引导入口保存备份,也不将编辑过的引导入口保留到备份中。
要保存创建和编辑过的引导入口的备份,或者为安装程序创建的入口保留而外备份,需要使用Nvrboot(nvrboot.efi)。Nvrboot以安装程序和EFI组件使用的二进制格式保存这些入口。如果安装的引导入口丢失或者出错之后,就可以使用Nvrboot的导入命令(nvrboot i)将备份导入到NVRAM中。
本节包含:
导出和导入EFI中的引导入口
为现有的引导入口找出备份文件
找出已经删除的引导入口的备份文件
识别无用的引导入口备份文件
导出和导入EFI中的引导入口
使用nvrboot x(export)命令创建引导入口的备份拷贝。最好设计一个命名和存储的规范,使得当需要这些备份文件时能容易的找到。
使用nvrboot i(import)命令从自己导出的或安装程序生成的名为Bootxxxx的备份文件中导入引导入口。
导入的引导入口总会被分配一个新的EFI引导入口ID。例如,导出了一个名为Boot0003的拷贝,然后将它导入NVRAM,新的被导入的入口将获得新的引导入口ID,比如Boot000A。
为现有的引导入口找到备份文件
要使用文件名搜索一个引导入口的备份拷贝,需要使用入口的EFI引导入口ID。但是Bootcfg和Nvrboot都不显示这个ID。
但是,可以通过在EFI分区中搜索在安装的目录中名为Bootxxxx的文件查找引导入口的备份。要找到安装目录,只需要定位操作系统安装的boot loader文件路径。该安装的引导入口备份文件就保存在同一目录下。
使用nvrboot d(display)命令或bootcfg或bootcfg query命令查看系统保存boot loader的目录路径。
在下面的例子中,引导入口的boot loader存储在EFI分区名为\Microsoft\WINNT50的子目录中。该安装的引导入口备份文件名为Bootxxxx也在相同子目录下。
注意 Bootcfg中的引导入口ID和Nvrboot中的引导入口号并不是EFI引导入口ID。Bootcfg和Nvrboot中的ID是用于反映在Boot Entries节中顺序的线性数字,并且如果重新排序入口的话,会被改变。
如下Bootcfg示例显示的,boot loader文件路径出现在BootFilePath项中。
Bootcfg以NT设备名的方式显示文件位置中的分区名,后面紧跟boot loader文件的文件系统路径。
Boot Entries
------------
Boot entry ID: 1
OS Friendly Name: Windows Server 2003, Enterprise
OsLoadOptions: /debug /debugport=COM1 /baudrate=115200
BootFilePath: \Device\HarddiskVolume1\EFI\Microsoft\WINNT50\ia64ldr.efi
OsFilePath: \Device\HarddiskVolume3\WINDOWS
下面Nvrboot显示的示例,操作系统安装的boot loader文件路径显示在EFIOSLoaderFilePath 项中。
Nvrboot 以分区GUID后跟boot loader路径的方式显示文件位置。
1. Load identifier = Windows Server 2003, Enterprise
2. OsLoadOptions = /debug /debugport=COM1 /baudrate=115209
3. EFIOSLoaderFilePath = 006F0073-0066-0074-5C00-570049004E00 :: \EFI\Microsoft\WINNT50\ia64ldr.efi
4. OSLoaderFilePath = 04000004-5D18-3F27-0000-0000205C273F :: \Windows
在上面两例中,boot loader文件(和名为Bootxxxx的引导入口备份文件)都在EFI系统分区的WINNT50目录下(EFI\Microsoft\WINNT50)。
找出已删除引导入口的备份文件
代表性的,当引导入口被误删之后,需要找到引导入口的备份文件。
如果NVRAM中的引导入口被删除,并且操作系统安装仍然保留,那么这个安装的boot loader和引导入口备份文件仍然保留在EFI分区中该安装的目录下。
要找到被删除入口的引导入口备份文件,需要引导到EFI shell,并使用dir boot* /s命令递归的在EFI分区目录中查找备份文件。在结果中排除掉NVRAM中已有引导入口的备份文件。显示存在的引导入口的目录,使用nvrboot d (display)命令。
如果存在多个没有关联到已存在的引导入口的Bootxxxx文件,那么可以使用Nvrboot将这些备份文件都导入,然后删除不需要的入口。
识别无用的引导入口文件
不幸的是,引导入口的备份拷贝并不总是有用的。
在EFI环境中,应用程序和驱动通过分区GUID来标识磁盘分区。如果分区GUID由于某些原因改变了,那么引导入口备份中的分区GUID就不再有效,EFI boot loader也不能再用它引导系统。
下面的Bootcfg示例显示了拥有无效分区GUID的引导入口。
Boot entry ID: 4
OS Friendly Name: Windows Server 2003 - mydebug
OsLoadOptions: /debug /debugport=com1 /baudrate=115200
BootFilePath: (null)
OsFilePath: (null)
这种情况下,必须通过复制操作系统安装中的引导入口来创建新的入口,并修改掉参数。
Windows Vista的引导参数
Windows Vista引入了新的boot loader架构;新的称为引导配置数据(Boot Configuration Data (BCD))的固件无关的引导配置和存储系统;以及新的引导参数编辑工具BCDEdit(bcdedit.exe)。
Windows Vista的引导加载架构
Windows Vista包含一个新的boot loader组件,使得Windows加载更加快速和安全。传统的Windows NT boot loader——ntldr被三个组件替代:
- Windows 引导管理器 (Bootmgr.exe)
- Windows 操作系统加载器(Winload.exe)
- Windows 恢复加载器 (Winresume.exe)
在这种架构下,Windows 引导管理器是通用的并且不关心每个操作系统的具体要求,而和特定系统相关的boot loader则专门为被它们加载的系统进行优化。
当计算机具有多个引导入口,并至少有一个Windows Vista入口时,根目录下的Windows引导管理器启动系统并和用户交互。它显示出引导菜单,加载被选中的系统相关的boot loader,并将引导参数传递给boot loader。
Boot loader在每个Windows分区的根目录下都存在。当选定之后,boot loader接管引导过程并加载和引导参数一致的操作系统。
引导配置数据
在Windows Vista和之后版本Windows中,引导选项在基于BIOS和EFI的机器上都存储在引导配置数据(BCD)中。
BCD代替了基于BIOS的系统中传统的boot.ini文件。将引导参数存放在文本文件中的方式太过简单,所以在正常使用情况下也极易遭受恶意攻击。在将引导选项存放在NVRAM的基于EFI的机器中,也可以和基于BIOS的机器一样使用BCD方法编辑引导选项,从而避免直接使用Windows API或者特定工具直接访问NVRAM。
BCD为所有运行Windows Vista的计算机提供了统一的、固件无关的引导配置接口。它比以往的引导选项存储方式都要安全,因为它允许BCD存储具有保密安全装置,并且可以让管理员为引导选项管理指派权限。BCD在系统运行时和安装时的所有阶段都会起效。甚至可以在电源状态转换时调用BCD并且用它来定义系统从休眠之后唤醒时的引导过程。
你可以远程管理BCD,或者从不同于BCD存储媒介的其他媒介上启动系统,然后再管理它。这种特性对于调试和排错是极为重要的,特别是当BCD存储需要在运行CD、基于USB的存储媒介或者远程的启动修复来重建的时候。
最重要的,BCD容易使用。BCD存储和它的对象-元素(object-and-element)架构,是容易使用的。它使用GUID来精确区分引导相关的程序。
BCD新的数据格式使用了新的引导选项集合。大多数老版本Windows中使用的引导选项,例如/debug, /maxmem,和 /pae都保留下来;但是在某些情况下,他们的名字可能被修改得更符合他们的作用。关于这些引导选项的更多信息,查看BCD引导选项参考。
多重引导过程
如果多个系统被安装到计算机中,并且他们中有一个是Windows Vista或之后版本Windows, Windows引导管理器和早前版本Windows的引导模块一起处理用户交互及对选择的系统的启动。
当一个多重启动计算机被启动,会经历下面一些过程:
- Windows启动管理器显示一个引导入口菜单,包含Windows Vista和更新版本Windows的选项,以及一个较早版本(Legacy)选项。
- 如果选择的是Windows Vista 或更新的Windows,则Windows启动管理器加载这些系统特定的boot loader并把引导入口中它的参数传递给它。特定系统的boot loader使用这些引导参数加载操作系统。
-
如果选择较早版本(Legacy),Windows引导管理器启动Vista以前的基于NT内核版本Windows的引导管理器—Ntldr。从这点开始,引导进程就和Windows Vista之前的系统一样了。
如果机器中安装了数个Vista之前的Windows, Ntldr会显示由Windows Server 2003,Windows XP,Windows2000和Windows NT系统的入口组成。这个引导菜单在基于BIOS的系统上由boot.ini生成,在基于EFI的系统上根据EFI-NVRAM生成。选择了引导入口之后,Ntldr会使用相应的引导参数加载系统。
编辑Windows Vista的引导选项
编辑Windows Vista及之后版本Windows的引导选项,可以使用BCDEdit(BCDEdit.exe),一个包含在Vista中的工具。在Vista及之后的Windows中不能再使用Bootcfg或Nvrboot编辑引导选项了,尽管可以继续用他们编辑系统中其他早期Windows系统的选项。
要使用BCDEdit,必须是Administrators 组中的一员。BCDEdit 在Windows帮助和支持中有文档描述。
要编程修改Windows Vista及之后版本Windows的引导选项,可以使用Windows管理工具(WMI)针对引导选项的接口。BCD WMI接口是编程修改引导选项的最好方法。获取更多关于BCD WMI 接口的信息,查看Windows SDK文档中的Boot Configuration Data 。