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

1、BCD数据管理工具

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

2、用“启动和故障恢复”控制台实施系统引导配置

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

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

3、用“系统配置工具”管理系统引导配置

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

依次点击“开始”→“运行”输入msconfig.exe回车后可启动“系统配置工具”,该工具提供了很多选项,应该说是我们管理BCD最方便的工具。在“常规”选项卡下可用于配置系统的启动方式,以及是否需要将系统启动到排错和诊断模式下。通过使用这些选项,可以选择进行常规启动、诊断启动或选择性启动。

在重启计算机并解决问题后,需要再次打开系统配置工具,并在“常规”选项卡中选中“正常启动”单选按钮。(图3)

图3 系统配置工具(msconfig.exe)

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


    图4 “系统配置工具”的“启动”选项卡
另外,在“启动”选项页面中还有一个“高级选项”按钮,单击该按钮可进入“启动高级选项”对话框。在此,除了可以锁定PCI、检测HAL以及启用 测试,还可以使用高级选项实现某些特殊应用。

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

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

图5 高级启动管理

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

图6 系统配置
4、用“BCD编辑器”管理系统引导配置

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

(1).查看BCD项

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

图7 查看BCD项

(2).创建BCD

通过使用BCD编辑器,我们可以

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

图8 创建BCD
  (3).导入、导出BCD

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

图9 导入、导出BCD

(4).显示Windows 7隐藏的BCD项目

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

图10 显示Windows 7隐藏的BCD项目
(5).快速添加系统菜单

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

假设Windows XP系统安装在C盘,在Windows 7中添加其系统启动菜单项可以依次执行下面的命令或者将其保存为一个批处理文件(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 7安装在C盘,其语言版本为简体中文版,系统标识符为{ba50c1f0-3752-11de-90d5-cdf8d52a3222},要添加其系统启动菜单项依次执行下面的命令或者将其保存为一个批处理文件(bat或者cmd文件)。

set id={ba50c1f0-3752-11de-90d5-cdf8d52a3222}

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

bcdedit /set %id% locale zh-cn

bcdedit /set %id% device partition=C:

bcdedit /set %id% osdevice partition=C:

bcdedit /set %id% path \Windows\system32\winload.exe

bcdedit /set %id% inherit {bootloadersettings}

bcdedit /set %id% systemroot \windows

bcdedit /set %id% nx OptOut

bcdedit /displayorder %id% /addfirst

(图11)

图11 快速添加系统菜单

    (6).更改系统显示顺序

如果要更改系统引导管理器中诸如Windows 7、Windows Vista、Windows Server 2008、Windows XP在操作系统选择菜单上的显示顺序,我们可以通过bcdedit.exe的“/displayorder”参数来实现。其命令格式是“bcdedit /displayorder id1 id2 id3 ... idn”,其中id1是显示在第一位的操作系统对于的操作系统对应的系统标识符,id2是显示在第二位的操作系统对应的系统标识符,依次类推。比如我们执行命令“bcdedit /displayorder {ba50c1f0-3752-11de-90d5-cdf8d52a3222} {d6be0d13-413a-11de-b285-b6ee0ebcf10e}”则第一项系统标识符对于的系统会第一个显示。另外,我们还可以使用“/addfirst”参数配合“/displayorder”参数设置某系统为第一项,比如执行“bcdedit /displayorder {ba50c1f0-3752-11de-90d5-cdf8d52a3222} /addfirst”。此外执行命令“bcdedit /displayorder {ba50c1f0-3752-11de-90d5-cdf8d52a3222} /addlast”则该系统成为最后一项。(图12)

图12 更改系统显示顺序

(7).其他BCD管理

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

图13 其他BCD管理

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

bcdedit /createstore bcdwolf
bcdedit /store c:\bcdwolf /create {ntldr} /d "Wolf XP"
bcdedit /store c:\bcdwolf /create /d "Wolf Vista" /application osloader
bcdedit /store c:\bcdwolf /create {bootmgr} /d "Wolf Boot Manager"
bcdedit /store c:\bcdwolf /enum all
bcdedit /store c:\bcdwolf /set {bootmgr} device partition=c:
bcdedit /store c:\bcdwolf /set {ntldr} device partition=c:
bcdedit /store c:\bcdwolf /set {ntldr} path \ntldr
bcdedit /store c:\bcdwolf /set {882e394a-f543-11db-8ee8-00105ccdeb8f} device partition=d:
bcdedit /store c:\bcdwolf /set {882e394a-f543-11db-8ee8-00105ccdeb8f} path \windows\system32\winload.exe
bcdedit /store c:\bcdwolf /displayorder {ntldr} /addlast
bcdedit /store c:\bcdwolf /displayorder {882e394a-f543-11db-8ee8-00105ccdeb8f} /addlast

bcdedit /store c:\bcdwolf /set {882e394a-f543-11db-8ee8-00105ccdeb8f} osdevice partition=d:
bcdedit /store bcdwolf /set {882e394a-f543-11db-8ee8-00105ccdeb8f} systemroot \windows
bcdedit /store bcdwolf
bcdedit /store bcdwolf /timeout 30

你可以将文件BCD导入系统BCD
bcdedit /import c:\bcdwolf
你也可以备份系统BCD到文件
bcdedit /export e:\bcdbak

set id={6f37abb4-c304-11df-9a57-fd184207b197}
bcdedit /createstore c:\bcdwolf
bcdedit /store c:\bcdwolf  /set {6f37abb4-c304-11df-9a57-fd184207b197} /d "Windows 7 old" /application osloader
bcdedit /store c:\bcdwolf /set {6f37abb4-c304-11df-9a57-fd184207b197} locale zh-cn
bcdedit /store c:\bcdwolf /set %id% device partition=C:
bcdedit /store c:\bcdwolf /set %id% osdevice partition=C:
bcdedit /store c:\bcdwolf /set %id% path \Windows.old\Windows\system32\winload.exe
bcdedit /store c:\bcdwolf /set %id% inherit {bootloadersettings}
bcdedit /store c:\bcdwolf /set %id% systemroot \Windows.old\Windows
bcdedit /store c:\bcdwolf /set %id% nx OptOut
bcdedit /store c:\bcdwolf /displayorder %id% /addfirst

bcdedit /store c:\bcdwolf /default {6f37abb4-c304-11df-9a57-fd184207b197}
bcdedit /displayorder {6f37abb4-c304-11df-9a57-fd184207b197} /addfirst

bcdedit  /set {6f37abb4-c304-11df-9a57-fd184207b197} systemroot \Windows.old\Windows

转载于:https://my.oschina.net/YcOk14itqTKB/blog/8024

win7 bcdedit相关推荐

  1. linux修改BCD文件,关于BCDEdit 命令的使用

    1, BCD 介绍 在Win7中与之前的版本的引导系统不同,微软引入了一种全新的boot loader架构, Windows Boot Manager (Bootmgr.exe).与之前通过Ntldr ...

  2. 关于BCDEdit 命令的使用

    1, BCD 介绍 在Win7中与之前的版本的引导系统不同,微软引入了一种全新的boot loader架构, Windows Boot Manager (Bootmgr.exe).与之前通过Ntldr ...

  3. bcdedit添加win7启动项

    公司的电脑是日文win7系统,安装在C盘. 后来有需求,在E盘安装了中文win7,只是偶尔用用. 后来日语系统出了问题,重新格式化C盘,重装了日文系统,中文系统也就进不去了. 现在突然要用中文系统了, ...

  4. Win7下的修改grub工具bcdedit

    1,首先可以列出启动项信息用bcdedit(也可用bcdedit /enum) 2,看看帮助信息,其实所有命令用法都在里面讲得很详细 3,常用的有 bcdedit  /delete  {id} 删除不 ...

  5. windows 7编辑启动菜单 bcdedit linux,WIN7系统BCDEDIT常用命令及使用实例

    BCDEDIT是从Vista开始引入的启动配置数据管理工具,命令行工具用于修改启动配置数据存储,可以使用Bcdedit.exe在启动配置数据存储中添加.删除.编辑和附加存储项,适应Vista/Wind ...

  6. 使用硬盘,安装双系统,Win7+CentOS

    我用那个U盘装了很多次都不行,都是说找不到文件.最后就找了一篇博客看如何安装双系统,最后发现原来可以用硬盘安装的.经过5个多小时终于完成了.^-^. 1.首先是分区,可以使用Window7自带的磁盘管 ...

  7. VMware调试.【转】VMware+Windgb+Win7 内核驱动调试

    ZC:我遇到的问题:com_1 怎么都不成功,记起来 貌似原来也遇到过这个问题,看了一下 VMware里面创建的是 "串行端口 2",于是 将 "com_1"改 ...

  8. 删除Win7隐藏的系统分区

    删除Win7隐藏的系统分区  有一台SONY VAIO VPCEA28EC小本,发现原装的分区为: 第1个分区:隐藏分区,13GB,用于存放系统恢复文件 第2个分区:隐藏分区,100MB,用于存放启动 ...

  9. win7电脑恢复系统设置或计算机点不了,Win7系统电脑开机就提示需要启动修复的解决方法...

    原标题:Win7系统电脑开机就提示需要启动修复的解决方法 在Win7系统中自身拥有错误修复机制,这个机制能够保证我们在系统出现小错误的时候自动修复,是一个非常不错的功能.但在有些时候,比如一些特别小的 ...

最新文章

  1. 2019年机器学习市场潜力大盘点(附27份资料完整版)
  2. linux 常用find命令
  3. 爬虫python代码-Python爬虫教程:200行代码实现一个滑动验证码
  4. OpenDesktop 1.0开放桌面操作系统光盘启动安装过程详细图解
  5. 跟我学大数据分析:多维度数据分析报告
  6. 一个类实现多个接口的demo
  7. 3个可以写进简历的京东AI NLP项目实战
  8. springmvc与ajax交互常见问题
  9. 计算机网络第五版思维导图大全集
  10. vue项目结构目录简介
  11. http请求 302解决方法
  12. 计算机应用技术专业课程视频,微视频技术在计算机专业课程教学中的应用研究...
  13. 长短期记忆人工神经网络(LSTM)网络学习资料
  14. Spring事件发布机制
  15. 群晖(docker图形化界面)使用 SpeedTest 测速
  16. fooview辅助功能 shell_列出所有Bash Shell内置命令的方法示例
  17. 学长冷月带你怒刷LeetCode之反转链表
  18. POJ 2349 Arctic Network (MST中的第K长路)
  19. 【经验】短接 Flash 解决二次量产金士顿 DTI G2 4GB U盘(群联PS2251-39)问题
  20. 运筹说 第63期|论文速读之无人机车辆路径问题

热门文章

  1. 使用 matplotlib处理彩色图像
  2. win10“网络属性”选项卡空白怎么办
  3. 那些年,我开发过的软件
  4. 威联通 php升级,威联通折腾篇十七:Docker 安装的 NextCloud 升级、备份及恢复
  5. 电流测试c语言算法,电流检测电路设计方案汇总(六款模拟电路设计原理图详解)...
  6. 计算机表格设置宽度,word表格大小调整固定单元格大小设置——想象力电脑应用...
  7. 迷惑新手的IOS开发问题
  8. C#,欧拉数(Eulerian Number)的算法与源代码
  9. 计算机一直在启动界面进不去怎么办,Win7系统开机一直停留在“Windows正在启动”界面怎么办...
  10. GDAL综合整理--7:GDAL实用工具简介