bcdedit.exeWindows 启动配置数据(BCD)命令行管理工具,用户态控制台前端工具,本身不直接读写 BCD 存储的原始二进制文件,调用底层 BCD 相关 Win32 API,操作 BCD = Boot Configuration Data,启动配置数据库 存储(BCD Store)。
BCDEdit 命令行选项 | Microsoft Learn
bcdedit.exe 分析框架
程序路径:
C:\Windows\System32\bcdedit.exe,Windows 启动配置数据(BCD)命令行管理工具;定位:用户态控制台前端工具,本身不直接读写 BCD 存储的原始二进制文件,调用底层 BCD 相关 Win32 API,操作 BCD 存储(BCD Store)。
适用:Vista / Win7 / Win10 / Win11;替代旧版 boot.ini 引导配置。
一、底层原理
BCD = Boot Configuration Data,启动配置数据库,是注册表 hive 格式的独立存储文件,存放引导菜单、启动项、内核参数、调试、安全启动、VHD/WIM 启动等配置。 bcdedit.exe 本质:控制台 CLI 封装层,解析命令行参数 → 调用 bcd.dll 提供的 BCD 管理 API,由 bcd.dll 完成 BCD store 的加载、对象枚举、读写、删除、导出导入。
核心内部执行逻辑
- 解析命令行参数(
/create//set//copy//delete//enum); - 参数合法性校验、权限检查(修改 BCD 需要管理员权限);
- 调用
bcd.dllAPI,打开目标 BCD 存储(系统 BCD 存储默认位置:- EFI 固件启动:
\EFI\Microsoft\Boot\BCD(ESP 分区) - Legacy BIOS 启动:
boot\BCD(活动分区)
- EFI 固件启动:
- bcd.dll 内部操作 BCD hive(和注册表 hive 同格式,使用配置管理器 CM 内核组件);
- 读取 / 修改 BCD 对象、元素、属性;
- 将结果格式化输出到控制台;
- 关闭 BCD 存储句柄,释放资源。
关键区分:
✅ bcdedit.exe:命令行 UI,只做参数解析与打印输出
✅ bcd.dll:真正实现 BCD 存储读写的核心库
✅ ntoskrnl 配置管理器 CM:内核层加载、解析 BCD hive 二进制
❌ bcdedit.exe 不直接操作磁盘扇区,不直接解析 BCD 原始二进制
BCD 内部模型:
- Store(存储)
- Object(对象:启动应用、引导管理器、内存测试等)
- Element(元素:每个配置项,如
device、osdevice、path、timeout、safe boot)
二、依赖文件(dumpbin /dependents bcdedit.exe)
| 文件 | 角色 | 依赖类型 |
|---|---|---|
| bcd.dll | BCD 核心 API 库,最核心依赖,完成 BCD 存储读写 | 强核心依赖 |
| kernelbase.dll | 基础句柄、文件 IO、内存管理、错误码 | 强依赖 |
| kernel32.dll | 控制台输出、进程基础 API | 强依赖 |
| advapi32.dll | 安全权限、注册表 /hive 相关底层调用(bcd.dll 间接依赖) | 间接依赖 |
| ntdll.dll | 原生系统调用,bcd.dll 最终通过 ntdll 进入内核 CM | 底层间接依赖 |
| user32.dll | 弱依赖,极少 UI,仅部分消息辅助 | 弱依赖 |
备注:
- bcdedit.exe 不直接依赖 bootmgr /bootmgfw.efi;这些是引导程序,属于配套组件,不是 PE 导入表依赖。
- BCD hive 本身由内核
ntoskrnl.exe的配置管理器 CM 负责加载。
三、依赖关系
向上依赖(谁调用 bcdedit.exe)
- 管理员手动执行;
- Windows 安装程序、系统修复环境 WinRE;
- 部署脚本、DISM、WDS、MDT,批量部署操作系统;
- 系统还原、故障修复工具、双系统引导配置脚本;
- 安全软件、虚拟化软件(Hyper-V、WSL、VHD 启动修改引导项)。
向下依赖(bcdedit 向下调用栈)
bcdedit.exe → bcd.dll → advapi32.dll / ntdll.dll → ntoskrnl.exe (CM配置管理器)
配套实体文件(非 DLL 导入依赖,业务依赖)
- BCD 存储文件:ESP 分区 BCD(EFI)/ 活动分区 BCD(BIOS)
- 引导二进制:
bootmgfw.efi(EFI)、bootmgr.exe(Legacy) - WinRE 镜像:winre.wim(BCD 内 recovery 对象指向它)
四、配套链
- BCD 存储(Hive 文件):注册式存储,所有引导配置持久化载体;
- bcd.dll:BCD 对象模型 API 库,所有读写操作的核心;
- 内核 CM 配置管理器(ntoskrnl):内核 Hive 加载、解析,启动时读取 BCD;
- 引导管理器 bootmgr /bootmgfw.efi:开机阶段读取 BCD,展示引导菜单、加载对应内核;
- ESP 分区(EFI 模式):存放 EFI 引导文件、BCD;FAT32 独立分区;
- WinRE 恢复环境:BCD 中 recovery 对象关联,用于系统故障修复;
- 安全启动(Secure Boot):BCD 配合 UEFI 固件,控制启动签名校验;
- 底层磁盘驱动、卷管理器:访问 ESP / 活动分区,读取 BCD 文件。
五、逻辑链路(典型场景)
链路 1:bcdedit /enum 枚举启动项(读操作)
bcdedit.exe 解析命令行 → 调用 bcd.dll!BcdOpenStore → bcd.dll打开BCD hive
→ bcd.dll枚举BCD对象与元素 → 读取所有启动项属性
→ bcdedit格式化文本输出至控制台 → 关闭句柄
只读操作,不需要管理员权限
链路 2:bcdedit /set 修改内核参数(写操作)
bcdedit.exe(管理员)→ 参数校验 → bcd.dll打开BCD存储(可写)
→ bcd.dll修改指定对象Element(如hypervisor、debug、safeboot)
→ CM将hive变更落盘写入ESP/活动分区BCD文件
→ 返回成功/错误码
修改操作必须管理员权限;修改后立刻写入 BCD,重启生效
链路 3:bcdedit /copy 复制启动项
bcdedit → bcd.dll读取源BCD对象 → 创建新对象,复制全部元素 → 写入BCD存储 → 返回新GUID
六、边界(能力边界|失效边界|安全边界|版本边界)
1. 能力边界
✅ 支持枚举、创建、复制、删除、导入导出 BCD 启动项、设置内核参数、引导超时、安全启动、调试开关、hypervisor、WinRE 配置
✅ 支持操作本地系统 BCD,也可以加载离线 BCD(挂载 VHD/WinPE 内修改另一系统 BCD)
✅ 支持 EFI 与 Legacy BIOS 两种固件的 BCD 存储
❌ bcdedit 不能直接编辑 bootmgfw.efi/bootmgr 二进制;不能修复分区表;不能修复磁盘文件系统损坏;
❌ 不能绕过 UEFI Secure Boot 固件级策略,BCD 仅控制引导参数,无法禁用固件层面安全启动;
❌ 不解析磁盘扇区;底层磁盘坏块不属于 bcdedit 处理范围。
2. 失效边界(故障现象)
- 权限不足(非管理员):写类命令(/set/create /delete)拒绝,只读 /enum 可以执行;
- BCD 文件损坏(hive 损坏):bcdedit 打开存储时报错,枚举失败;开机直接丢失引导菜单;
- ESP 分区丢失 / 未挂载(EFI):bcdedit 无法定位系统 BCD 存储,提示找不到存储;
- bcd.dll 丢失 / 损坏:bcdedit.exe 启动直接崩溃,应用无法启动;
- 磁盘只读、磁盘坏道:BCD 写入失败,修改无法落盘;
- 双系统场景:修改错误 BCD 存储,修改另一系统引导项,导致目标系统无法启动。
3. 安全边界
- 修改 BCD 可开启内核调试、测试签名、关闭驱动强制签名,攻击面很高;恶意程序可通过 bcdedit 修改引导配置实现持久化、关闭安全防护。
- BCD 存储位于 ESP 分区;普通用户默认无写 ESP 权限;管理员才有写入权限。
- 安全启动(Secure Boot)固件校验:即便 BCD 配置篡改,未签名内核 / 驱动依旧被 UEFI 拦截。
4. 版本 & 兼容边界
- Vista 起引入 BCD,废弃 boot.ini;XP 及更早系统没有 bcdedit;
- EFI 模式 BCD 和 Legacy BIOS BCD 存储结构不同,不可直接混用;
- WinPE、WinRE 自带精简版 bcdedit,支持基础 BCD 操作;
- Windows Server 版本功能同桌面版,支持 Hypervisor、多引导配置。
七、FMEA 关键失效摘要
| 失效模式 | 根因 | 风险等级 |
|---|---|---|
| BCD Hive 文件损坏 | 异常断电、磁盘坏道、强制中断 bcdedit 写入 | 极高 |
| ESP 分区丢失 / 盘符异常(EFI) | 分区误删除、磁盘分区表损坏 | 极高 |
| 非管理员执行写操作 | 权限不足,拒绝修改 BCD | 中 |
| 错误修改启动项 device/osdevice | 参数填写错误,引导项指向错误分区,系统无法启动 | 极高 |
| bcd.dll 文件丢失 / 篡改 | 系统文件损坏、恶意替换 bcd.dll | 高 |
| 恶意脚本执行 bcdedit 开启测试签名 / 调试 | 恶意程序篡改 BCD 引导参数,绕过驱动安全限制 | 高 |
bcdedit 启动配置数据库配套链 全枚举实例
前置说明
- bcdedit:Windows BCD(启动配置数据库)管理工具,替代旧版 boot.ini;管理员权限;PE 离线维护、修复引导核心工具。
- 配套链:查看 BCD → 创建引导项 → 设置设备 /osdevice → 设置启动参数 → 复制条目 → 删除无效条目;离线操作需要指定
/store加载离线 BCD 文件。- UEFI/GPT 存储位置:
EFI\Microsoft\Boot\BCD;BIOS/MBR:\Boot\BCD;路径带空格使用英文双引号。 ⚠️ 错误修改 BCD 会直接导致系统无法启动,修改前建议备份 BCD。
一、单命令实例
| 序号 | 命令 | 简要说明 |
|---|---|---|
| 1 | bcdedit /enum |
枚举 BCD 内所有启动条目,列出全部启动项 |
| 2 | bcdedit /enum active |
仅枚举当前生效的活动启动项 |
| 3 | bcdedit /enum firmware |
枚举固件启动项(UEFI 固件菜单条目) |
| 4 | bcdedit /copy {current} /d "Win11 Copy" |
复制当前系统启动条目,命名为 Win11 Copy |
| 5 | bcdedit /create /d "Win11" /application osloader |
新建 OS 加载器启动条目,返回 GUID |
| 6 | bcdedit /delete {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} |
删除指定 GUID 启动项 |
| 7 | bcdedit /set {current} description "Windows 11" |
修改当前启动项显示名称 |
| 8 | bcdedit /default {current} |
设置当前条目为默认启动项 |
| 9 | bcdedit /timeout 10 |
设置启动菜单等待超时 10 秒 |
| 10 | bcdedit /export "D:\bcdbackup" |
导出 BCD 完整备份到文件 |
| 11 | bcdedit /import "D:\bcdbackup" |
从备份文件恢复 BCD |
| 12 | bcdedit /store S:\EFI\Microsoft\Boot\BCD |
指定离线 BCD 文件(PE 离线修复引导) |
| 13 | bcdedit /set {current} device partition=W: |
设置启动项设备分区为 W 盘 |
| 14 | bcdedit /set {current} osdevice partition=W: |
设置操作系统分区为 W 盘 |
| 15 | bcdedit /set {current} path \Windows\system32\winload.efi |
设置 EFI 引导加载程序路径 |
| 16 | bcdedit /set {current} systemroot \Windows |
设置系统目录路径 |
| 17 | bcdedit /bootsequence {current} |
设置一次性启动顺序 |
二、双参数混合组合
| 序号 | 命令 | 简要说明 |
|---|---|---|
| 18 | bcdedit /enum all /store S:\EFI\Microsoft\Boot\BCD |
PE 离线:读取 EFI 分区 BCD,枚举全部条目 |
| 19 | bcdedit /set {current} locale zh-CN |
设置启动管理器语言为简体中文 |
| 20 | bcdedit /set {current} bootmenupolicy Standard |
启用完整高级启动菜单 |
| 21 | bcdedit /set {current} safeboot minimal |
设置下次进入最小安全模式 |
| 22 | bcdedit /set {current} safeboot network |
设置下次进入带网络安全模式 |
| 23 | bcdedit /set {current} nointegritychecks on |
关闭驱动完整性校验(测试驱动,慎用) |
| 24 | bcdedit /set {current} hypervisorlaunchtype auto |
开启 Hyper-V 虚拟机监控程序自动启动 |
| 25 | bcdedit /deletevalue {current} safeboot |
删除安全模式标记,恢复正常启动 |
三、三参数混合组合
| 序号 | 命令 | 简要说明 |
|---|---|---|
| 26 | bcdedit /set {current} device partition=W: osdevice partition=W: systemroot \Windows |
一次性设置离线系统分区、OS 分区、系统目录 |
| 27 | bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {default} timeout 5 |
离线 BCD,修改默认启动项超时 5 秒 |
| 28 | bcdedit /set {current} recoveryenabled yes bootmenupolicy Standard |
开启系统恢复选项,启用完整启动菜单 |
| 29 | bcdedit /export "S:\bcd_backup.bcd" /store S:\EFI\Microsoft\Boot\BCD |
PE 环境备份 EFI 分区 BCD 数据库 |
四、多参数复杂混合组合(PE 离线重建 BCD 完整配套链)
| 序号 | 命令脚本 | 简要说明 |
|---|---|---|
| 30 | bcdedit /store S:\EFI\Microsoft\Boot\BCD /create /d "Win11" /application osloader获取新 GUID 后依次执行下面 set 命令 | 新建 OS 加载器条目,后续填充分区、路径参数 |
| 31 | bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {新 GUID} device partition=W:bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {新 GUID} osdevice partition=W:bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {新 GUID} path \Windows\system32\winload.efibcdedit /store S:\EFI\Microsoft\Boot\BCD /set {新 GUID} systemroot \Windows | 离线完整配置新建系统启动项 |
| 32 | bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {bootmgr} device partition=S:bcdedit /store S:\EFI\Microsoft\Boot\BCD /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi | 配置 EFI 启动管理器 bootmgfw.efi |
场景说明:PE 环境,S=EFI 分区盘符,W=Windows 系统分区
五、运维完整脚本片段(PE 离线重建 BCD,搭配 bcdboot)
rem 配套 bcdboot + bcdedit,S=EFI分区,W=Windows系统分区
bcdboot W:\Windows /s S: /f UEFI
bcdedit /store S:\EFI\Microsoft\Boot\BCD /enum all
bcdedit /store S:\EFI\Microsoft\Boot\BCD /timeout 10
bcdedit /export "S:\bcd_backup.bcd" /store S:\EFI\Microsoft\Boot\BCD
echo BCD重建完成
六、无效 / 边界说明
| 错误命令 | 原因 |
|---|---|
bcdedit /enum PE 环境不指定/store |
默认读取 PE 自身 BCD,不是硬盘上离线系统 BCD,必须加/store指向 EFI 分区 BCD |
bcdedit /set {current} path \Windows\system32\winload.exe UEFI 系统 |
UEFI 必须使用winload.efi;winload.exe 仅 BIOS/MBR 使用 |
直接删除{bootmgr}、{memdiag}等内置 GUID |
启动管理器、内存诊断是 BCD 内置条目,删除会导致引导完全失效 |
bcdedit /set safeboot minimal 忘记清除 |
每次开机强制进入安全模式,必须执行bcdedit /deletevalue safeboot恢复 |
| 普通用户执行 bcdedit 修改 BCD | 修改 BCD、导出导入、创建条目均需要管理员权限 |
| 离线 BCD 操作,EFI 分区未分配盘符 | 找不到 BCD 文件,需要先用 diskpart 分配 EFI 分区盘符 |
七、运维场景快速选型
- 查看本机全部 BCD 启动项:
bcdedit /enum all - 备份 BCD 数据库:
bcdedit /export "D:\bcdbackup" - PE 离线查看硬盘 BCD:
bcdedit /store S:\EFI\Microsoft\Boot\BCD /enum all - 设置 Hyper-V 自动开启:
bcdedit /set {current} hypervisorlaunchtype auto - 开启安全模式:
bcdedit /set {current} safeboot minimal - 取消安全模式标记:
bcdedit /deletevalue {current} safeboot

C:\Users\Administrator>bcdedit /?
BCDEDIT - 启动配置数据存储编辑器
Bcdedit.exe 命令行工具用于修改启动配置数据存储。启动配置数据存储包含启动配置参数并控制操作系统的启动方式。这些参数以前位于 Boot.ini 文件中(在基于 BIOS 的操作系统中)或位于非易失性 RAM 项中
(在基于可扩展固件接口的操作系统中)。可以使用 Bcdedit.exe 在启动配置数据存储中添加、删除、编辑和附加项。
有关命令和选项的详细信息,请键入 bcdedit.exe /? <command>。例如,
若要显示有关 /createstore 命令的详细信息,请键入:
bcdedit.exe /? /createstore
有关本帮助文件中按字母顺序排列的主题列表,请运行 "bcdedit /? TOPICS"。
对存储执行的命令
====================================
/store 用于指定当前系统默认值以外的 BCD 存储。
/createstore 新建空的启动配置数据存储。
/export 将系统存储的内容导出到文件。以后可以使用该文件还原系统存储的状态。
/import 使用 /export 命令创建的文件还原系统存储的状态。
/sysstore 设置系统存储设备(仅影响 EFI 系统,在重新启动后不再保留,且仅用于系统存储设备不确定的情况下)。
对存储中的项执行的命令
====================================
/copy 复制存储中的项。
/create 在存储中创建新项。
/delete 删除存储中的项。
/mirror 创建存储中项的镜像。
运行 bcdedit /? ID 可获得有关这些命令使用的标识符的信息。
对选项执行的命令
====================================
/deletevalue 删除存储中的项选项。
/set 设置存储中的项选项值。
运行 bcdedit /? TYPES 可获得这些命令使用的数据类型的列表。
运行 bcdedit /? FORMATS 可获得有效数据格式的列表。
控制输出的命令
====================================
/enum 列出存储中的项。
/v 命令行选项,完整显示项标识符,而不是使用已知标识符的名称。单独使用命令 /v 可完整显示 ACTIVE 类型的项标识符。
单独运行 "bcdedit" 等同于运行 "bcdedit /enum ACTIVE"。
控制启动管理器的命令
====================================
/bootsequence 为启动管理器设置一次性启动序列。
/default 设置启动管理器将使用的默认项。
/displayorder 设置启动管理器显示 多重启动菜单的顺序。
/timeout 设置启动管理器的超时值。
/toolsdisplayorder 设置启动管理器显示工具菜单的顺序。
控制启动应用程序紧急管理服务的命令
====================================
/bootems 启用或禁用启动应用程序的紧急管理服务。
/ems 启用或禁用操作系统项的紧急管理服务。
/emssettings 设置全局紧急管理服务参数。
控制调试的命令
====================================
/bootdebug 启用或禁用启动应用程序的启动调试。
/dbgsettings 设置全局调试程序参数。
/debug 启用或禁用操作系统项的内核调试。
/hypervisorsettings 设置虚拟机监控程序的参数。
控制远程事件日志记录的命令
====================================
/eventsettings 设置全局远程事件日志记录参数。
/event 启用或禁用操作系统项的远程事件日志记录。
BCDEdit.exe(Boot Configuration Data Editor)完整拆解解构
基础总览
%SystemRoot%\System32\bcdedit.exe
bootcfg.exe,废弃 XP 时代文本 boot.ini)
关键区分
- BCD Store:底层二进制 hive(注册式数据库),启动管理器
bootmgr/bootmgfw.efi开机读取; - bcdedit.exe:用户态命令行工具,不能直接裸写 BCD 文件,严格调用系统封装 API;
- bcdboot.exe:负责部署启动分区、复制引导文件、初始化全新 BCD;
- bootrec.exe:修复引导扇区、扫描系统、重建 BCD 存储(内部复用 BCD API)。
一、底层原理
1. BCD 底层数据模型(bcdedit 操作的对象)
- Object 对象:一条启动实体,唯一标识 = GUID;内置大量系统预定义别名(
{current}、{default}、{bootmgr}、{memdiag}) - Element 元素:对象属性(description、device、osdevice、path、timeout、debug、hypervisorloadoptions 等)
- Inherit 继承机制:对象可继承模板对象(
bootloadersettings、globalsettings),实现配置复用 - 别名系统:
{default}指向默认启动项;{current}指代当前正在运行系统对应的 OS Loader 对象
BCD 物理存储位置
- UEFI(GPT):ESP 分区 FAT32
\EFI\Microsoft\Boot\BCD - Legacy BIOS(MBR):活动 NTFS 分区
\Boot\BCD文件格式:标准注册表 Hive 格式,附带事务日志 BCD.LOG,保证写入原子性;系统运行时挂载到虚拟注册表项:HKLM\BCD00000000
⚠️ 严禁使用记事本 / 普通 regedit 直接修改 BCD 文件,极易破坏校验头导致无法启动。
2. BCDEdit 完整调用栈(自上而下)
bcdedit.exe(命令行解析、参数处理、文本输出)
↓
bcd.dll(核心用户态API库,导出整套Bcd*函数)
↓
内核层 BCD抽象接口 / WMI BCD Provider(两条通路)
通路A(原生API):BcdOpenStore → 加载BCD hive → 对象增删改查、事务写入
通路B(WMI):Win32_BcdStore / Win32_BcdObject WMI类(第三方工具常用)
↓
持久化写入 BCD hive 文件 + BCD.LOG事务日志
- BcdOpenStore:打开本地 / 外部 BCD 存储
- BcdCreateObject:新建启动对象
- BcdDeleteObject:删除对象
- BcdSetElement / BcdDeleteValue:设置 / 删除属性
- BcdEnumerateObjects:枚举所有启动项
- BcdExportStore / BcdImportStore:导出导入 BCD 快照
3. 两大运行模式
模式 1:默认系统存储(System Store)
/store 参数,自动加载本机正在使用的 BCD:
bcdedit /enum
模式 2:外部脱机存储(Offline Store)
/store <filepath> 加载离线 BCD 文件(WinPE 修复、多系统维护):
bcdedit /store S:\EFI\Microsoft\Boot\BCD /enum all
4. 权限模型
5. 启动链路视角:BCD 在系统启动中的位置
UEFI 启动链
UEFI固件 → ESP\bootmgfw.efi → 读取BCD → 加载winload.efi → ntoskrnl.exe内核
Legacy BIOS 启动链
MBR→PBR → bootmgr.exe → 读取\Boot\BCD → winload.exe → ntoskrnl.exe
bootmgfw.efi/bootmgr读取的这份启动决策数据库。二、依赖文件与核心组件
1. 用户态依赖
bcdedit.exe:主程序bcd.dll:强制依赖,BCD API 实现主体advapi32.dll:注册表 Hive 加载、安全权限校验wmiutils.dll(可选):WMI BCD 提供者支持kernel32.dll、user32.dll:基础进程、控制台输出
2. 配套系统工具(同生态链)
- bcdboot.exe
部署启动环境、复制 bootmgfw.efi/bootmgr,基于
BCD-Template模板创建全新 BCD;系统安装、引导修复核心工具。模板路径:%windir%\System32\config\BCD-Template - bootrec.exe
扫描磁盘 Windows 安装、修复分区引导扇区、
/rebuildbcd批量生成启动项。 - msconfig.exe
图形界面简易启动配置,底层封装 bcdedit 等价调用。
3. 引导链配套二进制(BCD 指向的加载器)
- UEFI:
bootmgfw.efi、winload.efi、winresume.efi(休眠恢复) - Legacy:
bootmgr、winload.exe、winresume.exe - 工具项:
memdiag.exe(内存诊断)
4. 关键注册表路径
# BCD模板(新建BCD的基准模板)
HKLM\SYSTEM\CurrentControlSet\Services\BCD-Template
# BCD相关WMI提供者注册
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WMI Providers\BCD
5. 事件日志
系统日志(来源:BootCfg);
三、依赖关系
硬性强制依赖
bcd.dll:缺失则 bcdedit 直接运行失败;- Windows 注册表 Hive 解析引擎(BCD 本质是注册式文件);
- NTFS/FAT32 文件系统驱动(读写 BCD 载体分区);
- 管理员权限令牌(写入操作)。
可选依赖
- WMI 服务 winmgmt:用于第三方程序调用 BCD 接口;bcdedit 原生不走 WMI;
- BitLocker 驱动:启用加密时修改 BCD 触发保护校验;
- WinPE 环境:bcdedit 可在预安装环境运行,用于离线修复。
不依赖
- 不依赖任何内核驱动(bcd.sys 不存在,网传说法错误);BCD 解析工作在引导阶段由 bootmgr/bootmgfw.efi 完成;
- 不依赖网络驱动栈(csc.sys/mrxsmb 等);
- 和 RuntimeBroker、UWP 沙箱组件完全无关;
- 不需要运行中的 Windows 内核服务,WinPE 离线环境可独立工作。
约束与限制
- bcdedit 只能操作标准 BCD 存储;无法直接修改 EFI NVRAM 启动条目(修改 ESP 分区路径条目需要
bcdboot或efibootmgr); - 无法修改固件 Secure Boot 策略;仅能控制 Windows 自身启动参数;
- 启动项 GUID 一旦创建,无法变更,只能删除重建;
- 跨架构限制:x64 bcdedit 无法正常解析 32 位 BCD 存储,反之亦然。
四、完整逻辑链路
链路 A:执行 bcdedit /enum all(只读枚举)
1. bcdedit.exe解析命令参数,识别枚举指令
2. 调用bcd.dll BcdOpenStore 打开系统BCD存储
3. 调用BcdEnumerateObjects遍历全部Object
4. 逐个读取对象所有Element(属性键值)
5. 将GUID、属性名称格式化文本输出控制台
6. 关闭BCD存储句柄,退出
链路 B:执行 bcdedit /set {default} timeout 15(写入修改)
1. 校验进程权限:非管理员直接报错
2. BcdOpenStore加载BCD hive,开启事务会话
3. 解析别名{default},找到对应OS Loader对象GUID
4. BcdSetElement写入timeout元素值=15
5. 事务提交,写入BCD主文件与BCD.LOG日志
6. 刷新hive缓存,关闭存储句柄
【修改立即持久化;**已经运行的系统内核参数下次重启生效**】
链路 C:离线修复场景(WinPE 中修复 ESP 分区 BCD)
1. WinPE分配ESP分区盘符 S:
2. 执行 bcdedit /store S:\EFI\Microsoft\Boot\BCD /enum
3. bcdedit通过路径打开外部BCD文件(脱机存储)
4. 添加/修复OS Loader启动项
5. bcdboot C:\Windows /s S: /f UEFI 同步引导文件与NVRAM启动项
典型异常分支
五、配套运维链 & 常用诊断命令
# 查看全部启动项
bcdedit /enum all /v
# 导出BCD备份
bcdedit /export D:\bcd_backup
# 导入BCD备份
bcdedit /import D:\bcd_backup
# 设置默认启动项超时
bcdedit /set {bootmgr} timeout 10
# 启用内核调试
bcdedit /set {default} debug on
# 重建BCD(WinRE经典修复流程)
bootrec /scanos
bootrec /rebuildbcd
故障排查顺序
- 区分启动模式 UEFI/BIOS,确认 BCD 物理路径;
- 确认目标分区正常挂载、文件未被加密锁定;
- BitLocker 环境优先暂停保护再修改 BCD;
- 使用
bcdedit /export提前备份; - 0xc000000F 引导故障:优先检查 BCD 中 device/osdevice 分区路径有效性;
- 多系统引导异常:核对对象 GUID、displayorder 启动菜单顺序。
六、运维风险与认知误区
-
误区 1:bcdedit 可以修改 EFI 固件启动顺序错误。bcdedit 只管BCD 内部启动菜单;ESP 分区在固件 NVRAM 中的启动条目由 bcdboot/efibootmgr 管理。
-
误区 2:可以直接复制 BCD 文件跨机器使用错误。BCD 内存储分区唯一标识符(分区 GUID、磁盘签名),直接拷贝大概率出现 device unknown 无法启动。
-
误区 3:修改 bcdedit 参数立刻生效绝大多数内核启动参数(debug、testsign、hypervisor 选项)仅在重启加载 winload 时生效。
-
安全风险恶意程序篡改 BCD 可以开启测试签名、内核调试、禁用驱动强制签名,实现未签名驱动加载;高安全终端监控 BCD 文件变更行为。
-
性能与事务频繁循环写入 BCD 容易造成 Hive 日志膨胀;批量修改建议一次性完成,避免多次事务提交。
七、组件横向对照
| 工具 | 定位 | 典型场景 |
|---|---|---|
| bcdedit.exe | BCD 配置编辑器 | 手动微调启动参数、新增自定义启动项 |
| bcdboot.exe | 启动环境部署器 | 系统安装、修复 ESP / 活动分区引导文件、初始化 BCD |
| bootrec.exe | 引导修复扫描器 | 扫描 Windows、重建 BCD 启动项、修复引导扇区 |
| msconfig.exe | 图形简易入口 | 普通用户快速调整超时、安全启动 |
BCDEdit(Boot Configuration Data Edit)是一个用于在Windows操作系统中管理启动配置数据(BCD)的命令行工具。它在多个版本的Windows中得到了不同的改进和增强。以下是BCDEdit命令在Windows发展过程中的时间线概览:
1. Windows Vista(2007年)
- 2007年:
BCDEdit首次出现在Windows Vista中。Windows Vista引入了新的启动管理机制,即启动配置数据(BCD)存储,取代了之前的boot.ini文件。BCDEdit工具用于编辑BCD存储中的启动项,包括设置操作系统启动选项、调试选项等。 BCDEdit的主要功能是提供对启动配置数据的访问,使得用户可以修改引导加载程序、选择启动模式(如安全模式、调试模式等),以及设置启动项的其他属性。- 此时,
BCDEdit是Windows Vista及之后版本中管理启动项的主要工具,尤其在启动管理方面提供了更强大的灵活性。
2. Windows 7(2009年)
- 2009年:
BCDEdit在Windows 7中得到了进一步的增强,继续作为管理启动配置的工具。在Windows 7中,BCDEdit支持更多的启动选项,如多启动配置、恢复选项等。 - Windows 7还加强了对BCD的管理,用户可以通过
BCDEdit命令设置启动时的详细参数,例如修复启动问题、设置默认操作系统等。
3. Windows 8/8.1(2012年/2013年)
- 2012年/2013年:
BCDEdit在Windows 8及8.1中保持了类似的功能,但增加了对Windows 8新引入的“快速启动”功能的支持。在Windows 8中,BCDEdit工具支持更精细的启动管理,尤其是Windows 8的新启动机制,包括快速启动、UEFI固件支持等。 - 用户可以使用
BCDEdit进行更复杂的启动配置,如设置启动模式、启用或禁用Windows启动菜单等。
4. Windows 10(2015年)
- 2015年:Windows 10发布后,
BCDEdit工具继续作为管理启动配置的核心工具。Windows 10进一步强化了多启动、快速启动和恢复模式的支持。BCDEdit在此版本中继续支持UEFI启动模式,用户可以配置启动参数、恢复环境等。 - 在Windows 10中,
BCDEdit的功能保持一致,并在处理不同类型的启动和恢复任务时提供了更强的灵活性和可定制性。
5. Windows 11(2021年)
- 2021年:Windows 11继续使用
BCDEdit命令来管理启动配置数据。尽管Windows 11引入了一些新的启动管理功能,如改进的UEFI支持和安全启动(Secure Boot),BCDEdit仍然是管理和配置启动项的一个核心工具,尤其对于需要手动调整启动配置的高级用户和系统管理员来说。 - 在Windows 11中,
BCDEdit的使用与Windows 10相似,用户可以通过命令行来修复启动问题、配置启动项、调整启动参数等。
6. 未来发展(BCDEdit的未来)
- 随着Windows操作系统继续向UEFI(统一扩展固件接口)和更现代的引导管理系统过渡,
BCDEdit的功能可能会继续发展,特别是在多启动、恢复环境和操作系统加载过程中的精细控制。 - 未来版本的Windows可能会继续对
BCDEdit进行优化和扩展,特别是在增强对新的硬件和启动模式的支持方面。同时,随着Windows系统的自动修复功能越来越强大,可能会有更多的用户依赖图形化界面而非命令行工具,但BCDEdit仍将保持在高级用户和管理员工具链中的重要地位。
BCDEdit命令作为一个用于管理Windows启动配置的工具,从Windows Vista开始就一直存在,并在随后的Windows版本中得到了不断的改进和增强。它提供了灵活而强大的功能,使得系统管理员和高级用户能够对启动配置进行详细的控制,尤其是在解决启动问题和调整启动项时起到了关键作用。尽管现代Windows引入了更多图形化工具,但BCDEdit依然是处理启动配置的首选命令行工具之一。
BCDEdit 是微软官方出品的启动配置数据(BCD)底层原生编辑器,是 Windows Vista 起取代旧版 bootcfg.exe(管理 boot.ini)的核心启动管理工具,版本号与 Windows 内核版本严格绑定,所有版本均为 Windows 系统内置组件,无独立发布版本。它的演进完全跟随 Windows 启动方式的变革(从 BIOS/MBR 到 UEFI/GPT、从单系统到多系统/容器/虚拟机生态),同时也是比 bcdboot.exe 更底层的工具——bcdboot 本质是封装了 BCDEdit 的常用启动项创建逻辑,用于简化操作。
一、版本演进时间线与核心差异
前身时代:bootcfg 时代(Windows XP/Server 2003,2001-2003)
在 Vista 之前,Windows 使用文本格式的 boot.ini 存储启动配置,对应的管理工具是 bootcfg.exe,仅支持基础的启动项添加、默认项修改,完全无法支持 UEFI、VHD 启动等现代特性,Vista 起被 BCDEdit 完全取代。
1. 诞生期:支持 BIOS/MBR,替代 boot.ini(Windows Vista/Server 2008,2007-2008)
| 项 | 详情 |
|---|---|
| 发布时间 | 2007年1月(Vista RTM)、2008年2月(Server 2008 RTM) |
| BCDEdit 版本 | 6.0.x.x(初版 6.0.6000.16386,对应 Vista RTM build) |
| 核心差异与特性 | 1. 首次出现,正式替代 bootcfg:BCD 取代文本格式的 boot.ini,采用二进制数据库存储,支持更复杂的启动场景<br>2. 仅支持 BIOS/MBR 启动环境,对 UEFI 的支持仅停留在实验阶段,无原生 UEFI 相关参数<br>3. 基础功能完善:支持全局配置(默认启动项、菜单超时时间、启动菜单排序)、启动项基础属性编辑(系统路径、分区、描述)、boot.ini 条目导入(兼容 XP 双系统迁移)<br>4. 支持远程编辑 BCD:通过 /s <远程计算机名> 参数可远程修改其他 Windows 系统的启动配置,但仅支持 BIOS 环境 |
2. UEFI 革命期:原生支持 UEFI/GPT(Windows 7/Server 2008 R2,2009-2010)
| 项 | 详情 |
|---|---|
| 发布时间 | 2009年10月(Win7 RTM)、2010年7月(Server 2008 R2 RTM) |
| BCDEdit 版本 | 6.1.x.x(初版 6.1.7600.16385,对应 Win7 RTM build) |
| 核心差异与特性 | 1. 里程碑更新:原生支持 UEFI 启动:新增大量 UEFI 专属参数,支持编辑 EFI 系统分区(ESP)上的 BCD,支持通过 GUID 标识磁盘/分区(替代旧版的磁盘扇区号标识),适配 UEFI 的 GPT 分区格式<br>2. 新增固件管理器条目({fwbootmgr}):可直接管理 UEFI 固件中的启动项优先级,实现 Windows 启动项和 Linux 等第三方 UEFI 启动项的排序管理<br>3. 新增 WinRE(恢复环境)专项支持:可直接编辑 Windows 恢复环境的启动条目,支持配置自动恢复触发条件<br>4. 完善远程编辑能力:支持远程编辑 UEFI 环境下的 BCD,支持指定远程系统的 ESP 分区路径 |
3. 现代化扩展期:适配 Win8 新特性(Windows 8/Server 2012,2012-2013)
| 项 | 详情 |
|---|---|
| 发布时间 | 2012年10月(Win8 RTM)、2013年3月(Server 2012 RTM) |
| BCDEdit 版本 | 6.2.x.x(初版 6.2.9200.16384,对应 Win8 RTM build) |
| 核心差异与特性 | 1. 适配 Windows 8 核心特性:新增安全启动(Secure Boot)、快速启动、混合休眠、Windows To Go 等场景的专属 BCD 参数,支持配置启动时的固件安全策略<br>2. 原生支持 VHD/VHDX 启动项编辑:可直接创建、修改从虚拟磁盘启动的 BCD 条目,支持指定 VHD 文件路径、启动分区等参数,无需手动修改注册表<br>3. 启动菜单自定义能力增强:支持配置启动菜单的图标、背景、分辨率、显示语言等 METRO 风格启动菜单的属性<br>4. 新增虚拟机启动专属参数:支持配置 Hyper-V Generation 2 虚拟机的启动选项,支持启动时加载虚拟显卡驱动等参数 |
4. 成熟优化期:企业级场景强化(Windows 8.1/Server 2012 R2,2013-2014)
| 项 | 详情 |
|---|---|
| 发布时间 | 2013年10月(Win8.1 RTM)、2014年4月(Server 2012 R2 RTM) |
| BCDEdit 版本 | 6.3.x.x(初版 6.3.9600.16384,对应 Win8.1 RTM build) |
| 核心差异与特性 | 1. 小幅功能迭代,重点优化企业场景:新增对 USB 3.0 原生启动、连续智能卡认证、BitLocker 网络解锁等企业级特性的 BCD 参数支持<br>2. 完善 UEFI 兼容性:适配 UEFI 2.3+ 规范,修复早期版本在部分 UEFI 固件上编辑 BCD 失效的问题<br>3. 错误处理增强:对无效 BCD、分区缺失等场景的提示更明确,支持自动校验 BCD 条目有效性<br>4. 新增服务器角色专属参数:针对 Hyper-V、存储直通等服务器场景,新增对应的启动过滤驱动、启动参数配置选项 |
5. 持续迭代期:Win10/11 生态适配(2015年至今)
| 对应系统/时期 | 发布时间 | BCDEdit 版本号区间 | 核心差异点 |
|---|---|---|---|
| Win10 1507-1909 | 2015-2019 | 10.0.10240.x.x ~ 10.0.18362.x.x | 新增 BitLocker 网络解锁、Windows To Go 完善、WSL 基础支持 |
| Win10 2004-22H2 / Server 2022 | 2020-2022 | 10.0.19041.x.x ~ 10.0.22621.x.x | 新增 Core Isolation、内存完整性、WSL2 启动参数、TPM 2.0 强制配置 |
| Win11 21H2-24H2 / Server 2025 | 2021年-至今 | 10.0.22000.x.x ~ 10.0.26100.x.x | 新增 Pluton 安全处理器支持、ARM64 启动优化、Windows 365 启动支持、安全启动增强 |
这一阶段是功能爆发期,完全适配 Windows 10/11 的生态扩展,核心新增特性包括:
- 安全特性大幅增强:新增 Pluton 安全处理器、TPM 2.0 强制启动、内存完整性、Core Isolation 等安全特性的专属 BCD 参数,支持配置启动时的固件安全验证规则。
- 多生态启动支持:原生支持 WSL2、Windows Sandbox、Windows 容器等特性的启动参数配置,支持 Windows 与 Linux 双系统的启动项无缝排序。
- 部署与恢复能力强化:新增 OEM 恢复分区自动启动、Windows 自动修复跳过配置、恢复环境密码保护等参数,适配企业大规模部署场景。
- ARM64 生态支持:针对 Windows on ARM 设备,新增 ARM64 专属启动项参数,支持 UEFI 下的 ARM64 启动配置。
- 调试能力增强:新增内核网络调试、内存调试、驱动调试的精细化参数,支持开发者调试启动阶段的驱动问题。
二、BCDEdit 演进的核心逻辑
BCDEdit 的所有变化都围绕 Windows 启动架构的变革展开,核心驱动因素有三个:
- 启动硬件变革:从 BIOS 到 UEFI 的切换,要求 BCDEdit 从支持扇区标识、MBR 分区,升级为支持 GUID 标识、GPT 分区、ESP 分区管理。
- 安全需求提升:从无安全验证到 Secure Boot、BitLocker、TPM、Pluton 等安全特性的加入,BCDEdit 需要新增大量安全相关的配置参数。
- 系统生态扩展:从单 Windows 系统到虚拟机、容器、WSL、双系统等多元生态,BCDEdit 需要支持更多非传统 Windows 系统的启动项管理。
三、使用注意事项
- 版本匹配原则:和
bcdboot一致,务必使用与目标操作系统同版本或更高版本的 BCDEdit:高版本 BCDEdit 编辑低版本系统的 BCD 时,可能加入低版本系统不认识的参数,导致启动失败;低版本 BCDEdit 无法识别高版本系统的 BCD 格式,甚至无法打开。 - 操作权限要求:BCDEdit 必须以管理员身份运行,否则无法修改系统 BCD。
- 备份优先:修改 BCD 前必须执行
bcdedit /export 备份文件路径备份当前配置,避免操作失误导致系统无法启动。 - 与 bcdboot 的分工:
bcdboot是 BCDEdit 的封装工具,仅用于快速创建标准 Windows 启动项;如果需要自定义启动参数、调试选项、非 Windows 启动项管理,才需要使用 BCDEdit 底层编辑。 - 远程编辑限制:远程编辑 BCD 需要目标系统开启远程注册表服务、管理员权限,且防火墙允许相关端口通信。


PS C:\Users\Administrator> bcdedit -help
_________________________________________________________________________________________________________________________________________
BCDEDIT - 启动配置数据存储编辑器
Bcdedit.exe 命令行工具用于修改启动配置数据存储。启动配置数据存储包含启动配置参数并控制操作系统的启动方式。这些参数以前位于 Boot.ini 文件中(在基于 BIOS 的操作系统中)或位于非易失性 RAM 项中(在基于可扩展固件接口的操作系统中)。可以使用 Bcdedit.exe 在启动配置数据存储中添加、删除、编辑和附加项。
有关命令和选项的详细信息,请键入 bcdedit.exe /? <command>。例如,若要显示有关 /createstore 命令的详细信息,请键入:bcdedit.exe /? /createstore有关本帮助文件中按字母顺序排列的主题列表,请运行 "bcdedit /? TOPICS"。
_________________________________________________________________________________________________________________________________________
对存储执行的命令
bcdedit /store 用于指定当前系统默认值以外的 BCD 存储。
bcdedit /createstore 新建空的启动配置数据存储。
bcdedit /export 将系统存储的内容导出到文件。以后可以使用该文件还原系统存储的状态。
bcdedit /import 使用 /export 命令创建的备份文件来还原系统存储的状态。
bcdedit /sysstore 设置系统存储设备(仅影响 EFI 系统,在重新启动后不再保留,且仅用于系统存储设备不确定的情况下)。
_________________________________________________________________________________________________________________________________________
对存储中的项执行的命令
bcdedit /copy 复制存储中的项。
bcdedit /create 在存储中创建新项。
bcdedit /delete 删除存储中的项。
bcdedit /mirror 创建存储中项的镜像。
运行 bcdedit /? ID 可获得有关这些命令使用的标识符的信息。
_________________________________________________________________________________________________________________________________________
对项选项执行的命令
bcdedit /set 设置存储中的项选项值。
运行 bcdedit /? TYPES 可获得这些命令使用的数据类型的列表。
运行 bcdedit /? FORMATS 可获得有效数据格式的列表。
_________________________________________________________________________________________________________________________________________
控制输出的命令
bcdedit /enum 列出存储中的项。
bcdedit /v 命令行选项,完整显示项标识符,而不是使用已知标识符的名称。单独使用命令 /v 可完整显示 ACTIVE 类型的项标识符。
单独运行 "bcdedit" 等同于运行 "bcdedit /enum ACTIVE"。
_________________________________________________________________________________________________________________________________________
控制启动管理器的命令
bcdedit /bootsequence 为启动管理器设置一次性启动序列。
bcdedit /default 设置启动管理器将使用的默认项。
bcdedit /displayorder 设置启动管理器显示多重启动菜单的顺序。
bcdedit /timeout 设置启动管理器的超时值。
bcdedit /toolsdisplayorder 设置启动管理器显示工具菜单的顺序。
_________________________________________________________________________________________________________________________________________
控制启动应用程序紧急管理服务的命令
bcdedit /bootems 启用或禁用启动应用程序的紧急管理服务。
bcdedit /ems 启用或禁用操作系统项的紧急管理服务。
bcdedit /emssettings 设置全局紧急管理服务参数。
_________________________________________________________________________________________________________________________________________
控制调试的命令
bcdedit /bootdebug 启用或禁用启动应用程序的启动调试。
bcdedit /dbgsettings 设置全局调试程序参数。
bcdedit /debug 启用或禁用操作系统项的内核调试。
bcdedit /hypervisorsettings 设置虚拟机监控程序的参数。
_________________________________________________________________________________________________________________________________________
控制远程事件日志记录的命令
bcdedit /eventsettings 设置全局远程事件日志记录参数。
bcdedit /event 启用或禁用操作系统项的远程事件日志记录。
_________________________________________________________________________________________________________________________________________
bcdedit 是什么
bcdedit是Windows操作系统中的一个命令行工具,用于查看和修改启动配置数据(BCD)。启动配置数据存储重要的启动信息,包括启动加载程序和启动设置。这个工具主要由高级用户、系统管理员和开发人员使用,以调整与系统启动相关的各种参数。
为什么使用 bcdedit
- 修改启动设置:可以修改系统启动时的行为,例如设置启动等待时间、配置多重启动选项等。
- 故障排除:在遇到启动问题时,可以通过
bcdedit来修复启动配置,如修复启动加载程序路径、添加缺失的启动项等。 - 性能优化:通过调整启动配置,可以优化系统的启动时间和性能,比如禁用某些启动项以加快启动速度。
- 启用高级功能:启用诸如安全启动、调试模式、启动日志记录等高级功能。
怎么使用 bcdedit
使用bcdedit需要管理员权限。你可以通过以管理员身份打开命令提示符或PowerShell来执行bcdedit命令。
以下是一些常用的bcdedit命令示例:
-
查看当前的启动配置:
cmdCopy Codebcdedit不带任何参数运行
bcdedit会显示当前的启动配置信息。 -
设置启动等待时间:
cmdCopy Codebcdedit /timeout 30这个命令设置系统在启动菜单上等待用户选择的时间为30秒。
-
创建新的启动项:
cmdCopy Codebcdedit /copy {current} /d "Windows 10 - New Configuration"该命令复制当前的启动项并为新项命名为“Windows 10 - New Configuration”。
-
删除启动项: 首先,需要找到要删除的启动项的标识符,然后使用
/delete参数:cmdCopy Codebcdedit /delete {identifier}将
{identifier}替换为要删除的启动项的实际标识符。 -
启用或禁用高级启动选项: 比如,启用启动时的调试模式:
cmdCopy Codebcdedit /debug on -
修复启动加载程序: 如果启动加载程序损坏或丢失,可以使用以下命令修复(以Windows 10为例):
cmdCopy Codebcdedit /set {bootmgr} path \EFI\Microsoft\Boot\bootmgfw.efi
使用bcdedit时应格外小心,因为不正确的更改可能导致系统无法启动。在进行任何重大更改之前,建议备份当前的启动配置数据。可以使用bcdedit /export命令来导出BCD存储,以便之后需要时能够恢复。
bootmgfw.efi 是什么
bootmgfw.efi是Windows操作系统中的EFI(可扩展固件接口)启动管理器文件。它是一种特殊的EFI应用程序,负责初始化系统加载过程中的EFI环境,并最终引导Windows操作系统的启动。这个文件位于EFI系统分区上,通常路径为\EFI\Microsoft\Boot\bootmgfw.efi。
为什么使用 bootmgfw.efi
在基于EFI的系统中,bootmgfw.efi扮演着至关重要的角色:
- 启动管理:它管理EFI启动项,提供操作系统选择菜单(如果有多个操作系统安装),并处理用户的选择。
- 安全启动:支持EFI安全启动功能,确保启动过程中加载的软件是被信任的,以防止恶意软件在启动过程中篡改系统。
- 启动修复:当系统无法正常启动时,
bootmgfw.efi可以引导到Windows恢复环境(WinRE),进行系统修复、恢复或诊断。
怎么使用 bootmgfw.efi
通常情况下,普通用户不需要直接与bootmgfw.efi文件交互。系统在安装或通过特定的修复操作时会自动配置和使用该文件。然而,在某些特定的系统修复或调试场景中,了解如何使用bootmgfw.efi可能会有所帮助:
-
手动添加EFI启动项:如果EFI启动项丢失或损坏,可以使用EFI Shell或其他工具(如Linux的
efibootmgr或Windows的bcdedit)手动添加一个指向bootmgfw.efi的启动项。使用
bcdedit手动添加EFI启动项的示例命令:cmdCopy Codebcdedit /createstore c:\temp\bcd bcdedit /store c:\temp\bcd /create {bootmgr} /d "Windows Boot Manager" bcdedit /store c:\temp\bcd /create /d "Windows 10" /application osloader然后,你需要设置正确的设备和路径指向
bootmgfw.efi,并将其添加到EFI启动顺序中。 -
修复EFI启动加载程序:在一些系统修复场景中,可能需要重新创建或修复指向
bootmgfw.efi的EFI启动项。这可以通过Windows安装介质上的“修复你的电脑”选项来完成,或者使用命令行工具手动完成。 -
更新或替换
bootmgfw.efi:在极少数情况下,如果bootmgfw.efi文件损坏,可能需要从另一个有效的Windows安装或从安装介质中复制该文件到EFI系统分区。这通常是高级操作,需要足够的知识和谨慎执行。
在执行任何修改或修复操作之前,建议备份当前的EFI系统分区和重要数据,以防万一操作不当导致系统无法启动或数据丢失。
bcdedit 是一个在 Windows 操作系统中使用的命令行工具,用于管理启动配置数据(BCD)。它可以用于以下应用场景:
-
启动管理:可以用于添加、删除、编辑和修复启动项,包括操作系统和启动加载程序。
-
诊断和修复:可用于修复启动问题,还原备份的启动配置数据,以及执行其他与启动相关的诊断任务。
-
远程事件日志记录设置:可以用于设置远程事件日志记录,管理调试设置和远程调试等。
-
虚拟化监控程序设置:可用于设置虚拟化监控程序调试器的设置,如串行调试、网络调试等。
-
修改引导加载程序显示顺序:可以通过 bcdedit 命令来更改系统启动时显示的操作系统列表的顺序。
-
启用或禁用调试模式:可以使用 bcdedit 命令来启用或禁用系统的调试模式,以便进行故障排除和调试操作。
-
设置启动选项:可以通过 bcdedit 命令设置引导加载程序的各种选项,如内存限制、启动参数等。
-
创建备份和导出配置数据:可以使用 bcdedit 命令创建当前启动配置数据的备份,并将配置数据导出到文件中进行备份或迁移。
-
创建多重引导配置:允许用户在同一台计算机上安装多个操作系统,并使用 bcdedit 命令对其进行管理和配置。
-
启用或禁用驱动程序签名强制:可以通过 bcdedit 命令来启用或禁用 Windows 操作系统对驱动程序签名的强制要求。
-
虚拟化设置:用于设置虚拟机的调试选项、启动参数等。
-
系统恢复设置:可用于配置系统恢复相关的设置,如启用或禁用系统还原功能等。
BCDEDIT - 启动配置数据存储编辑器
Bcdedit.exe 命令行工具用于修改启动配置数据存储。
启动配置数据存储包含启动配置参数并
控制操作系统的启动方式。这些参数以前
位于 Boot.ini 文件中(在基于 BIOS 的操作系统中)或位于非易失性 RAM 项中
(在基于可扩展固件接口的操作系统中)。可以
使用 Bcdedit.exe 在启动配置数据存储中
添加、删除、编辑和附加项。
有关命令和选项的详细信息,请键入 bcdedit.exe /? <command>。例如,
若要显示有关 /createstore 命令的详细信息,请键入:
bcdedit.exe /? /createstore
|
bcdedit.exe /? /createstore bcdedit /createstore <文件名>
示例: 以下命令创建指定的存储文件:
|
有关本帮助文件中按字母顺序排列的主题列表,请运行 "bcdedit /? TOPICS"。
|
bcdedit /? TOPICS 此帮助文件包含以下主题:
|
对存储执行的命令
================================
/store 用于指定当前系统默认值以外的 BCD 存储。
|
bcdedit /store /? 这个命令行选项可以与大多数 Bcdedit 命令一起使用,用于指定要使用的数据存储。如果未指定此选项,则将使用系统存储。 此选项不能与 /createstore、/import 和 /export 命令一起使用。 bcdedit /store <filename> <filename> 指定引导配置数据存储的文件名。 以下命令列出了指定数据存储文件中的活动条目: bcdedit /store C:\DATA\BCD /enum ACTIVE |
/createstore 新建空的启动配置数据存储。
|
bcdedit /createstore /? bcdedit /createstore <filename>
示例: 以下命令会创建指定的存储文件:
|
/export 将系统存储的内容导出到文件。以后
可以使用该文件还原系统存储的状态。
|
bcdedit /export /? 这个命令将系统存储库的内容导出到一个文件中。这个文件可以在以后用来恢复系统存储库的状态。这个命令只对系统存储库有效。 bcdedit /export <filename>
示例: 以下命令将系统存储库导出到指定的文件中:
|
/import 使用 /export 命令创建的备份文件来还原
系统存储的状态。
|
bcdedit /import /? 这个命令使用先前使用 /export 命令生成的备份数据文件来恢复系统存储库的状态。在导入之前,系统存储库中的任何现有条目都将被删除。此命令仅适用于系统存储库。 bcdedit /import <filename> [/clean]
示例: 以下命令将指定的文件导入系统存储库。
|
/sysstore 设置系统存储设备(仅影响 EFI 系统,在重新启动后不再保留,
且仅用于系统存储
设备不确定的情况下)。
|
bcdedit /sysstore /? 这个命令设置系统存储设备。此命令仅适用于 EFI 系统中系统存储设备不明确的情况。此设置在重新启动后不会保持。 bcdedit /sysstore <devicename>
示例: 以下命令设置指定的系统存储设备:
|
对存储中的项执行的命令
===========================================
/copy 复制存储中的项。
|
bcdedit /copy /? 这个命令用于创建指定引导条目的副本。 bcdedit [/store <filename>] /copy {<id>} /d <description>
示例: 以下命令会创建指定操作系统引导条目的副本:
|
/create 在存储中创建新项。
|
bcdedit /create /? 这个命令用于在引导配置数据存储中创建新条目。如果指定了一个众所周知的标识符,则不能同时指定/application、/inherit和/device选项。如果未指定<id>,或者<id>不是众所周知的,则必须指定/application、/inherit或/device选项。 bcdedit /create [{<id>}] [/d <description>] [/application <apptype> | /inherit [<apptype>] | /inherit DEVICE | /device]
示例: 以下命令创建基于NTLDR的操作系统加载程序条目(Ntldr):
以下命令创建一个RAM磁盘附加选项条目:
以下命令创建一个新的操作系统引导条目:
以下命令创建一个新的调试器设置条目:
|
/delete 删除存储中的项。
|
bcdedit /delete /? 这个命令用于从引导配置数据存储中删除条目。 bcdedit [/store <filename>] /delete <id> [/f] [/cleanup | /nocleanup]
示例: 以下命令从存储库中删除指定的操作系统条目,并从显示顺序中移除该条目:
以下命令从存储库中删除指定的操作系统条目,并从显示顺序中移除该条目:
以下命令从存储库中删除指定的操作系统条目,但不从显示顺序中移除该条目:
以下命令从存储库中删除基于NTLDR的操作系统加载程序条目:
|
/mirror 创建存储中项的镜像。
|
bcdedit /mirror /? 这个命令用于创建指定引导条目的镜像。 bcdedit [/store <filename>] /mirror {<id>}
示例: 以下命令创建指定操作系统引导条目的镜像:
|
运行 bcdedit /? ID 可获得有关这些命令使用的标识符的信息。
|
bcdedit /? ID 标识符 许多 Bcdedit 命令需要标识符。标识符唯一地标识存储中包含的条目。标识符采用全局唯一标识符或 GUID 的形式。GUID 具有以下格式,其中每个 "x" 代表一个十六进制数字。
例如:
必须保留 GUID 中的连字符 (-) 位置和括号在 GUID 开头和结尾。 可以通过多个众所周知的标识符来标识多个条目。如果一个条目具有众所周知的标识符,则除非使用 /v 命令行开关,否则 BCDedit 将在输出中显示它。有关更多信息,请运行 "bcdedit /? /v"。 众所周知的标识符如下:
|
对项选项执行的命令
======================================
/deletevalue 删除存储中的项选项。
|
bcdedit /deletevalue /? 这个命令从引导配置数据存储中的条目中删除一个数据元素。 bcdedit [/store <filename>] /deletevalue [<id>] <datatype>
示例: 以下命令从引导管理器条目中删除 bootsequence 选项:
以下命令从当前操作系统引导条目中删除 Windows 预安装环境(WinPE)值:
以下命令从指定操作系统引导条目中删除 Windows PE 值:
|
/set 设置存储中的项选项值。
|
bcdedit /set /? 这个命令在引导配置数据存储中设置条目选项值。 bcdedit [/store <filename>] /set [{<id>}] <datatype> <value> [ /addfirst | /addlast | /remove ]
示例: 以下命令将指定操作系统条目的应用程序设备设置为分区 C:
注意:使用 'hd_partition=' 语法可以显式禁用自动 VHD 检测,并创建兼容于启动虚拟机的条目,例如:
以下命令将指定操作系统条目的 OS 设备设置为 VHD 文件(C:\vdisks\vdisk01.vhd):
以下命令将指定操作系统条目的应用程序路径设置为 \windows\system32\winload.exe:
以下命令将当前操作系统引导条目的 NX 策略设置为 OptIn:
|
运行 bcdedit /? TYPES 可获得这些命令使用的数据类型的列表。
|
bcdedit /? TYPES 类型 /set 和 /deletevalue 命令需要一个 <datatype> 参数。 <datatype> 唯一标识值的数据格式和含义。 数据类型使用名称或自定义类型进行标识。以下是名称列表,以及它们的数据格式(括号内)和自定义类型的简要描述。如果未指定格式,则说明列出了您可以用于该类型的文字值。有关数据格式的信息,请运行 "bcdedit /? formats"。 以下类型适用于任何条目。有关特定于特定条目(例如引导管理器条目或 Windows OS 加载程序条目)的类型的信息,请参阅此帮助主题末尾。 条目
有关设备对象的其他类型的信息,请运行 "bcdedit /? TYPES DEVOBJECT"。 有关特定应用程序的其他类型的信息, 请运行 "bcdedit /? TYPES <apptype>",其中 <apptype> 是以下之一: BOOTAPP 启动应用程序。这些类型也适用于引导管理器、内存诊断应用程序、Windows OS 加载程序和恢复应用程序。 BOOTMGR 引导管理器。 BOOTSECTOR 引导扇区应用程序。 CUSTOMTYPES 自定义类型。 DEVOBJECT 设备对象的其他选项。 FWBOOTMGR 固件引导管理器 MEMDIAG 内存诊断应用程序 NTLDR 随早期 Windows 操作系统一起提供的 OS 加载程序 OSLOADER Windows Vista OS 加载程序 RESUME 恢复应用程序 |
运行 bcdedit /? FORMATS 可获得有效数据格式的列表。
|
bcdedit /? FORMATS 以下是用于 /set 命令所需的 <数据类型> 的数据格式描述。所需的格式取决于您在 /set 命令中指定的 <数据类型>。有关与每个 <数据类型> 相关的格式的更多信息,请运行 "bcdedit /? TYPES"。 bool 一个布尔值。以下值对应 TRUE: 1, ON, YES, TRUE 以下值对应 FALSE: 0, OFF, NO, FALSE device 设备可以是以下类型之一: BOOT PARTITION=<驱动器> HD_PARTITION=<驱动器> FILE=[<父级>]<路径> RAMDISK=[<父级>]<路径>,<optionsid> VHD=[<父级>]<路径>,<locatecustom> LOCATE[=<locatecustom>]
id 条目标识符,指的是引导配置数据存储中的一个条目。有关标识符的更多信息,请运行 "bcdedit /? ID"。 integer 64 位整数类型。某些整数类型可以使用枚举值进行设置。 integerlist 由一个或多个以空格分隔的 64 位整数组成的列表。此列表不应该用引号括起来。 list 条目标识符列表。包含一个或多个条目标识符,用空格分隔。列表不应该用引号括起来。 string 文本字符串。如果包含空格,应该用引号括起来("")。 |
控制输出的命令
============================
/enum 列出存储中的项。
|
bcdedit /enum /? 该命令列出存储中的条目。/enum 命令是默认的,因此运行 "bcdedit" 而不带参数等同于运行 "bcdedit /enum ACTIVE"。 bcdedit [/store <filename>] /enum [<type> | <id>] [/v]
示例: 以下命令列出所有操作系统加载程序引导条目:
以下命令列出所有启动管理器条目:
以下命令仅列出默认引导条目:
以下命令仅列出指定的操作系统引导条目:
|
/v 命令行选项,完整显示项标识符,
而不是使用已知标识符的名称。
单独使用命令 /v 可完整
显示 ACTIVE 类型的项标识符。
单独运行 "bcdedit" 等同于运行 "bcdedit /enum ACTIVE"。
|
bcdedit /v /? 通常,任何众所周知的条目标识符都会被它们的友好简写形式替换。在命令行中指定 /v 作为开关,可以阻止这种替换,并显示所有完整的标识符。运行 "bcdedit /v" 就相当于运行 "bcdedit /enum ACTIVE /v"。 bcdedit /v 示例: 以下命令列出系统存储中的活动条目,并显示所有条目标识符的完整信息。
|
| 项目 | Windows 启动管理器 | Windows 启动加载器 |
|---|---|---|
| 标识符 | {bootmgr} | {current} |
| device | partition=\Device\HarddiskVolume1 | partition=C: |
| path | \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI | \Windows\system32\winload.efi |
| description | Windows Boot Manager | Windows Server 2025 Datacenter |
| locale | zh-CN | zh-CN |
| inherit | {globalsettings} | {bootloadersettings} |
| bootshutdowndisabled | Yes | - |
| default | {current} | - |
| resumeobject | {a7e51ca6-ef4b-11ef-8818-832c0f2c4916} | {a7e51ca6-ef4b-11ef-8818-832c0f2c4916} |
| displayorder | {current} | - |
| toolsdisplayorder | {memdiag} | - |
| timeout | 30 | - |
| recoverysequence | - | {9af2e8cc-ef4c-11ef-9ee4-8d02725ca834} |
| displaymessageoverride | - | Recovery |
| recoveryenabled | - | Yes |
| isolatedcontext | - | Yes |
| allowedinmemorysettings | - | 0x15000075 |
| osdevice | - | partition=C: |
| systemroot | - | \Windows |
| nx | - | OptOut |
| 项目 | Windows 启动管理器 | Windows 启动加载器 |
|---|---|---|
| 标识符 | {bootmgr} | {current} |
| 设备 | partition=\Device\HarddiskVolume1 | partition=C: |
| 路径 | \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI | \Windows\system32\winload.efi |
| 描述 | Windows 启动管理器 | Windows Server 2025 Datacenter |
| 语言环境 | zh-CN | zh-CN |
| 继承 | {globalsettings} | {bootloadersettings} |
| 禁用启动关机 | 是 | - |
| 默认项 | {current} | - |
| 恢复对象 | {a7e51ca6-ef4b-11ef-8818-832c0f2c4916} | {a7e51ca6-ef4b-11ef-8818-832c0f2c4916} |
| 显示顺序 | {current} | - |
| 工具显示顺序 | {memdiag} | - |
| 超时时间 | 30 | - |
| 恢复序列 | - | {9af2e8cc-ef4c-11ef-9ee4-8d02725ca834} |
| 显示信息覆盖 | - | 恢复 |
| 恢复启用 | - | 是 |
| 隔离上下文 | - | 是 |
| 内存设置允许 | - | 0x15000075 |
| 操作系统设备 | - | partition=C: |
| 系统根目录 | - | \Windows |
| NX | - | OptOut |
| 项目 | Windows 启动管理器 | Windows 启动加载器 | 描述与应用场景 |
|---|---|---|---|
| 标识符 | {bootmgr} | {current} | 启动管理器和启动加载器的唯一标识符。应用场景:标识系统启动项。 |
| 设备 | partition=\Device\HarddiskVolume1 | partition=C: | 指定设备位置。应用场景:用于定位启动分区或安装系统的硬盘。 |
| 路径 | \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI | \Windows\system32\winload.efi | 启动所需的文件路径。应用场景:确保从正确位置加载启动文件。 |
| 描述 | Windows 启动管理器 | Windows Server 2025 Datacenter | 启动项描述,提供有关操作系统版本的信息。应用场景:帮助识别启动项及其系统信息。 |
| 语言环境 | zh-CN | zh-CN | 指定语言区域。应用场景:确定操作系统的语言设置。 |
| 继承 | {globalsettings} | {bootloadersettings} | 启动项的继承设置。应用场景:用于继承全局或特定的启动配置。 |
| 禁用启动关机 | 是 | - | 启用此选项时,禁用系统关闭或重启。应用场景:用于防止系统中途关闭或重启。 |
| 默认项 | {current} | - | 设置默认启动项。应用场景:指定系统启动时默认选择的操作系统或恢复选项。 |
| 恢复对象 | {a7e51ca6-ef4b-11ef-8818-832c0f2c4916} | {a7e51ca6-ef4b-11ef-8818-832c0f2c4916} | 恢复启动时使用的对象。应用场景:指定系统恢复或修复时的对象。 |
| 显示顺序 | {current} | - | 启动项在启动管理器中的显示顺序。应用场景:决定多个启动项的显示顺序。 |
| 工具显示顺序 | {memdiag} | - | 设置工具的显示顺序,例如内存诊断工具。应用场景:选择是否显示诊断工具如内存检查。 |
| 超时时间 | 30 | - | 设置启动超时时间,单位为秒。应用场景:指定操作系统启动前的等待时间。 |
| 恢复序列 | - | {9af2e8cc-ef4c-11ef-9ee4-8d02725ca834} | 系统恢复的序列号。应用场景:标识恢复启动的顺序。 |
| 显示信息覆盖 | - | 恢复 | 启动时是否覆盖显示恢复信息。应用场景:在恢复模式下显示恢复信息。 |
| 恢复启用 | - | 是 | 启用系统恢复功能。应用场景:确保系统在启动时可以进入恢复模式。 |
| 隔离上下文 | - | 是 | 启用隔离上下文保护,以防止启动过程中的安全问题。应用场景:保护启动加载器的安全性。 |
| 内存设置允许 | - | 0x15000075 | 允许的内存设置选项。应用场景:控制启动加载器的内存限制。 |
| 操作系统设备 | - | partition=C: | 操作系统所在的分区。应用场景:确定启动加载器加载哪个分区上的操作系统。 |
| 系统根目录 | - | \Windows | 操作系统的根目录。应用场景:指定操作系统安装目录。 |
| NX | - | OptOut | 启用或禁用执行保护(如No Execute)。应用场景:增强安全性,防止恶意代码执行。 |
应用场景总结:
- Windows 启动管理器:负责管理启动过程中所有系统加载项,控制启动顺序、显示信息、恢复模式等。常见于需要配置多操作系统启动或进行故障修复的场景。
- Windows 启动加载器:负责加载操作系统内核并将系统控制权交给操作系统,涉及操作系统的实际启动过程,通常用于加载和启动特定版本的操作系统,如 Windows Server 2025 Datacenter。
控制启动管理器的命令
======================================
/bootsequence 为启动管理器设置一次性启动序列。
|
bcdedit /bootsequence /? 该命令设置启动管理器要使用的一次性引导顺序。 bcdedit /bootsequence <id> [...] [ /addfirst | /addlast | /remove ]
示例: 以下命令在启动管理器的一次性引导顺序中设置两个操作系统条目和基于 NTLDR 的操作系统加载程序:
以下命令将指定的操作系统条目添加到启动管理器的一次性引导顺序的末尾:
|
/default 设置启动管理器将使用的默认项。
|
bcdedit /default /? 该命令设置在超时后引导管理器将使用的默认条目。 bcdedit /default <id>
示例: 以下命令将指定的条目设置为默认引导管理器条目:
以下命令将基于 NTLDR 的操作系统加载程序设置为默认条目:
|
/displayorder 设置启动管理器显示
多重启动菜单的顺序。
|
bcdedit /displayorder /? 该命令设置引导管理器要使用的显示顺序。 bcdedit /displayorder <id> [...] [ /addfirst | /addlast | /remove ]
示例: 以下命令设置两个操作系统条目和基于 NTLDR 的操作系统加载程序在启动管理器的显示顺序中:
以下命令将指定的操作系统条目添加到启动管理器的显示顺序的末尾:
|
/timeout 设置启动管理器的超时值。
|
bcdedit /timeout /? 该命令设置引导管理器在选择默认条目之前等待的时间(以秒为单位)。有关设置默认条目的信息,请运行"bcdedit /? default"。 bcdedit /timeout <timeout>
示例: 以下命令将引导管理器的超时设置为30秒:
|
/toolsdisplayorder 设置启动管理器显示工具
菜单的顺序。
|
bcdedit /toolsdisplayorder /? 该命令用于设置引导管理器在显示工具菜单时使用的显示顺序。 bcdedit /toolsdisplayorder <id> [...] [ /addfirst | /addlast | /remove ]
示例: 以下命令将两个工具条目和内存诊断添加到引导管理器的工具显示顺序中:
以下命令将指定的工具条目添加到引导管理器的工具显示顺序的末尾:
|
控制启动应用程序紧急管理服务的命令
======================================
/bootems 启用或禁用启动应用程序的
紧急管理服务。
|
bcdedit /bootems /? 该命令用于启用或禁用特定条目的紧急管理服务。 bcdedit /bootems [<id>] { ON | OFF }
示例: 以下命令启用引导管理器的紧急管理服务:
|
/ems 启用或禁用操作系统项的
紧急管理服务。
|
bcdedit /ems /? 该命令用于启用或禁用指定操作系统引导项的紧急管理服务。 bcdedit /ems [<id>] { ON | OFF }
示例: 以下命令启用当前操作系统引导项的紧急管理服务:
|
/emssettings 设置全局紧急管理服务参数。
|
bcdedit /emssettings /? 该命令设置系统的全局紧急管理服务设置。Emssettings 不会为任何特定的引导项启用或禁用紧急管理服务。 bcdedit /emssettings [ BIOS ] | [ EMSPORT:<port> | [EMSBAUDRATE:<baudrate>] ]
示例: 以下命令将紧急管理服务参数设置为使用 BIOS 设置:
以下命令将紧急管理服务参数设置为使用 com2 串口,波特率为 115,200:
|
控制调试的命令
==============================
/bootdebug 启用或禁用启动应用程序的启动调试。
|
bcdedit /bootdebug /? 该命令用于启用或禁用指定引导项的引导调试器。尽管此命令适用于任何条目,但仅对引导应用程序有效。 bcdedit /bootdebug [<id>] { ON | OFF }
示例: 以下命令为当前操作系统引导项的 Windows 操作系统加载程序启用引导调试:
以下命令禁用 Windows 启动管理器的引导调试:
|
/dbgsettings 设置全局调试程序参数。
|
bcdedit /dbgsettings /? 该命令用于设置或显示系统的全局调试器设置。 此命令不会启用或禁用任何特定引导项的调试器。要为特定引导项启用或禁用调试器,请使用"bcdedit /debug <标识符> ON"。有关标识符的信息,请运行"bcdedit /? ID"。 要设置单个全局调试器设置,请使用"bcdedit /set {dbgsettings} <类型> <值>"。有关有效类型的信息,请运行"bcdedit /? TYPES"。 bcdedit /dbgsettings [ <debugtype> [DEBUGPORT:<comport>] [BAUDRATE:<baud>] [CHANNEL:<channel>] [TARGETNAME:<targetname>] [HOSTIP:<ip>] [PORT:<port>] [KEY:<key>] [nodhcp] [newkey] [/start <startpolicy>] [/noumex] ]
示例: 以下命令显示当前的全局调试器设置:
以下命令将全局调试器设置为使用com1进行串行调试,波特率为115,200:
以下命令将全局调试器设置为使用通道23进行1394调试:
以下命令将全局调试器设置为使用目标名称DEBUGGING进行USB调试:
以下命令将全局调试器设置为使用IPv4,在192.168.1.2上与端口50000通信的主机调试器进行网络调试:
以下命令将全局调试器设置为使用IPv6,在2001:48:d8:2f:5e:c0:42:28:4f5b上与端口50000通信的主机调试器进行网络调试:
以下命令将全局调试器设置为本地调试:
|
/debug 启用或禁用操作系统项的内核
调试。
|
bcdedit /debug /? 这个命令用于启用或禁用指定引导项的内核调试器。 bcdedit /debug [<id>] { ON | OFF }
示例: 以下命令启用当前Windows操作系统引导项的内核调试:
以下命令禁用指定操作系统引导项的内核调试:
|
/hypervisorsettings 设置虚拟机监控程序的参数。
|
bcdedit /hypervisorsettings /? 这个命令用于设置或显示系统的虚拟化监控程序(hypervisor)设置。 此命令不会为任何特定的操作系统加载程序项启用或禁用虚拟化监控程序调试器。要为特定的操作系统加载程序项启用或禁用虚拟化监控程序调试器,请使用"bcdedit /set <标识符> HYPERVISORDEBUG ON"。有关标识符的信息,请运行"bcdedit /? ID"。 要设置单个虚拟化监控程序调试器设置,请使用"bcdedit /set {hypervisorsettings} <类型> <值>"。有关有效类型的信息,请运行"bcdedit /? TYPES"。 bcdedit /hypervisorsettings [ <debugtype> [DEBUGPORT:<port>] [BAUDRATE:<baud>] [CHANNEL:<channel>] [HOSTIP:<ip>] [PORT:<port>] ]
示例: 以下命令显示当前的虚拟化监控程序(hypervisor)设置:
以下命令将虚拟化监控程序调试器设置为在COM1上进行串行调试,波特率为115,200:
以下命令将虚拟化监控程序调试器设置为使用通道23进行1394调试:
以下命令将虚拟化监控程序调试器设置为与主机调试器在IPv4地址为192.168.1.2,通信端口为50000的网络调试:
|
控制远程事件日志记录的命令
=========================================
/eventsettings 设置全局远程事件日志记录参数。
bcdedit /eventsettings /? 这个命令用于设置或显示系统的全局远程事件日志记录设置。目前,该命令是 dbgsettings 的别名。有关更多信息,请参阅 dbgsettings。 |
/event 启用或禁用操作系统项的远程
事件日志记录。
|
bcdedit /event /? 该命令用于启用或禁用指定引导项的远程事件日志记录。 bcdedit /event [<id>] { ON | OFF }
示例: 以下命令启用当前Windows操作系统引导项的远程事件日志记录:
以下命令禁用指定操作系统条目的远程事件日志记录:
|
|
1. 传统启动管理机制:
2. 从 BIOS 到 UEFI:
3. 引入 BCD 和 BCDEdit:
4. BCDEdit 的优势:
5. 进一步演进:
|
|||||||
|
1. 引入阶段(Windows Vista):
2. 扩展阶段(Windows 7 / Windows 8):
3. UEFI 和安全启动支持(Windows 8 / Windows 10):
4. 新功能和改进(Windows 10):
5. 持续改进(更新版本):
|
|||||||
|
1. 相关 DLL:
2. 相关 SYS 文件:
3. 系统 API:
4. 注册表:
5. 其它依赖:
使用
|
|||||||
|
1. Boot Configuration Data (BCD):BCD 是一种数据存储机制,用于描述系统启动时所需的各类参数。它存储在一个独立的分区中,通常称为 EFI System Partition (ESP) 或系统保留分区。BCD 数据的组织结构类似于注册表,包含不同类型的启动条目,每个条目有若干属性。 2. BCD 存储位置:
3. BCD 数据结构:BCD 结构包含多种启动条目,每个条目都有独特的标识符。例如,默认条目、引导管理器、Windows 启动加载器等。每个条目都带有若干属性,例如启动设备、操作系统路径、启动超时时间等。不同类型的启动条目可能会有不同的属性。 4.
|
|||||||
|
1. 查看启动配置数据:
2. 修改启动配置数据:
3. 启动选项:
4. 诊断和修复:
5. 导入和导出配置:
6. 其他选项:
|
|||||||
|
以下是关于 BCDedit 命令初级应用的大纲: 1. BCDedit 命令概述
2. 启动配置管理
3. 启动修复和故障排除
4. 启动加载程序管理
5. 启动选项配置
6. 高级应用和技巧
7. 最佳实践和注意事项
8. 应用案例和实践演练
这个初级应用大纲旨在帮助用户了解和掌握 BCDedit 命令的基本用法和功能,实现启动配置的简单管理和故障排除,并通过案例实践提升实际操作能力和应用技巧。 |
|
以下是关于 BCDedit 命令中级应用的大纲: 1. BCD 存储文件结构深入
2. 多重引导配置管理
3. 启动加载程序配置高级技术
4. 安全引导和UEFI配置
5. 自动化和脚本化管理
6. 故障排除和修复技术
7. 高级应用案例和实践项目
8. 最佳实践和持续优化
这个中级应用大纲旨在帮助用户进一步深入理解和掌握 BCDedit 命令的高级功能和技术,实现更复杂的启动配置管理和故障排除,并通过实践项目提升实际应用能力和解决问题的能力。 |
|
以下是关于 BCDedit 命令高级应用的大纲: 1. BCD 存储文件定制和优化
2. 安全引导和启动认证
3. UEFI 引导和固件管理
4. 启动加载程序驱动程序管理
5. 高级启动选项配置和管理
6. BCD 命令脚本化和自动化
7. 故障排除和高级修复技术
8. 高级应用案例和实践项目
9. 最佳实践和持续优化
这个高级应用大纲旨在帮助用户深入掌握 BCDedit 命令的高级功能和技术,解决复杂的启动配置管理和故障排除问题,并通过实践项目提升实际应用能力和解决问题的能力。 |
|
以下是关于 BCDedit 命令专家应用的大纲: 1. BCD 存储文件结构和原理
2. 基本配置和管理
3. 启动选项和参数配置
4. 引导加载程序管理
5. 启动加载程序驱动程序管理
6. 多引导配置和管理
7. 故障排除和修复技术
8. 脚本化和自动化管理
9. 最佳实践和安全性
以上大纲旨在帮助用户深入理解 BCDedit 命令的高级应用,并掌握其在启动配置管理、故障排除和自动化管理方面的实践技能。 |
|
以下是关于 BCDedit 命令顶级应用的大纲: 1. BCD 存储文件结构与核心原理
2. 高级引导配置与管理
3. 安全引导和启动认证
4. UEFI 引导与固件管理
5. 启动加载程序驱动程序管理
6. 故障排除与高级修复技术
7. 脚本化和自动化管理
8. 最佳实践和持续优化
这个顶级应用大纲旨在帮助用户全面掌握 BCDedit 命令的高级功能和技术,以解决复杂的启动配置管理和故障排除问题,并通过最佳实践提升系统的稳定性和性能。 |
|
虽然 下面是一个示例步骤,演示如何使用
请注意,这种方法并不保证一定能够成功引导 Windows XP,因为 Windows XP 的引导过程与 Windows Vista/7/8/10/11 等版本不同,而且这种方法不是微软官方支持的。因此,如果你需要引导 Windows XP,最好使用传统的 |
|
下面是一个示例步骤,演示如何使用
请注意,在实际操作中,你可能需要根据你的系统配置和安装情况调整这些命令。使用 |
|
功能和作用:
适用系统版本范围:
使用注意事项:
示例系统版本:
这些系统版本均支持使用
在使用这个命令时,请务必谨慎,并确保了解其潜在的安全影响和使用场景。
|
C:\Users\Administrator>bcdedit
Windows 启动管理器
--------------------
标识符 {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale zh-CN
inherit {globalsettings}
bootshutdowndisabled Yes
default {current}
resumeobject
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
Windows 启动加载器
-------------------
标识符 {current}
device partition=C:
path \WINDOWS\system32\winload.efi
description Windows Server
locale zh-CN
inherit {bootloadersettings}
recoverysequence
displaymessageoverride Recovery
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \WINDOWS
resumeobject
nx OptOut
C:\Users\Administrator>bcdedit |find "osdevice"
osdevice partition=C:
bcdedit | find "osdevice" 命令是一个通过管道(pipe)组合 bcdedit 和 find 命令的例子。这个命令的作用是从 bcdedit 输出的结果中过滤出包含 “osdevice” 的行,通常用于查看操作系统的启动设备信息。
示例解析:
bcdedit | find "osdevice"
bcdedit:列出当前系统的启动配置。|(管道符):将bcdedit的输出传递给下一个命令。find "osdevice":从bcdedit输出中查找包含 "osdevice" 字段的行。
输出内容:
执行该命令后,你将看到类似下面的输出(具体内容会依系统配置而异):
osdevice partition=C:
这行表示操作系统所在的设备分区。在上面的示例中,操作系统被安装在 C 盘。
扩展应用:
你还可以使用 find 来查找其他字段的信息,例如:
-
查找系统启动路径:
bashbcdedit | find "path" -
查找当前启动项的标识符:
bashbcdedit | find "identifier"
这种方式可以帮助你快速定位你需要的启动配置项。

浙公网安备 33010602011771号