Bcdedit命令详解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Bcdedit命令详解
Bcdedit命令详解
Bcdedit 位于X:\Windows\system32\ "X:"为安装vista的盘符。

储存操作指令
====================
/createstore 创建一个新的空白启动配置数据文件。

bcdedit /createstore C:\Data\BCD 创建BCD启动配置数据文件储存到“C:\DATA\”文件夹。

/export 备份启动配置数据文件。

bcdedit /export "C:\Data\BCD Backup" 备份BCD启动配置文件到“C:\Data\”文件夹,并以“BCD Backup”命名。

/import 还原启动配置数据文件。

bcdedit /import "C:\Data\BCD Backup" 从“C:\Data\”文件夹恢复BCD启动配置文件。

储存项目操作指令
====================
/copy 项目拷贝
操作系统启动项目的拷贝:
bcdedit /copy {cbd971bf-b7b8-4885-951a-fa03044f5d71} /d "Copy of entry"
/create 新建项目
创建操作系统载入程序项目的 NTLDR(Ntldr):
bcdedit /create {ntldr} /d "Earlier Windows OS Loader"
创建存储器磁碟另外的选择项项目:
bcdedit /create {ramdiskoptions} /d "Ramdisk options"
创建一个新的操作系统启动项目:
bcdedit /create /d "Windows Vista" /application osloader 创建一个新的调试器:
bcdedit /create {dbgsettings} /d "Debugger Settings"
/delete 删除项目
删除指定的操作系统项目:
bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71} 删除指定的操作系统项目但启动时不显示项目(彻底删除): bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71} /cleanup
删除指定的操作系统项目但启动时显示项目:
bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71} /nocleanup
删除操作系统载入程序项目的 NTLDR:
bcdedit /delete {ntldr} /f
项目选择操作指令
====================
/deletevalue 删除项目选择项。

删除启动管理的bootmgr选择项项目:
bcdedit /deletevalue {bootmgr} bootsequence
删除(WinPE)操作系统的数值开机项目:
bcdedit /deletevalue winpe
删除来自指定的操作的 Windows PE 数值系统开机项目:
bcdedit /deletevalue {cbd971bf-b7b8-4885-951a-fa03044f5d71} winpe
/set 设定项目选择项数值。

设定操作系统“cbd971bf-b7b8-4885-951a-fa03044f5d71”引导分区“C”:
bcdedit /set {cbd971bf-b7b8-4885-951a-fa03044f5d71} device partition=C:
指定的操作系统引导文件“ windows\ system 32\ winload.exe”: bcdedit /set {cbd971bf-b7b8-4885-951a-fa03044f5d71} path
\windows\system32\winload.exe
设定“NX”为“OptIn”:
bcdedit /set nx optin
更改系统名称
默认XP系统名称在Vista启动管理器中是"earlier version of Windows",更改:
bcdedit /set {ntldr} Deion "Windows XP Professional SP2"
默认Vista系统名称在Vista启动管理器中是"Microsoft Windows",
更改:
bcdedit /set {current} Deion "Windows Vista 5456"
输出控制指令
====================
/enum 在储存中的列表项目。

列出所有的操作系统载入程序启动项目:
bcdedit /enum OSLOADER
列出所有的启动管理项目:
bcdedit /enum BOOTMGR
列出默认的启动项目:
bcdedit /enum {default}
列出指定的操作系统启动项目:
bcdedit /enum {b38a9fc1-5690-11da-b795-e9ad3c5e0e3a} /v 列出所有活动的项目
bcdedit /enum ACTIVE /v
启动管理控制指令
====================
/bootsequence 设定启动列表顺序。

设定二个操作系统项目和启动顺序:
bcdedit /bootsequence {802d5e32-0784-11da-bd33-000476eba25f} {cbd971bf-b7b8-4885-951a- fa03044f5d71} {ntldr}
加入操作系统项目为启动列表最后项:
bcdedit /bootsequence {802d5e32-0784-11da-bd33-000476eba25f} /addlast
/default 设定默认启动项目。

设定默认启动项目:
bcdedit /default {cbd971bf-b7b8-4885-951a-fa03044f5d71} 设定默认启动操作系统程序为 NTLDR:
bcdedit /default {ntldr}
/displayorder 设定哪一个系统启动显示多启动画面。

设定二个操作系统项目和在启动管理显示命令中被建立操作系统载
入的程序 NTLDR:
bcdedit /displayorder {802d5e32-0784-11da-bd33-000476eba25f} {cbd971bf-b7b8-4885-951a-fa03044f5d71} {ntldr} 把指定的操作系统项目加入启动管理显示命令结束: bcdedit /displayorder {802d5e32-0784-11da-bd33-000476eba25f} /addlast
/timeout 设定启动暂停数值。

/toolsdisplayorder 设定命令在哪一个启动管理显示工具画面。

设定二个工具项目和内存诊断在那启动管理工具显示命令:
bcdedit /toolsdisplayorder
{802d5e32-0784-11da-bd33-000476eba25f}
{cbd971bf-b7b8-4885-951a-fa03044f5d71} {memdiag}
把指定的工具项目加入启动的结束管理工具显示命令:
bcdedit /toolsdisplayorder
{802d5e32-0784-11da-bd33-000476eba25f} /addlast
为一个启动应用程序控制紧急处理服务的指令
====================
/bootems
开启启动管理紧急处理服务:
bcdedit /bootems {bootmgr} ON
/ems
为目前的操作系统启动项目 EMS 开启:
bcdedit /ems ON
/emssettings 设定紧急处理服务参数。

设定 EMS 参数使用基本输出入系统设定:
bcdedit /emssettings BIOS
在之前基于NT的Windows系统中,Windows使用Ntldr作为Boot Loader 来启动系统,——所谓boot loader,在指在操作系统内核运行之前执行的一段小程序,系统通过它来初始化硬件设备、建立内存空间的映射图等,将系统的软硬件环境设置成一个合适的状态,为最终调用操作系统内核准备好正确的环境。

——在启动过程中,Ntldr 使用Boot.ini 文件来确定在启动/引导过程中要显示哪些操作系统选项,我们对启动选项的设置可以通过修改boot.ini文件中相应内容实现。

在Windows Vista中,微软引入了一种全新的boot loader架构,Windows Boot Manager (Bootmgr.exe)。

与Ntldr严重地依赖于硬件不同的是,Windows Vista中的新架构可以实现完整的硬件独立性,且能够与多种操作系统无缝结合,让Windows Vista的启动/引导过程更加快速与安全。

同时,将之前Windows 系统中由Boot.ini管理的内容移交给新的Boot Configuration Data (BCD : 启动设置数据),当然,也提供了新的启动选项编辑工具,BCDEdit (BCDEdit.exe),来管理启动设置。

BCDEdit : Windows Vista启动设置编辑工具
在传统的基于BIOS的计算机中,如果只安装Windows Vista,除了极早期的Windows Vista测试版本外,您将会发现 Boot.ini 文件已经彻底从系统中消失;如果系统中安装了Windows Vista和之前的WIndows 系统如Windows XP,虽然仍可找到 Boot.ini 文件,不过,这个文件只作用于那些系统,而不会对 Windows Vista的启动有任何影响。

在基于EFI (Extensible Firmware Interface : 可扩展固件接口,以后采用这种接口的PC会越来越多)的计算机中,Boot.ini 文件则更不复存在,在基于EFI的系统中,启动选项被贮存在主板的存储器中。

此时要修改启动选项,要么通过能够读写NVRAM的工具如NvrBoot,要么使用上文提到的BCDEdit。

由此可见,在Windows Vista中,想要再像之前Windows XP中那样通过一个简单的文本编辑器来修改Boot.ini的方式来管理启动选项
已经不可能了,要对启动设置进行修改,只能使用命令格式相对要复杂得多的BCDEdit。

此外,微软也在Windows Vista 中提供了可通过WMI (Windows Management Instrumentation : Windows管理规范)调用的 BCD 类,通过它可以用编程的方式修改BCD数据,不过,相信对绝大多数用户而言,这更是不可能的任务。

启动BCDEdit
需要注意的是,BCDEdit不是一个运行于图形界面下的程序,而是一个命令行工具,该文件(Bcdedit.exe) 位于“\Windows\System32”目录下。

要执行BCDEdit,首先应进入命令行窗口,并要将操作用户并提升至管理员权限。

在命令行窗口中,转到系统目录如“C:/windows/system32”下,然后输入“ bcdedit” 即可。

BCDEdit命令简介
通过命令行工具Bcdedit,我们可以添加、删除及修改BCD (Boot Configuration Data)中的对象。

在BCD中,每个对象均具有唯一的GUID (Globally Unique Identifier : 全局唯一标识符),如系统中的每块
硬盘、每个分区的GUID (全局唯一标识符)均不相同。

在BCD中,硬盘或分区的GUID可分为如下几类:
{legacy} :指存在上一代Windows系统如Windows XP的硬盘
或分区;{default} : 默认操作系统所在硬盘或分区;
{current} : 当前硬盘或分区;
{c34b751a-ff09-11d9-9e6e-0030482375e7} : 类似于这个格式的GUID 指其他安装了操作系统的硬盘或分区。

(注:这只是个例子,具体数字根据硬盘或分区参数会有相应变化,但均会类似于{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}格式)。

BCDEDIT命令
bcdedit /? : 显示命令帮助
bcdedit.exe /? CREATESTORE : 显示命令参数“ CREATESTORE ”的详细信息,——当然,“ CREATESTORE ”也只是示例,使用中对其他任何可用参数也均可使用类似格式查看该参数的具体说明。

bcdedit 或 bcdedit /enum all : 显示Windows Vista系统当前的启动设置数据,这时系统中所有安装了操作系统的硬盘或分区均会显示相应的 GUID 标识,如 {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 。

使用BCDEdit备份与恢复启动选项
在对Windows Vista的启动选项修改之前,最好先对其备份,以防万一操作失误或其他故障导致系统无法启动。

bcdedit /export “D:\BCD Backup\Bcd Backup” : 将启动设置备份到D盘“BCD Backup” 目录下;
bcdedit /import “D:\BCD Backup\Bcd Backup” : 恢复之前备份在D 盘“BCD Backup”目录下启动选项。

使用BCDEdit修改启动菜单选项
作为一种良好的操作习惯,在对Windows Vista的启动选项进行任何修改前,首先要对BCD中的启动选项进行备份,相应的命令上页我们已介绍过,在此不再赘述;其次,使用“bcdedit ”或“ bcdedit /enum all ”来查看系统中硬盘或分区的正确 GUID 标识,并将其记录下来。

毕竟,BCDEdit只是一款命令行工具,我们操作时需手动输入类似“{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}”这样的长字符串时,很容易出错,而这往往会导致Windows Vista启动失败。

下面详细介绍使用BCDEdit修改启动选项的常用命令格式:
bcdedit /set {legacy} Description “Windows XP Professional SP2” : 修改上一代操作系统在启动菜单中的显示内容,比如说我们也可将其修改为“Vista天地专用XP SP2”之类。

注意,命令中的引号不可省略;
bcdedit /set {current} description “Windows Vista Build 5270 x86″ : 修改当前启动硬盘或分区上的操作系统在启动菜单中的显示内
容。

注意,当前分区上的操作系统可能为Windows Vista,也可以是其他系统,当然,命令中的引号也不可省略;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} description “Windows Vista Build 5270 x64” : 修改安装于其他硬盘或分区的
系统在启动菜单中的显示内容,使用这项命令时一定要注意该硬盘/分
区的GUID输入正确,相应的GUID可通过“ bcdedit ”或“ bcdedit /enum all ”命令查看。

bcdedit /default {current} : 将当前启动硬盘/分区中的操作系统设置为默认启动的系统;
bcdedit /default {5189b25c-5558-4bf2-bca4-289b11bd29e2} : 设置指定GUID上的操作系统为默认启动的系统;
bcdedit /default {legacy} : 设置上一代Windows 系统Windows XP
为默认启动的系统;
bcdedit /displayorder : 设置启用菜单中各项的显示顺序,如:bcdedit.exe /displayorder {legacy} {current}
将首先显示Windows XP,然后再显示默认启动的系统如Windows Vista; bcdedit /timeout 15 : 将默认的启动菜单显示时间30秒更改为15秒,当然,您可以将这个时间修改为任何您希望的数值。

使用BCDEdit修复硬盘/分区结构错误
在对启动选项的修改过程中,如添加或删除某个硬盘/分区时,可
能会因操作中的不慎导致硬盘/分区结构的混乱,除了采用恢复修改前
的备份方法外,也可以首先使用BCDEdit来尝试一下修复。

具体方法如下:
X:\>X:\boot\fixntfs.exe -lh -all :这时的“ X: ”指引导目录“boot” 所在的硬盘/分区;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} device partition=X: :将指定GUID的分区设为启动分区。

注意,这里的“ X: ”的GUID须与指定值不同,同时,运行该命令后,必须接着运行下面的osdevice命令;
bcdedit /set {5189b25c-5558-4bf2-bca4-289b11bd29e2} osdevice partition=X: :将指定GUID的分区设为启动分区。

注意,这个命令
必须与上面的device命令配对使用,同时“ X: ”的GUID须与指定值不同。

在Vista/2008下,我们通过msconfig的“启动”选项卡可调整启动时的参数,也可通过系统属性-高级-启动和故障恢复对引导菜单进行调整。

但这些项目和XP是类似的。

有些功能在XP下非得修改boot.ini才能完成,比如添加一个启动项、修改启动菜单里的文字等,这些在VISTA下就只有用bcdedit了。

这是一个命令行工具,必须以管理员身份运行。

只要
有点英语基础的人,看到命令都能猜出是什么含义,可是微软的帮助就是那么让人费解。

其实对我们有用的参数也就那么几个。

一、备份和恢复启动配置文件
为减少像我这样的麻烦,大家在平时可以把启动配置数据导出来,恢复就很简单了。

你也可以自己建一个配置文件,然后把启动项加入其中,以后就可以去别的电脑上用了。

例如:
bcdedit /createstore "C:\1.bcd" 创建一个名为C:\1.bcd的启动
配置文件bcdedit /export "C:\2.dat" 把启动配置导出到C:\2.dat bcdedit /import "C:\3.abc" 从C:\3.abc导入启动配置
二、标识符
每一个bcdedit中的启动项都有一个唯一的标识符,格式类似于Windows的CLSID,如{791d518d-3526-11de-8dab-b4cd0d61d150}。

但有几个特殊的标识符是我们需要记住的。

{default} 默认启动项
{ntldr} 基于NTLDR启动的系统,如NT4.0、XP、2003
{current} 当前的Vista启动项
{bootmgr} Windows启动管理器,这个一般不用管,会自动生成{memdiag} Windows内存诊断
直接运行bcdedit.exe就可以列出所有的启动项了,大家可以把标识符记一下。

以下的命令如果要修改自己创建的启动配置文件而不是引导菜单,只要用/store指定文件名即可。

如:bcdedit /store "C:\1.bcd" /create {ntldr} /d "XP"
三、创建和修改启动项目
创建一个XP的启动项:bcdedit /create {ntldr} /d "XP"
创建一个Vista的启动项:bcdedit /create /d "Vista" /application osloader
复制启动项:bcdedit /copy 要复制的标识符/d 描述
/d指定启动菜单里的文字,可以自己起,不要忘了引号。

/application指定启动项的“应用程序类型”,创建非XP类型的启动项时才需要。

常用的有两种:osloader(操作系统加载器)和bootsector(启动扇区)。

一般来说VISTA都是从某个文件开始启动的,应该指定为“操作系统加载器”类型,如果是要从某个文件里读取启动扇区(如各种版本的LINUX启动文件、XP引导WinMe的bootsect.dos文件等),就应该指定为“启动扇区”类型了。

第二条和第三条命令运行后系统会给出一个新的标识符,请记下,修改时要用到。

删除启动项:bcdedit /delete 标识符。

但要注意,删除XP的启动项时,应加上/f参数:bcdedit /delete {ntldr} /f
设置启动菜单显示时间:bcdedit /timeout 数值,单位为秒。

设置启动项显示顺序:bcdedit /displayorder 标识符。

如:
先显示XP再显示VISTA:bcdedit /displayorder {ntldr} {current} 另外,用/addfirst和/addlast可以把启动项加入菜单第一位和最后一位,如bcdedit /displayorder {ntldr} /addlast
用/toolsdisplayorder可以设定启动菜单里工具的显示顺序。

设置默认启动项:bcdedit /default 标识符。

如:bcdedit /default {current} 把当前的VISTA系统设成默认启动。

四、列出启动项
我们可以用/enum列出启动项,格式为bcdedit /enum 应用程序类型[/v]。

其中“应用程序类型”我们只需要知道常见的两种:active和all。

active 指的是启动菜单上有的项目,all则是所有项目。

/v是一个可选参数,使用它后,在列表的“Windows Boot Manager”部分的默认系统和显示顺序中,将以完整标识符(就是一长串的那种)代替显示原有的{default}、{ntldr}等特殊标识符。

一般不需要使用。

我们刚才提到的直接运行bcdedit等同于运行bcdedit /enum active。

那么这个有什么用呢?举个例子,假设你装了几个VISTA引导类型的系统(比如2008和7、VISTA HB和U等),后来重装了其中一个或几个,
那你有可能会发现启动菜单上并没有把你的这些VISTA全显示出来,你还得通过bcdedit手动添加缺少的系统。

而通过上面的介绍大家可以看到,创建和修改新的VISTA启动项的参数时要用到系统生成的一长串标识符,而不是{current}这么简单。

万一在修改参数的时候你忘了标识符怎么办呢?由于我们一般都习惯到最后才设置引导菜单上的显示顺序,你直接用bcdedit列启动项是看不出来的。

这时用
bcdedit /enum all就可以看到引导菜单上没有的启动项了。

五、设置启动项的参数
在启动项列表中,大家可以看到每一项的下面都有很多参数,这些命令就可以设置参数。

基本格式如下:
设置参数:bcdedit /set 标识符参数名参数值
删除参数:bcdedit /deletevalue 标识符参数名
如果不指定标识符,则默认为当前系统,即{current}。

我们需要掌握的几个参数如下:
device:启动设备,如bcdedit /set {ntldr} device partition=C:设置XP启动分区为C盘。

对于{bootmgr}来说也是C盘,对于VISTA 来说只要把C 换成VISTA所在分区即可。

osdevice:系统启动设备,只在VISTA启动项里有效,一般设成和device 一样。

path:启动文件路径,XP是\ntldr,Vista是\Windows\system32\winload.exe
description:启动菜单里显示的文字。

nx:DEP设置,类似于XP,可设为OptIn、OptOut。

这个,大家也可以列出启动项看一下。

在菜单里选择了要启动的系统后,bootmgr会从device指定的启动设备去寻找path中的启动文件,从而启动对应的操作系统。

清楚了这一点,我们配置启动项就不困难了。

下面再举一个例子:Vista和Win ME双启动。

大家知道Win ME是微软推出的9X内核终结版,很多人说它是垃圾,其实Win ME不管从哪方面说都比98好(用过才知道)。

它可以说是9X 的精品,是当时最好的家用娱乐操作系统,既保留了98的良好兼容性又有不错的娱乐性能和软硬件支持。

我对WinMe感情还是很深的,它陪伴我走过了8年。

家里电脑还在用着它。

不过,现在WinME已经过时了,我举例的目的只是告诉大家启动扇区文件的引导方法。

原理:装过WinMe和XP双系统的朋友都知道,C盘根目录下有
一个bootsect.dos文件,这就是WinMe的引导扇区。

boot.ini文件里有一句C:\=***,其实完整的语句是:C:\bootsect.dos=***。

当在启动菜单上选择WinMe时,系统就会从bootsect.dos读取引导扇区从而启动WinMe。

再后来,这种方法就被广泛用于一些XP下的DOS 工具箱软件中。

实际上,根据这个原理,我们完全可以用Vista的引导程序启动WinMe。

但由于在WinMe下无法运行Vista的安装程序,所以我们得先把WinMe 的引导扇区提取出来。

方法是:先安装好WinMe,然后在WinMe下打
开DOS窗口,运行DEBUG,再依次输入以下命令:
-L 100 2 0 1
-N C:\bootsect.dos
-R CX
200
-W
-Q
说明:第一行把C盘的引导扇区读到内存里,第二行指定保存的文件名,第三、四行指定要写入200H个字节(即512D)的数据,第五行把引导扇区写入文件,第六行退出。

接着大家可以给它加上相应的属性,防止误操作破坏文件。

然后用Vista光盘启动,把Vista装在另一个分区里,装好后你会发现WinMe无法启动了。

下一步我们就要修改引导菜单。

创建一个WinMe的引导项并加入菜单中。

上面我们说过提取出来的是WinMe的引导扇区,所以应该创建为引导扇区类型:bcdedit /create /d "Windows ME" /application bootsector并记下系统给出的标识符(下面以ID代替)
bcdedit /displayorder ID /addlast
给启动项设置启动文件:
bcdedit /set ID device partition=C:
bcdedit /set ID path \bootsect.dos
请注意这里的路径应该以实际情况为准,启动分区(即引导扇区文件存放的分区)应该以Vista下的盘符为准(Vista从光盘启动安装时会强行把所选分区改为C盘,所以盘符会不一样)
用bcdedit.exe编辑BCD的用法简单说明如下:
BCDEDIT - 启动配置数据存储编辑器
Bcdedit.exe 命令行工具用于修改启动配置数据存储。

启动配置数据存储包含启动配置参数并
控制操作系统的启动方式。

这些参数以前位于
Boot.ini 文件中(在基于 BIOS 的操作系统中)或位于稳定
RAM 项中(在基于可扩展固件接口的操作系统中)。

可以
使用 Bcdedit.exe 在启动配置数据存储中添加、删除、
编辑和附加项。

有关命令和选项的详细信息,请键入bcdedit.exe /? 。

例如,若要显示有关 /createstore 命令的详细信息,请键入:
bcdedit.exe /? /createstore。

相关文档
最新文档