电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

深入解析Windows7下的BCD管理工具


发布日期:2022/12/23
 

BCD(Boot Configuration Date)即系统引导配置数据这是从Windows Vista开始才引入的我们知道在Windows Vista/Server 中BootManager组件负责系统的初始化和引导工作而与之相匹配系统的引导数据就存储在BCD中相信大家非常关心Windows 下的BCD数据管理吧下面笔者和大家一道就这方面进行一番探讨

BCD数据管理工具

也许最常用也最熟悉的系统引导管理就是系统高级引导菜单了在Windows 下也不例外当系统发生引导故障时为了成功进入系统或者进行排错我们会选择在系统启动的过程中按下F键进入高级引导选项菜单并从这个菜单中选择一种高级启动模式进行引导尝试在此可供我们选择的引导方式主要有安全模式启用引导日志最近一次正确配置目录服务还原模式以及禁用驱动程序前面强制等需要说明的是索然这些高级模式会暂时性地修复操作系统的启动方式以帮助故障的解决和诊断但是这些模式并不会对引导配置或者BCD存储做出任何永久性的修改所以系统高级引导菜单并不是有效的BCD数据管理工具和此前的Windows系统类似在Windows 中可用于修改引导配置和管理BCD存储的工具主要有启动和故障恢复控制台系统配置使用工具(msconfigexe)以及比较高级的BCD编辑器(bcdeditexe)本文就以这三个工具为例说说BCD数据的管理(图)

BCD数据管理工具

启动和故障恢复控制台实施系统引导配置

在Windows 启动和故障恢复控制台中我们可以配置系统启动过程中的基本选项可以使用这些选项设置默认的操作系统可用操作系统选择菜单的显示时间以及在需要的时恢复选项的显示时间无论是否需要将计算机引导到不同的操作系统都可以通过优化这些设置减少系统启动所需的时间并加速系统的启动过程

依据下面的操作步骤可进入Windows 启动和故障恢复控制台右键单击桌面上的计算机图标选择属性在系统属性窗口中单击左窗格中任务下的高级系统设置链接在系统属性对话框的高级选项卡下单击启动和故障恢复选项下的设置按钮就会进入如图所示的启动和故障恢复控制台在控制台中我们可以选择默认的启动的操作系统在安装了多个操作系统的计算机上单击默认操作系统下列列表即可选择希望默认启动的操作系统如果只安装了一个系统则当前系统就是默认的启动的系统选中显示操作系统列表的时间复选框并在右侧的文本框中输入要使用的时间(以秒为单位)即可设置操作系统选择列表的显示时间为了加速系统的启动速度如果计算机中只有一个系统可以将其设置为这样就不会显示启动菜单直接引导默认系统另外启动和故障恢复控制台中可设置系统发生故障时的后续操作因为这部分内容与BCD的关系不大而且已经有作者对此做了非常深入的解析(链接是_shtml)所以就此略过(图)

启动和故障恢复控制台

系统配置工具管理系统引导配置

通过系统配置工具(msconfigexe)我们可以在Windows 中调整计算机的启动方式通常情况下高级用户使用该工具进行系统故障的排错和诊断例如作为排错的一部分可与配置计算机使用诊断启动模式只加载最基本的驱动和服务

依次点击开始运行输入msconfigexe回车后可启动系统配置工具该工具提供了很多选项应该说是我们管理BCD最方便的工具常规选项卡下可用于配置系统的启动方式以及是否需要将系统启动到排错和诊断模式下通过使用这些选项可以选择进行常规启动诊断启动或选择性启动在重启计算机并解决问题后需要再次打开系统配置工具并在常规选项卡中选中正常启动单选按钮(图)

系统配置工具(msconfigexe)

系统配置工具启动选项卡下可用于控制特定启动过程的工作方式在此我们可以配置计算机启动到某种安全启动模式下并可选择其他选项例如无GUI启动等如果在排错后发现需要保留这些设置则可以选中使所有启动设置成为永久设置复选框以便将这些设置保存到引导配置启动项中(图)

系统配置工具启动选项卡

另外启动选项页面中还有一个高级选项按钮单击该按钮可进入启动高级选项对话框在此除了可以锁定PCI检测HAL以及启用测试还可以使用高级选项实现某些特殊应用

()指定操作系统可以使用的处理器数量在多处理器的系统中通常会发生某些莫名的故障如果我们要进行排错以了解该故障是否是由此引起的可以使用该选项

()设定操作系统可以使用的内存最大数量如果我们怀疑某些系统引导问题是有安装了额外的内存引起的则可以使用该选项比如系统本来是GB的内存如果在安装了另外的一条GB内存后导致系统不能引导为了判断是否是有这条额外的内存导致了上述故障我们就可以暂时限制系统只能使用MB的内存(图)

高级启动管理

如果怀疑安装到计算机上的某个服务导致系统引导故障可以在系统配置工具常规选项卡下选择诊断或者选择性启动模式的方式进行判断如果确信是某服务导致了启动故障那么可以在服务选项卡下禁用该服务在禁用后问题不再发生应该可以确认是该服务的问题那么我们就可永久性地禁用该服务或更新该服务同理如果怀疑某个在启动时自动运行的程序导致了系统引导故障那么可以通过启用选项卡下的设置来进行排错(图)

系统配置

BCD编辑器管理系统引导配置

对于高级系统用户来说利用BCD编辑器来管理系统引导配置是最灵活的BCD编辑器(bcdeditexe)是一个高级命令行工具可用于查看和设置系统引导环境的配置不过需要主要的是在使用bededitexe对BCD进行修改之前最后做好系统的备份以免无操作造成系统引导故障下面笔者列举Windows 下bededitexe的几个应用实例

()查看BCD项

打开命令提示符在其中输入并执行bededitexe命令就会显示系统的BCD信息不过对于一般用户这些信息比较难懂笔者做以说明在计算机中包含系统和非系统的BCD存储系统的BCD存储中包含了操作系统的引导项以及相关的引导信息bededitexe工具的操作就是对系统BCD的操作由于笔者的计算机上只有一个系统如图所示其BCD存储只有两个项一个对应了Windows启动管理器一个对应了Windows启动加载器在此Windows启动管理器会调用启动加载器然后启动加载器会使用winloadexe引导Windows Windows启动管理器和Windows启动加载器对应的BCD项具有类似的属性这些属性定义了系统的BCD环境需要注意的是Windows BCD文件比Windows Vista和Windows Server多出了 recoverysequence和recoveryenabled两个属性 此外其中类似 {bacfdedcdfda}的字符串标识符以便被系统引用需要说明的是如果计算机中安装了其他Windows系统我们会看到每一个系统都有其对于的BCD项(图)

查看BCD项

()创建BCD

通过使用BCD编辑器我们可以创建非系统的BCD存储在命令行下执行下面格式的命令bcdedit /createstore storepath其中/createstore是参数表示创建BCD存储而storepath就是你希望创建非系统存储的文件的时间保存位置例如我们执行命令bcdedit /createstore d:\ctocio\bcd即可(图)

创建BCD

()导入导出BCD

利用bcdeidtexe命令我们可以导入或者导出BCD存储要导出系统的BCD存储中的内容到特定文件需要使用/export参数在命令行下执行命令bcdedit /export storepathstorepath就是用于保存系统BCD存储内容的实际文件路径例如执行命令bcdedite /export d:\ctocio\backup就会将系统的BCD信息保存到d:\ctocio\backup文件中如果要还原系统的BCD信息我们可以通过bcdeditexe的/import参数将BCD备份导入进来其命令格式为bcdedicdt /import importpath其中importpath为保存了BCD信息的文件夹的实际路径例如执行命令bcdedit /import d:\ctocio\backup就可将刚才备份的BCD信息重新导入进来(图)

导入导出BCD

()显示Windows 隐藏的BCD项目

默认情况下我们在命令行下执行bcdeditexe是不能显示所有的BCD项的Windows 隐藏了某些BCD项目如果要查看被隐藏的BCD项目我们需要执行命令打开显示开关将其显示出来假如当前系统的标识符是{bacfdedcdfda}在命令行下依次执行命令bcdedit /displayorder {bacfdedcdfda} /addfirstbcdedit /displayorder {bacfdedcdfda} /addfirst这样当我们重新执行bcdeditexe时就会显示Windows 中被隐藏的BCD项目同时当重启Windows 时就会在开机菜单中出现Ramdisk Options选项这是Windows集成的Windows Recovery Environment该选项在系统修复/恢复是非常有用(图)

显示Windows 隐藏的BCD项目

()快速添加系统菜单

安装多系统的用户往往会因为系统安装次序不够科学而造成系统启动选择菜单不全或者有误此时我们需要手动添加系统菜单项下面分别说说如何利用bcdeditexe命令添加Windows XP启动菜单项和Windows 启动菜单项

假设Windows XP系统安装在C盘在Windows 中添加其系统启动菜单项可以依次执行下面的命令或者将其保存为一个批处理文件(bat或者cmd文件)

bcdedit /create {ntldr} /d Microsoft Windows XP

bcdedit /set {ntldr} device partition=C:

bcdedit /set {ntldr} path \ntldr

bcdedit /displayorder {ntldr} /addfirst

同样我们假设Windows 安装在C盘其语言版本为简体中文版系统标识符为{bacfdedcdfda}要添加其系统启动菜单项依次执行下面的命令或者将其保存为一个批处理文件(bat或者cmd文件)

set id={bacfdedcdfda}

bcdedit /create %id% /d Windows /application osloader

bcdedit /set %id% locale zhcn

bcdedit /set %id% device partition=C:

bcdedit /set %id% osdevice partition=C:

bcdedit /set %id% path \Windows\system\winloadexe

bcdedit /set %id% inherit {bootloadersettings}

bcdedit /set %id% systemroot \windows

bcdedit /set %id% nx OptOut

bcdedit /displayorder %id% /addfirst

(图)

快速添加系统菜单

()更改系统显示顺序

如果要更改系统引导管理器中诸如Windows Windows VistaWindows Server Windows XP在操作系统选择菜单上的显示顺序我们可以通过bcdeditexe的/displayorder参数来实现其命令格式是bcdedit /displayorder id id id idn其中id是显示在第一位的操作系统对于的操作系统对应的系统标识符id是显示在第二位的操作系统对应的系统标识符依次类推比如我们执行命令bcdedit /displayorder {bacfdedcdfda} {dbedadebbeeebcfe}则第一项系统标识符对于的系统会第一个显示另外我们还可以使用/addfirst参数配合/displayorder参数设置某系统为第一项比如执行bcdedit /displayorder {bacfdedcdfda} /addfirst此外执行命令bcdedit /displayorder {bacfdedcdfda} /addlast则该系统成为最后一项(图)

更改系统显示顺序

()其他BCD管理

除了上面比较常用的BCD管理外笔者再列举几个比较有用的bcdedit命令参数执行命令bcdedit /default {dbedadebbeeebcfe}将该操作系统标识符对应才操作系统设置为默认引导系统执行bcdedit /timeout 将系统启动菜单停留的时间设置为另外在特殊情况下我们需要将从特定系统引导一次然后恢复为默认的引导顺序这是我们需要用到bcdedit的/bootsequence参数例如执行命令bcdedit /bootsequence {dbedadebbeeebcfe}这样当计算机重启时系统就会从该系统引导当下次重启计算机时就恢复从默认的系统进行引导(图)

其他BCD管理

总结上面笔者以Windows 系统为例演示了利用启动和故障恢复控制台系统配置工具BCD编辑器这三个工具配置和管理系统BCD数据的主要技术细节虽然上面的演示是在Windows 中进行的但其中大多数同样实用于Windows Vista和Windows Server 系统希望本文能够对大家有所帮助

上一篇:Windows7下安装CentOS双系统

下一篇:在笔记本中安装Windows Server 2008