在NT60系列作业系统(Windows 8/7/Vista/2008)中的一个命令行工具
基本介绍
- 中文名:系统启动选单编辑器
- 外文名:Bcdedit
- 性质:命令行工具
- 作用:建立和重新配置bootloader
- 作业系统:Windows 8/7/Vista/2008
简介
在NT60系列作业系统(Windows 8/7/Vista/2008)中的一个命令行工具,用于建立和重新配置bootloader,后者无须再使用boot.ini档案。也就是说,使用BCDEdit这个工具,能够修改NT60 系列系统的启动选单
在之前基于NT50系列(Windows XP/2000/2003)的Windows系统中,Windows使用Ntldr作为Boot Loader来启动系统, 但在新的NT60系列系统中,微软引入了一种全新的boot loader架构, Windows Boot Manager (Bootmgr.exe)。与Ntldr严重地依赖于硬体不同的是,NT60中的新架构可以实现完整的硬体独立性,且能够与多种作业系统无缝结合,让NT60的启动/引导过程更加快速与安全。同时,将之前Windows 系统中由Boot.ini管理的内容移交给新的Boot Configuration Data (BCD : 启动设定数据),当然,也提供了新的启动选项编辑工具,BCDEdit (BCDEdit.exe),来管理启动设定。
——所谓boot loader,在指在核心运行之前执行的一段小程式,系统通过它来初始化硬体设备、建立记忆体空间的映射图等,将系统的软硬体环境设定成一个合适的状态,为最终调用作业系统核心準备好正确的环境。——在启动过程中,Ntldr 使用Boot.ini 档案来确定在启动/引导过程中要显示哪些作业系统选项,我们对启动选项的设定可以通过修改boot.ini档案中相应内容实现。Windows NT60 (Windows 7/Vista/2008)与早期 NT52 系列系统(Windows XP/2000/2003)启动的对比 在传统的基于BIOS的计算机中,如果只安装 NT60 系列作业系统(Windows 7/Vista/2008),您将会发现 Boot.ini 档案已经彻底从系统中消失;如果系统中安装了 NT60 和之前的 Windows 系统,如 NT52 系列作业系统 (Windows XP/2000/2003),虽然仍可找到 Boot.ini 档案,不过,这个档案只作用于那些系统,而不会对 NT60 的启动有任何影响。
而在基于EFI (Extensible Firmware Interface : 可扩展固件接口,以后採用这种接口的PC会越来越多 )的计算机中,Boot.ini 档案则更不复存在,在基于EFI的系统中,启动选项被贮存在主机板的存储器中。此时要修改启动选项,要幺通过能够读写NVRAM的工具如NvrBoot,要幺使用上文提到的BCDEdit。
由此可见,在NT60中,想要再像之前 NT52 中那样通过一个简单的文本编辑器来修改Boot.ini(或用NT52自带工具 Bootcfg)的方式来管理启动选项已经不可能了,要对启动设定进行修改,只能使用命令格式相对要複杂得多的BCDEdit。
此外,微软也在 NT60 中提供了可通过WMI (Windows Management Instrumentation : Windows管理规范)调用的 BCD 类,通过它可以用编程的方式修改BCD数据。不过,相信对绝大多数根本不会接触编程的用户而言,这更是不可能的任务。
使用注意
1.工具性质
需要注意的是,BCDEdit不是一个运行于图形界面下的程式,而是一个命令行工具,该档案 (Bcdedit.exe) 位于 “\Windows\System 32”目录下。
2.启动
要执行BCDEdit,首先应进入命令行视窗,并要将操作用户提升至管理员许可权。另外,该工具依赖于参数,如果不带参数,则不能正常使用。
在命令行视窗中,转到系统目录如 “C:/windows/system32”下,然后输入“bcdedit <参数>” 即可。也可直接在任意目录运行,因为System32目录本身在环境变数“Path”的範围内。
3.BCDEdit命令核心
(1)帮助
bcdedit /? : 显示全部的命令帮助(都只是概述)。
bcdedit.exe /? <命令> : 显示指定命令参数的详细信息(无需带斜槓)。使用中对其他任何可用参数也均可使用本命令格式查看该参数的具体说明。
(2)Enum
通过命令行工具Bcdedit,我们可以添加、删除及修改BCD (Boot Configuration Data)中的对象。在BCD中,每个对象均具有唯一的 GUID (Globally Unique Identifier : 全局唯一标识符),如系统中的每块硬碟、每个分区的GUID (全局唯一标识符)均不相同。
在BCD中,启动载入器的GUID可分为如下几类:
{ntldr}: 指存在上代NT50系列作业系统(Windows XP/2000/2003)的硬碟或分区;
{default}: 默认所在硬碟或分区;
{current}: 当前硬碟或分区;
{<GUID>}: 类似于这个格式的GUID指其他安装了作业系统的硬碟或分区。
(注:相应的GUID可通过“ bcdedit ”或“ bcdedit /enum all ”命令查看。这样会显示BCD当前的启动设定数据,包含了所有在BCD记录中的作业系统,均能显示其GUID,用户可以此作更改启动数据的参考。)
(3)set
BCDEdit / set命令用于在Windows启动配置数据存储(BCD)中设定启动项选项值。使用bcdedit / set命令来配置特定的启动项元素,如核心调试器设定,数据执行保护(DEP)和处理器的地址扩展(PAE)选项,载入备用硬体抽象层(HAL)和核心档案等。你可以在为Windows Vista,Windows 7和更高版本的Windows测试和调试您的驱动程式时使用这些启动项的选项。
(4)保险措施(使用BCDEdit备份与恢复启动选项)
在对Windows NT60的启动选项修改之前,最好先对其备份,以防万一操作失误或其他故障导致系统无法启动。
bcdedit /export <目录> : 将启动设定备份到指定的目录下;
bcdedit /import <目录> : 恢复之前备份在指定目录下启动选项。
注:当需要还原备份的启动选项时,应仔细检查备份的启动选项是否对应于自己所需要的,否则重新设定会比较麻烦。
修改选项
作为一种良好的操作习惯,在对Windows Vista的启动选项进行任何修改前,首先要对BCD中的启动选项进行备份,相应的命令上页我们已介绍过,在此不再赘述;其次,使用“bcdedit ”或“ bcdedit /enum all ”来查看系统中硬碟或分区的正确 GUID 标识,并将其记录下来。毕竟,BCDEdit只是一款命令行工具,我们操作时需手动输入类似“”这样的长字元串时,很容易出错,而这往往会导致Windows Vista启动失败。
下面详细介绍使用BCDEdit修改启动选项的常用命令格式:
bcdedit /set {ntldr} Description “Windows XP Professional SP2” : 修改上一代在启动选单中的显示内容,比如说我们也可将其修改为“Vista天地de专用XP SP2”之类。注意,命令中的引号不可省略;作业系统
bcdedit /set {current} description “Windows Vista Build 5270 x86″ : 修改当前启动硬碟或分区上的作业系统在启动选单中的显示内容。注意,当前分区上的作业系统可能为Windows Vista,也可以是其他系统,当然,命令中的引号也不可省略;
bcdedit /set {<GUID>} description “Windows Vista Build 5270 x64” : 修改安装于其他硬碟或分区的系统在启动选单中的显示内容,使用这项命令时一定要注意该硬碟/分区的GUID输入正确,相应的GUID可通过“ bcdedit ”或“ bcdedit /enum all ”命令查看。
bcdedit /default {current} :将当前启动硬碟/分区中的作业系统设定为默认启动的系统;
bcdedit /default {<GUID>} :设定指定GUID上的作业系统为默认启动的系统;
bcdedit /default {ntldr} :设定上一代Windows 系统Windows XP为默认启动的系统;
bcdedit /displayorder : 设定启用选单中各项的显示顺序,如:
bcdedit.exe /displayorder {ntldr} {current} :将首先显示Windows XP,然后再显示默认启动的系统如Windows Vista;
bcdedit /timeout 15 :将默认的启动选单显示时间30秒更改为15秒,当然,您可以将这个时间修改为任何您希望的数值。
使用BCDEdit修复硬碟/分区结构错误
在对启动选项的修改过程中,如添加或删除某个硬碟/分区时,可能会因操作中的不慎导致硬碟/分区结构的混乱,除了採用恢复修改前的备份方法外,也可以首先使用BCDEdit来尝试一下修复。
具体方法如下:
X:\>X:\boot\fixntfs.exe -lh -all : 这时的“ X: ”指引导目录 “boot” 所在的硬碟/分区;
bcdedit /set device partition=X: : 将指定GUID的分区设为启动分区。注意,这里的“ X: ”的GUID须与指定值不同,同时,运行该命令后,必须接着运行下面的osdevice命令;
bcdedit /set osdevice partition=X: : 将指定GUID的分区设为启动分区。注意,这个命令必须与上面的device命令配对使用,同时“ X: ”的GUID须与指定值不同。
Bcdedit命令详解,自定义Vista启动管理项
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 /d "Copy of entry"
/create 新建项目
创建作业系统载入程式项目的 NTLDR(Ntldr):
bcdedit /create /d "Earlier Windows OS Loader"
创建存储器磁碟另外的选择项项目:
bcdedit /create /d "Ramdisk options"
创建一个新的作业系统启动项目:
bcdedit /create /d "Windows Vista" /application osloader
创建一个新的调试器:
bcdedit /create /d "Debugger Settings"
/delete 删除项目
删除指定的作业系统项目:
bcdedit /delete
删除指定的作业系统项目但启动时不显示项目(彻底删除):
bcdedit /delete /cleanup
删除指定的作业系统项目但启动时显示项目:
bcdedit /delete /nocleanup
删除作业系统载入程式项目的 NTLDR:
bcdedit /delete /f
项目选择操作指令
====================
/deletevalue 删除项目选择项。
删除启动管理的bootmgr选择项项目:
bcdedit /deletevalue bootsequence
删除(WinPE)作业系统的数值开机项目:
bcdedit /deletevalue winpe
删除来自指定的操作的 Windows PE 数值系统开机项目:
bcdedit /deletevalue winpe
/set 设定项目选择项数值。
设定作业系统“cbd971bf-b7b8-4885-951a-fa03044f5d71”引导分区“C”:
bcdedit /set device partition=C:
指定的作业系统引导档案“ windows\ system 32\ winload.exe”:
bcdedit /set path \windows\system32\winload.exe
设定“NX”为“OptIn”:
bcdedit /set nx optin
更改名称
默认XP系统名称在Vista启动管理器中是"earlier version of Windows",更改:
bcdedit /set Description "Windows XP Professional SP2"
默认Vista系统名称在Vista启动管理器中是"Microsoft Windows",更改:
bcdedit /set Description "Windows Vista 5456"
输出控制指令
====================
/enum 在储存中的列表项目。
列出所有的作业系统载入程式启动项目:
bcdedit /enum OSLOADER
列出所有的启动管理项目:
bcdedit /enum BOOTMGR
列出默认的启动项目:
bcdedit /enum
列出指定的作业系统启动项目:
bcdedit /enum
/v 列出所有活动的项目
bcdedit /enum ACTIVE /v
启动管理控制指令
====================
/bootsequence 设定启动列表顺序。
设定二个作业系统项目和启动顺序:
bcdedit /bootsequence {cbd971bf-b7b8-4885-951a- fa03044f5d71}
加入作业系统项目为启动列表最后项:
bcdedit /bootsequence /addlast
/default 设定默认启动项目。
设定默认启动项目:
bcdedit /default
设定默认启动作业系统程式为 NTLDR:
bcdedit /default
/displayorder 设定哪一个系统启动显示多启动画面。
设定二个作业系统项目和在启动管理显示命令中被建立作业系统载入的程式 NTLDR:
bcdedit /displayorder
把指定的作业系统项目加入启动管理显示命令结束:
bcdedit /displayorder /addlast
/timeout 设定启动暂停数值。
/toolsdisplayorder 设定命令在哪一个启动管理显示工具画面。
设定二个工具项目和记忆体诊断在那启动管理工具显示命令:
bcdedit /toolsdisplayorder
把指定的工具项目加入启动的结束管理工具显示命令:
bcdedit /toolsdisplayorder /addlast
为一个启动应用程式控制紧急处理服务的指令
====================
/bootems
开启启动管理紧急处理服务:
bcdedit /bootems ON
/ems
为目前的作业系统启动项目 EMS 开启:
bcdedit /ems ON
/emssettings 设定紧急处理服务参数。
设定 EMS 参数使用基本输出入系统设定:
bcdedit /emssettings BIOS
帮助档案
Windows 7下Bcdedit的原版帮助档案
BCDEDIT - 启动配置数据存储编辑器
Bcdedit.exe 命令行工具用于修改启动配置数据存储。
启动配置数据存储包含启动配置参数并控制作业系统的启动方式。这些参数以前位于
Boot.ini 档案中(在基于 BIOS 的作业系统中)或位于稳定 RAM 项中(在基于可扩展
固件接口的作业系统中)。可以使用 Bcdedit.exe 在启动配置数据存储中添加、删除、
编辑和附加项。
有关命令和选项的详细信息,请键入 bcdedit.exe /? <command>。
例如,若要显示有关 /createstore 命令的详细信息,请键入:
bcdedit.exe /? /createstore
有关本帮助档案中按字母顺序排列的主题列表,请运行 "bcdedit /? TOPICS"。
对存储执行的命令
================================
/createstore 新建空的启动配置数据存储。
/export 将系统存储的内容导出到档案。以后可以使用该档案还原系统
存储的状态。
/import 使用 /export 命令创建的备份档案来还原系统存储的状态。
/sysstore 设定系统存储设备(仅影响 EFI 系统,在重新启动后不再有效,
且仅用于系统存储设备不确定的情况下)。
对存储中的项执行的命令
===========================================
/copy 複製存储中的项。
/create 在存储中新建项。
/delete 删除存储中的项。
/mirror 创建存储中项的镜像。
运行 bcdedit /? ID 可获得有关这些命令使用的标识符的信息。
对项选项执行的命令
======================================
/deletevalue 删除存储中的项选项。
/set 设定存储中的项选项值。
运行 bcdedit /? TYPES 可获得这些命令使用的数据类型的列表。
运行 bcdedit /? FORMATS 可获得有效数据格式的列表。
控制输出的命令
============================
/enum 列出存储中的项。
/v 命令行选项,完整显示项标识符,而不是使用已知标识符的名称。
单独使用命令 /v 可完整显示活动类型的项标识符。
单独运行 "bcdedit" 等同于运行 "bcdedit /enum ACTIVE"。
控制启动管理器的命令
======================================
/bootsequence 为启动管理器设定一次性启动序列。
/default 设定启动管理器将使用的默认项。
/displayorder 设定启动管理器显示多重引导选单的顺序。
/timeout 设定启动管理器的逾时值。
/toolsdisplayorder 设定启动管理器显示工具选单的顺序。
控制启动应用程式紧急管理服务的命令
==========================================================================
/bootems 启用或禁用启动应用程式的紧急管理服务。
/ems 启用或禁用作业系统项的紧急管理服务。
/emssettings 设定全局紧急管理服务参数。
控制调试的命令
==============================
/bootdebug 启用或禁用启动应用程式的启动调试。
/dbgsettings 设定全局调试程式参数。
/debug 启用或禁用作业系统项的核心调试。
/hypervisorsettings 设定虚拟机监控程式的参数。
--------------------------------------------------------------
bcdedit /createstore <filename>
此命令新建空的启动配置数据存储。创建的存储不是系统存储。
<filename> 指定启动配置数据存储的档案名称。如果档案名称包含空格,则必须
将其括在引号("")中。
示例:
下列命令创建指定的存储档案:
bcdedit /createstore C:\DATA\BCD
--------------------------------------------------------------
bcdedit /export <filename>
此命令将系统存储的内容导出到档案。以后可以使用此档案还原系统存储的状态。
此命令仅对系统存储有效。
<filename> 将用作导出目标的档案名称。如果档案名称包含空格,则必须将其
括在引号("")中。
示例:
下列命令将系统存储导出到指定的档案:
bcdedit /export "C:\Data\BCD Backup"
--------------------------------------------------------------
bcdedit /import <filename> [/clean]
此命令使用以前使用 /export 命令生成的备份数据档案
还原系统存储的状态。在进行导入前,
将删除系统存储中的所有现有项。此命令
仅对系统存储有效。
<filename> 将导入系统存储的档案的名称。
如果档案名称包含空格,则必须将其
括在引号("")中。
/clean 指定应删除所有现有固件启动项
(仅影响 EFI 系统)。
示例:
以下命令将指定的档案导入系统存储。
bcdedit /import "C:\Data\BCD Backup" /clean
--------------------------------------------------------------
bcdedit /sysstore <devicename>
此命令用于设定系统存储设备。对于 EFI 系统,仅在系统存储设备不确定的
情况下,此命令才有效。此设定在重新启动后不再有效。
<devicename> 要设定为系统存储设备的系统分区的名称。
该设备必须是系统分区。
示例:
下列命令将系统存储设备设定为指定设备:
bcdedit /sysstore C:
--------------------------------------------------------------
此命令创建指定启动项的副本。
bcdedit [/store <filename>] /copy {<id>} /d <description>
<filename> 指定要使用的存储。如果未指定此选项,则使用系统存储。
有关详细信息,请运行 "bcdedit /? store"。
<id> 指定要複製的项的标识符。
有关标识符的详细信息,请运行 "bcdedit /? ID"。
<description> 指定要用于新项的描述。
示例:
下列命令创建指定作业系统启动项的副本:
bcdedit /copy {cbd971bf-b7b8-4885-951a-fa03044f5d71} /d "Copy of entry"
--------------------------------------------------------------
此命令在启动配置数据存储中创建新项。如果指定已知的标识符,则无法指定
/application、/inherit 和 /device 选项。如果未指定 <id>,或 <id> 未知,
则必须指定一个 /application、/inherit 或 /device 选项。
bcdedit /create [{<id>}] [/d <description>] [/application <apptype> |
/inherit [<apptype>] | /inherit DEVICE | /device]
<id> 指定新项要使用的标识符。有关标识符的详细信息,
请运行 "bcdedit /? ID"。
<description> 指定要套用于新项的描述。
/application <apptype> 指定新项必须是应用程式项。<apptype> 指定应用程式
类型。<apptype> 可以是下列类型之一:
BOOTSECTOR
OSLOADER
RESUME
STARTUP
如果使用其他应用程式类型而不是这些类型,
则还必须指定已知的标识符。
/inherit [<apptype>] 指定新项必须是继承项,<apptype> 指定应用程式类型。
如果未指定 <apptype>,则任何项都可以继承该项。
如果已指定,则 <apptype> 可以是下列类型之一:
BOOTMGR
BOOTSECTOR
FWBOOTMGR
MEMDIAG
NTLDR
OSLOADER
RESUME
修饰符防止 <apptype> 的应用程式项继承该继承项 。
/inherit DEVICE 指定新项必须是继承项,且该项只能由设备选项的项
继承。
/device 指定新项必须是附加设备选项的项。
示例:
下列命令创建基于 NTLDR 的 OS 载入程式项(Ntldr):
bcdedit /create {ntldr} /d "Earlier Windows OS Loader"
下列命令创建 RAM 磁碟附加选项的项:
bcdedit /create {ramdiskoptions}
下列命令创建新的作业系统启动项:
bcdedit /create /d "Windows Vista" /application osloader
下列命令创建新的调试程式设定项:
bcdedit /create {dbgsettings}
--------------------------------------------------------------
此命令删除启动配置数据存储中的项。
bcdedit [/store <filename>] /delete <id> [/f] [/cleanup | /nocleanup]
<filename> 指定要使用的存储。如果未指定
此选项,则使用系统存储。
有关详细信息,请运行 "bcdedit /? store"。
<id> 指定要删除的启动项的标识符。
有关标识符的详细信息,请运行 "bcdedit /? ID"。
/f 删除指定的项。如果没有此选项,
则 Bcdedit 将无法删除任何具有
已知标识符的项。
/cleanup 删除指定的项,并从
显示顺序中删除该项。并将从存储中删除
任何其他涉及到所删除项的项目。
删除 OS 载入器项时,如果任何
其他 OS 载入器没有引用该项,
还将删除从休眠中恢复的关联项。
如果未指定 /nocleanup,则认为使用此选项。
/nocleanup 删除指定的项,但不从显示顺序
中删除该项。
示例:
下列命令删除存储中指定的作业系统项,并从显示顺序中删除该项:
bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71}
下列命令删除存储中指定的作业系统项,并从显示顺序中删除该项:
bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71} /cleanup
下列命令删除存储中指定的作业系统项,但不从显示顺序中删除该项:
bcdedit /delete {cbd971bf-b7b8-4885-951a-fa03044f5d71} /nocleanup
下列命令删除存储中基于 NTLDR 的 OS 载入器项:
bcdedit /delete {ntldr} /f
--------------------------------------------------------------
该命令创建指定启动项的镜像。
bcdedit [/store <filename>] /mirror {<id>}
<filename> 指定要使用的存储。如果未指定该选项,则使用系统存储。
有关详细信息,请运行 "bcdedit /? store"。
<id> 指定要镜像的项目的标识符。
有关标识符的详细信息,请运行 "bcdedit /? ID"。
示例:
以下命令创建指定作业系统启动项的镜像:
bcdedit /mirror {cbd971bf-b7b8-4885-951a-fa03044f5d71}
--------------------------------------------------------------
标识符
很多 Bcdedit 命令需要标识符。标识符可以唯一标识存储中包含的项。标识符採取
全局唯一标识符的形式,或称为 GUID。GUID 具有以下格式,其中每个“x”代表
一个十六进制数。
{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
例如:
{d2b69192-8f14-11da-a31f-ea816ab185e9}
破折号(-)的放置以及 GUID 开头和结尾的括弧是必需的。
已知标识符可以标识多个项。如果某个项具有已知标识符,则 BCDedit 将其显示
在输出中,除非使用了 /v 命令行开关。
有关详细信息,请运行 "bcdedit /? /v"。
已知标识符如下所示:
{bootmgr} 指定 Windows 启动管理器项。
{fwbootmgr} 指定固件启动管理器项,特别是在实现可扩展固件
接口(EFI)规格的系统上。
{memdiag} 指定记忆体诊断应用程式项。
{ntldr} 指定可用于启动早于 Windows Vista 版本的操作
系统的 OS 载入程式(Ntldr)。
{current} 指定与当前运行的作业系统的作业系统启动项
对应的虚拟标识符。
{default} 指定与启动管理器默认应用程式项对应的虚拟
标识符。
{ramdiskoptions} 包含启动管理器所需的其他的 RAM 磁碟设备
选项。
{dbgsettings} 包含可由任意启动应用程式项继承的全局调试
程式设定。
{emssettings} 包含可由任意启动应用程式项继承的全局紧急
管理服务设定。
{badmemory} 包含可由任意启动应用程式项继承的全局 RAM
故障列表。
{globalsettings} 包含所有启动应用程式项应继承的全局设定的
集合。
{bootloadersettings} 包含所有 Windows 启动载入程式应用程式项
应继承的全局设定的集合。
{resumeloadersettings} 包含所有 Windows 从休眠状态恢复应用程式项
应继承的全局设定的集合。
{hypervisorsettings} 包含可由任意 OS 载入程式项继承的虚拟机
监控程式设定。
--------------------------------------------------------------
此命令从启动配置数据存储的项中删除数据元素。
bcdedit [/store <filename>] /deletevalue [<id>] <datatype>
<filename> 指定要使用的存储。如果未指定此选项,则使用系统存储。
有关详细信息,请运行 "bcdedit /? store"。
<id> 指定要修改的项的标识符。如果未指定,则使用 {current}。
有关标识符的详细信息,请运行 "bcdedit /? ID"。
<datatype> 指定要从指定项中删除的选项。
有关数据类型的详细信息,请运行 "bcdedit /? TYPES"。
示例:
下列命令删除启动管理器项中的 bootsequence 选项:
bcdedit /deletevalue {bootmgr} bootsequence
下列命令删除当前作业系统启动项的 Windows 预安装环境(WinPE)值:
bcdedit /deletevalue winpe
下列命令删除指定作业系统启动项的 Windows PE 值:
bcdedit /deletevalue {cbd971bf-b7b8-4885-951a-fa03044f5d71} winpe
--------------------------------------------------------------
此命令设定引导配置数据存储中的项选项值。
bcdedit [/store <filename>] /set [{<id>}] <datatype> <value> [ /addfirst | /addlast | /remove ]
<filename> 指定要使用的存储。如果未指定此选项,则使用系统存储。
有关详细信息,请运行 "bcdedit /? store"。
<id> 指定要修改的项的标识符。如果未指定,则使用 {current}。
有关标识符的详细信息,请运行 "bcdedit /? ID"。
<datatype> 指定将创建或修改的选项数据类型。
有关数据类型的详细信息,请运行 "bcdedit /? TYPES"。
<value> 指定应分配给该选项的值。<value> 的格式取决于指定的数据类型。
有关数据格式的详细信息,请运行 "bcdedit /? FORMATS"。
/addfirst 仅当数据类型是对象列表时才能使用此开关。
将指定的项标识符添加到列表的顶部。
如果已指定此开关,则只能指定一个项标识符。
如果所指定的标识符已在列表中,请将它移到列表顶部。
/addlast 仅当数据类型是对象列表时才能使用此开关。
将指定的项标识符添加到列表的结尾。
如果已指定此开关,则只能指定一个项标识符。
如果所指定的标识符已在列表中,它将被移到列表结尾。
/remove 仅当数据类型是对象列表时才能使用此开关。
请从列表中删除指定的项标识符。
如果已指定此开关,则只能指定一个项标识符。
如果此标识符不在列表中,则操作无效。
如果正在删除最后一项,则此数据类型值也将被删除。
示例:
对于指定的作业系统项,下列命令将应用程式设备设定到 C: 分区:
注意: 使用 "hd_partiton=" 语法显式禁用自动 VHD 检测,并
创建与启动虚拟机兼容的项目,例如,
bcdedit /store Footcd /set {default} device hd_partition=F:
对于指定的作业系统项,下列命令将作业系统设备设定到 VHD 档案(C:\vdisks\vdisk01.vhd)
bcdedit /set {cbd971bf-b7b8-4885-951a-fa03044f5d71} osdevice
vhd=[C:]\vdisks\disk01.vhd
对于指定的作业系统项,下列命令将应用程式路径设定到 \windows\system32\winload.exe:
bcdedit /set {cbd971bf-b7b8-4885-951a-fa03044f5d71} path
\windows\system32\winload.exe
对于当前的作业系统启动项,下列命令将 NX 策略设定到 OptIn。
bcdedit /set nx optin
--------------------------------------------------------------
类型
/set 和 /deletevalue 命令要求将 <datatype> 作为参数。
<datatype> 唯一标识数据格式及值的意义。
数据类型是使用名称或自定义类型标识的。下面列出了
名称及其数据格式(在括弧中)以
及自定义类型的简短描述。如果未指定格式,则描述列出可用于该类型的文本值。有关
数据格式的详细信息,请运行 "bcdedit /? formats"。
以下类型对所有项都是有效的。有关特定项(如启动管理器项或 Windows OS 载入器项)
特有的类型的信息,请参阅此帮助主题末尾。
项
=======
DESCRIPTION (字元串) 定义项描述。
PATH (字元串) 定义应用程式路径。
DEVICE (设备) 定义应用程式所驻留的设备。
INHERIT (列表) 定义要继承的项的列表。
有关设备对象的附加类型的信息,请运行 "bcdedit /? TYPES DEVOBJECT"。
有关特定应用程式的附加类型的信息,
请运行 "bcdedit /? TYPES <apptype>",其中 <apptype> 为以下其中一项:
BOOTAPP 启动应用程式。这些类型也套用于启动管理器、
记忆体诊断应用程式、Windows OS 载入器和恢复
应用程式。
BOOTMGR 启动管理器。
BOOTSECTOR 启动扇区应用程式。
CUSTOMTYPES 自定义类型。
DEVOBJECT 设备对象附加选项。
FWBOOTMGR 固件启动管理器
MEMDIAG 记忆体诊断应用程式
NTLDR 以前的 Windows OS 版本附带的 OS 载入器
OSLOADER Windows Vista OS 载入器
RESUME 恢复应用程式
--------------------------------------------------------------
以下选项描述了与 /set 命令共同使用的 <datatypes> 所必需的数据格式。
所需的格式取决于使用 /set 命令指定的 <datatypes>。有关与
每个 <datatype> 关联的格式的详细信息,请运行 "bcdedit /? TYPES"。
布尔 布尔值。以下值与 TRUE 对应:
1、ON、YES、TRUE
以下值与 FALSE 对应:
0、OFF、NO、FALSE
设备 设备可以是以下其中一个类型:
BOOT
PARTITION=<drive>
HD_PARTITION=<drive>
FILE=[<parent>]<path>
RAMDISK=[<parent>]<path>,<optionsid>
VHD=[<parent>]<path>,<locatecustom>
这些类型的选项为:
<drive> 带有冒号并且尾部不带反斜槓的驱动器号。
<parent> (必需)可以是 BOOT、LOCATE 或带有冒号的驱动器号。
方括弧是语法的文本部分,而不表示是可选项。
<path> 从父设备根开始的档案路径(或 .wim 档案)。
<optionsid> 设备选项的标识符,该选项项包含 RAM 磁碟的
系统部署映像(SDI)选项。这通常
是 {ramdisksdioptions}.
<locatecustom> 提供用于在 VHD 中找到设备的可选元素。
设备的默认位置元素是其应用程式路径
(osdevice 的位置元素为 systemroot)。
必须使用自定义元素语法来指定自定义值
(请参阅 -help 类型的自定义类型),
例如: locate=custom:22000002。
id 项标识符,它引用启动配置数据存储中的项。有关标识符的详细信息,
请运行 "bcdedit /? ID"。
整数 64 位整数类型。可以使用枚举的值设定某些整数类型。
整数列表 以空格分隔的一个或多个 64 位整数的列表。
该列表不应置于引号中。
列表 项标识符列表。它包含以空格分隔的一个或多个项标识符。
该列表不应置于引号中。
字元串 文本字元串。如果它包含空格,则应该置于引号("")中。
--------------------------------------------------------------
此命令列出存储中的项。/enum 命令为默认值,因此,运行没有参数的 "bcdedit" 等同于
运行 "bcdedit /enum ACTIVE"。
bcdedit [/store <filename>] /enum [<type> | <id>] [/v]
<filename> 指定要使用的存储。如果未指定此选项,则使用系统存储。有关详细信息,
请运行 "bcdedit /? store"。
<type> 指定要列出的项的类型。<type> 可以是下列类型之一:
ACTIVE 启动管理器显示顺序中的所有项。这是默认值。
FIRMWARE 所有固件应用程式。
BOOTAPP 所有启动环境应用程式。
BOOTMGR 启动管理器。
OSLOADER 所有作业系统项。
RESUME 全部从休眠项中恢复。
INHERIT 所有继承项。
ALL 所有项。
<id> 指定要列出的项的标识符。如果已提供标识符,则仅列出指定的对象。
有关标识符的详细信息,请运行 "bcdedit /? ID"。
/v 完整显示项标识符,而不是使用已知标识符的名称。
示例:
下列命令列出所有作业系统载入器启动项:
bcdedit /enum OSLOADER
下列命令列出所有启动管理器项:
bcdedit /enum BOOTMGR
下列命令仅列出默认的启动项:
bcdedit /enum {default}
下列命令仅列出指定的作业系统启动项:
bcdedit /enum {b38a9fc1-5690-11da-b795-e9ad3c5e0e3a}
--------------------------------------------------------------
通常,任何已知的项标识符会用方便记忆的缩写形式来替换。指定 /v 为命令行参数
可阻止此替换,并完整显示所有标识符。单独运行 "bcdedit /v" 等同于
运行 "bcdedit /enum ACTIVE /v"。
bcdedit /v
示例:
下列命令列出系统存储中的活动项及所有显示完整的项标识符。
bcdedit /enum ACTIVE /v
--------------------------------------------------------------
此命令设定启动管理器使用的一次性启动序列。
bcdedit /bootsequence <id> [...] [ /addfirst | /addlast | /remove ]
<id> [...] 指定组成启动序列的标识符列表。必须至少指定一个标识符,
且必须使用空格分隔标识符。有关标识符的详细信息,请运
行 "bcdedit /? ID"。
/addfirst 将指定的项标识符添加到启动序列的顶部。如果已指定此参
数,则只能指定一个项标识符。如果列表中已存在该标识符,
则将其移动到列表顶部。
/addlast 将指定的项标识符添加到启动序列的末尾。如果已指定此参
数,则只能指定一个项标识符。如果列表中已存在该标识符,
则将其移动到列表末尾。
/remove 从启动序列中删除指定的项标识符。如果已指定此参数,则
只能指定一个项标识。如果该标识符不在列表中,则该操作
不起作用。如果删除最后一项,则启动序列值将会从启动管
理器项中删除。
示例:
下列命令设定启动管理器一次性启动序列中的两个 OS 项和基于 NTLDR 的 OS 加
载器:
bcdedit /bootsequence {802d5e32-0784-11da-bd33-000476eba25f}
{cbd971bf-b7b8-4885-951a-fa03044f5d71} {ntldr}
下列命令将指定的 OS 项添加到启动管理器一次性启动序列的末尾:
bcdedit /bootsequence {802d5e32-0784-11da-bd33-000476eba25f} /addlast
--------------------------------------------------------------
此命令设定逾时过期时启动管理器将使用的默认项。
bcdedit /default <id>
<id> 指定逾时过期时将用作默认项的启动项的标识符。
有关标识符的详细信息,请运行 "bcdedit /? ID"。
示例:
下列命令将指定项设定为默认的启动管理器项:
bcdedit /default {cbd971bf-b7b8-4885-951a-fa03044f5d71}
下列命令将基于 NTLDR 的 OS 载入器设定为默认项:
bcdedit /default {ntldr}
--------------------------------------------------------------
此命令设定启动管理器使用的显示顺序。
bcdedit /displayorder <id> [...] [ /addfirst | /addlast | /remove ]
<id> [...] 指定组成显示顺序的标识符列表。必须至少指定一个标识符,且必须使用
空格分隔标识符。有关标识符的详细信息,请运行 "bcdedit /? ID"。
/addfirst 将指定的项标识符添加到显示顺序的顶部。如果已指定此参数,则只能指定
一个项标识符。如果列表中已存在指定的标识符,则将其移动到列表顶部。
/addlast 将指定的项标识符添加到显示顺序的末尾。如果已指定此参数,则只能指定
一个项标识符。如果列表中已存在指定的标识符,则将其移动到列表末尾。
/remove 从显示顺序中删除指定的项标识符。如果已指定此参数,则只能指定
一个项标识符。如果该标识符不在列表中,则该操作不起作用。如果删除
最后一项,则显示顺序值将会从启动管理器项中删除。
示例:
下列命令设定启动管理器显示顺序中的两个 OS 项以及基于 NTLDR 的 OS 载入器:
bcdedit /displayorder {802d5e32-0784-11da-bd33-000476eba25f}
{cbd971bf-b7b8-4885-951a-fa03044f5d71} {ntldr}
下列命令将指定的 OS 项添加到启动管理器显示顺序的末尾:
bcdedit /displayorder {802d5e32-0784-11da-bd33-000476eba25f} /addlast
--------------------------------------------------------------
此命令设定启动管理器选择默认项以前等待的时间,以秒为单位。
有关设定默认项的详细信息,请运行 "bcdedit /? default"。
bcdedit /timeout <timeout>
<timeout> 指定启动管理器选择默认项以前等待的时间,以秒为单位。
示例:
下列命令将启动管理器 <timeout> 设定为 30 秒:
bcdedit /timeout 30
--------------------------------------------------------------
bcdedit /toolsdisplayorder <id> [...] [ /addfirst | /addlast | /remove ]
此命令将设定显示工具选单时启动管理器使用的显示顺序。
<id> [...] 指定组成工具显示顺序的标识符的列表。至少必须指定一
个标识符,标识符之间必须用空格隔开。有关标识符的详
细信息,请运行 "bcdedit /? ID"。
/addfirst 将指定的项标识符添加到工具显示顺序顶部。如果指定此
开关,则只能指定单个项标识符。如果指定的标识符已经
存在于列表中,则将其移动到列表顶部。
/addlast 将指定的项标识符添加到工具显示顺序末尾。如果指定此
开关,则只能指定单个项标识符。如果指定的标识符已经
存在于列表中,则将其移动到列表末尾。
/remove 将指定的项标识符从工具显示顺序中删除。如果指定此开
关,则只能指定单个项标识符。如果列表中不存在该标识
符,则操作无效。如果正在删除最后一个项,则工具显示
顺序值将从启动管理器项中删除。
示例:
以下命令在启动管理器的工具显示顺序中设定了两个工具项及记忆体诊断:
bcdedit /toolsdisplayorder {802d5e32-0784-11da-bd33-000476eba25f}
{cbd971bf-b7b8-4885-951a-fa03044f5d71} {memdiag}
以下命令将指定的工具项添加到启动管理器的工具显示顺序末尾:
bcdedit /toolsdisplayorder {802d5e32-0784-11da-bd33-000476eba25f} /addlast
--------------------------------------------------------------
此命令启用或禁用指定项的紧急管理服务。
bcdedit /bootems [<id>] { ON | OFF }
<id> 指定要修改的项的标识符。儘管此命令适用于任何项,但仅对启动应用程式有效。
示例:
下列命令启用启动管理器的紧急管理服务:
bcdedit /bootems {bootmgr} ON
--------------------------------------------------------------
此命令启用或禁用指定作业系统启动项的紧急管理服务。
bcdedit /ems [<id>] { ON | OFF }
<id> 指定要修改的项的标识符。只能指定“Windows 启动载入器”项。如果未指定,则
使用 {current}。有关标识符的详细信息,请运行 "bcdedit /? ID"。
示例:
下列命令启用当前作业系统启动项的紧急管理服务:
bcdedit /ems ON
--------------------------------------------------------------
此命令设定系统的全局紧急管理服务设定。Emssettings 不会对任何特定启动项
启用或禁用紧急管理服务。
bcdedit /emssettings [ BIOS ] | [ EMSPORT:<port> | [EMSBAUDRATE:<baudrate>] ]
BIOS 指定系统对紧急管理服务配置使用 BIOS 设定。这只能在 BIOS 提供支持紧急管理
服务的系统上运行。
<port> 指定要用作紧急管理服务连线埠的串列连线埠。此选项不应与 BIOS 选项一起指定。
<baudrate> 指定紧急管理服务使用的串列波特率。此命令不应与 BIOS 选项一起指定。
<baudrate> 是可选项,默认值为 9,600 波特。
示例:
下列命令将紧急管理服务参数设定为使用 BIOS 设定:
bcdedit /emssettings BIOS
下列命令将紧急管理服务参数设定为使用 com2: 115,200 波特。
bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
--------------------------------------------------------------
此命令启用或禁用指定启动项的启动调试程式。儘管此命令适用于任何项,
但仅对启动应用程式有效。
bcdedit /bootdebug [<id>] { ON | OFF }
<id> 指定要修改的项的标识符。有关标识符的详细信息,请运行 "bcdedit /? ID"。
示例:
下列命令为当前作业系统启动项的 Windows 作业系统载入器启用启动调试:
bcdedit /bootdebug ON
下列命令禁用 Windows 启动管理器的启动调试:
bcdedit /bootdebug {bootmgr} OFF
--------------------------------------------------------------
此命令设定或显示系统的全局调试程式设定。
此命令不会启用或禁用任何特定启动项的调试程式。
若要启用或禁用特定启动项的调试程式,请使用
"bcdedit /debug < identifier> ON"。有关标识符的
详细信息,请运行"bcdedit /? ID"。
若要设定单个全局调试程式设定,请使用
"bcdedit /set {dbgsettings} <type> <value>"。
有关有效类型的信息,请运行 "bcdedit /? TYPES"。
bcdedit /dbgsettings [ <debugtype> [DEBUGPORT:<port>] [BAUDRATE:<baud>]
[CHANNEL:<channel>] [TARGETNAME:<targetname>]
/start <startpolicy> /noumex ]
<debugtype> 指定调试程式的类型。<debugtype> 可以是 SERIAL、1394
或 USB 之一。
<port> 对于 SERIAL 调试,指定要用作调试连线埠
串列连线埠。这是可选设定。
<baud> 对于 SERIAL 调试,指定用于调试的
波特率。这是可选设定。
<channel> 对于 1394 调试,指定用于调试的
1394 通道。
<targetname> 对于通用串列汇流排(USB)调试,指定用于调试的
USB 目标名称。
/start <startpolicy> 对于所有调试程式类型,此选项会指定
调试程式启动策略。 <startpolicy> 可以是下列策略之一:
ACTIVE
AUTOENABLE
DISABLE.
如果未指定,则默认值为 ACTIVE。
/noumex 如果指定,这将导致核心调试程式忽略任何
用户模式例外。
示例:
下列命令显示当前的全局调试程式设定:
bcdedit /dbgsettings
下列命令设定全局调试程式设定在 com1 上以 115,200 波特
进行串列调试:
bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200
下列命令设定全局调试程式设定使用通道 23
进行 1394 调试:
bcdedit /dbgsettings 1394 CHANNEL:23
下列命令设定全局调试程式设定使用目标名称 DEBUGGING
进行 USB 调试:
bcdedit /dbgsettings USB TARGETNAME:DEBUGGING
--------------------------------------------------------------
此命令启用或禁用指定启动项的核心调试程式。
bcdedit /debug [<id>] { ON | OFF }
<id> 指定要修改的项的标识符。只能指定 Windows 启动载入器项。如果未指定,
则使用 {current}。有关标识符的详细信息,请运行 "bcdedit /? ID"。
示例:
下列命令启用当前 Windows 作业系统启动项的核心调试:
bcdedit /debug ON
下列命令禁用指定作业系统项的核心调试:
bcdedit /debug {cbd971bf-b7b8-4885-951a-fa03044f5d71} OFF
--------------------------------------------------------------
此命令用于设定或显示系统的虚拟机监控程式设定。
此命令不为任何特定的 OS 载入程式项启用或禁用
虚拟机监控程式调试程式。若要为特定的 OS 载入程式项启用或禁用虚拟机
管理程式调试程式,请使用 "bcdedit /set <identifier> HYPERVISORDEBUG ON"。
有关标识符的信息,请运行 "bcdedit /? ID"。
若要设定单个虚拟机监控程式调试程式设定,请使用
"bcdedit /set {hypervisorsettings} <type> <value>"。有关有效类型
的信息,请运行 "bcdedit /? TYPES"。
bcdedit /hypervisorsettings [ <debugtype> [DEBUGPORT:<port>] [BAUDRATE:<baud>]
[CHANNEL:<channel>] ]
<debugtype> 指定调试程式的类型。<debugtype> 可以是
SERIAL 或 1394 之一。
<port> 对于 SERIAL 调试,指定要用作
调试连线埠的串列连线埠。
<baud> 对于 SERIAL 调试,指定用于
调试的波特率。
<channel> 对于 1394 调试,指定用于
调试的 1394 通道。
示例:
以下命令用于显示当前虚拟机监控程式设定:
bcdedit /hypervisorsettings
以下命令用于将虚拟机监控程式调试程式设定设定为通过 COM1 进行
串列调试,波特率为 115,200:
bcdedit /hypervisorsettings SERIAL DEBUGPORT:1 BAUDRATE:115200
以下命令用于将虚拟机监控程式调试程式设定设定为使用通道 23
进行 1394 调试:
bcdedit /hypervisorsettings 1394 CHANNEL:23
-----------------------------------------------------------------