通过


BCDBoot 命令行参数

BCDBoot 是一种命令行工具,用于在电脑或设备上配置启动文件以运行 Windows作系统。 可以在以下方案中使用该工具:

  • 应用新的 Windows 映像后,将启动文件添加到电脑。 在典型的基于映像的 Windows 部署中,使用 BCDBoot 设置固件和系统分区以启动到映像。 若要了解详细信息,请参阅 捕获和应用 Windows、系统和恢复分区
  • 将电脑设置为启动到包含 Windows 映像的虚拟硬盘(VHD)文件。 若要了解详细信息,请参阅 “启动到 VHD”(本机启动):将虚拟硬盘添加到启动菜单
  • 修复系统分区。 如果系统分区已损坏,可以使用 BCDBoot 通过 Windows 分区中的这些文件的新副本重新创建系统分区文件。
  • 在双启动电脑上设置或修复启动菜单。 如果你在电脑上安装了多个 Windows 副本,则可以使用 BCDBoot 添加或修复启动菜单。

文件位置

Environment 文件位置
Windows %WINDIR%\System32\BCDBoot.exe
Windows 预安装环境 (WinPE) %WINDIR%\System32\BCDBoot.exe
Windows 评估和部署工具包 (Windows ADK) C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\BCDBoot\BCDBoot.exe

工作原理

若要配置系统分区,BCDBoot 会将一小部分启动环境文件从已安装的 Windows 映像复制到系统分区。

BCDBoot 可以使用最新版本的 Windows 文件在系统分区上创建启动配置数据(BCD)存储:

  • BCDBoot 创建新的 BCD 存储,并使用该文件初始化系统分区(包括 Windows 启动管理器 %WINDIR%\System32\Config\BCD-Template )上的 BCD 启动环境文件。
  • 在 Windows 10 及更高版本中,升级期间,BCDBoot 会在创建新的启动存储时保留任何其他现有启动项,例如 debugsettings/c使用此选项可忽略旧设置,并使用新的 BCD 存储重新开始。
  • 如果此 Windows 分区已有启动项,则默认情况下,BCDBoot 会清除旧的启动项及其值。 更新系统文件时,使用 /m 选项来保留现有启动项中的值。
  • 默认情况下,BCDBoot 将所选 Windows 分区的启动项移动到 Windows 启动管理器启动顺序的顶部。 使用 /d 此选项可保留现有启动顺序。

在 UEFI 电脑上,BCDBoot 可以更新设备的 NVRAM 中的固件条目:

  • BCDBoot 在 NVRAM 中添加固件条目以指向 Windows 启动管理器。 默认情况下,此条目作为启动列表中的第一项放置。 使用此选项 /p 可保留现有的 UEFI 启动顺序。 使用 /addlast 将其添加到启动顺序列表的底部。

命令行选项

以下命令行选项可用于 BCDBoot.exe。

BCDBOOT <source> [/l <locale>] [/s <volume-letter> [/f <firmware type>]] [/v] [/m [{OS Loader GUID}]] [/addlast or /p] [/d] [/c]
Option Description

<源>

Required. 指定要用作复制启动环境文件的源的 Windows 目录的位置。

以下示例使用 C:\Windows 文件夹中的 BCD 文件初始化系统分区:

bcdboot C:\Windows

/l <区域设置>

Optional. 指定语言环境。 默认值为美国英语(en-us)。

以下示例将默认 BCD 区域设置设置为日语:

bcdboot C:\Windows /l ja-jp

/s <卷标字母>

Optional. 指定表示系统分区的卷标字母。 此选项不应在典型部署方案中使用。

在配置将在另一台计算机上启动的驱动器(例如 USB 闪存驱动器或辅助硬盘驱动器)时,使用此设置指定系统分区。

UEFI

  • BCDBoot 将启动文件复制到 EFI 系统分区或 /s 选项指定的分区。

    BCDBoot 在同一分区中创建 BCD 存储。

    默认情况下,BCDBoot 在固件上的 NVRAM 中创建 Windows 启动管理器条目,以标识系统分区上的启动文件。 如果使用 /s 选项,则不会创建此项。 相反,BCDBoot 依赖于默认固件设置来标识系统分区上的启动文件。 根据 UEFI 2.3.1 规范,默认固件设置应打开文件:EFI 系统分区中的 \efi\boot\bootx64.efi。

BIOS

  1. BCDBoot 将启动文件复制到主硬盘驱动器上的活动分区或 /s 选项指定的分区。

  2. BCDBoot 在同一分区中创建 BCD 存储。

以下示例将 BCD 文件从 C:\Windows 文件夹复制到将在另一台计算机上启动的辅助硬盘驱动器上的系统分区。 为辅助驱动器上的系统分区分配了卷号 S

bcdboot C:\Windows /s S:

以下示例使用卷号 S 在 USB 闪存驱动器上创建启动条目,包括用于支持基于 UEFI 的计算机或基于 BIOS 的计算机的启动文件:

bcdboot C:\Windows /s S: /f ALL

/f <固件类型>

Optional. 指定固件类型。 有效值包括 UEFIBIOSALL

  • 在基于 BIOS/MBR 的系统上,默认值为 BIOS。 此选项在系统分区上创建 \Boot 目录,并将所有必需的启动环境文件复制到此目录。

  • 在基于 UEFI/GPT 的系统上,默认值为 UEFI。 此选项创建 \Efi\Microsoft\Boot 目录,并将所有必需的启动环境文件复制到此目录。

  • 指定 ALL 值时,BCDBoot 会同时创建 \Boot\Efi\Microsoft\Boot 目录,并将 BIOS 和 UEFI 所需的所有启动环境文件复制到这些目录。

如果指定 /f 选项,则还必须指定 /s 选项来标识系统分区的盘符。

以下示例将支持在基于 UEFI 或基于 BIOS 的计算机上启动的 BCD 文件从 C:\Windows 文件夹复制到分配了卷号 S 的 USB 闪存驱动器:

bcdboot C:\Windows /s S: /f ALL 

/v

Optional. 启用详细模式。 Example:

bcdboot C:\Windows /v

/m [{操作系统加载程序 GUID}]

Optional. 将现有启动项中的值合并到新的启动项中。

默认情况下,此选项仅合并全局对象。 如果指定 OS 加载程序 GUID,此选项将合并系统模板中的加载程序对象以生成可启动条目。

以下示例将当前 BCD 存储中由指定 GUID 标识的操作系统加载程序合并到新 BCD 存储中:

bcdboot c:\Windows /m {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

/addlast

Optional. 指定应最后添加 Windows 启动管理器固件条目。 默认行为是先添加它。 不能与 /p 一起使用。

bcdboot C:\Windows /addlast

/p

Optional. 指定应在 UEFI 启动顺序中保留现有的 Windows 启动管理器固件条目位置。 如果条目不存在,则会在第一个位置添加新条目。 不能与 /addlast 一起使用。

默认情况下,在升级期间,BCDBoot 会将 Windows 启动管理器移动到 UEFI 启动顺序中的第一个条目。

bcdboot C:\Windows /p
bcdboot C:\Windows /p /d

/d

Optional. 保留 Windows Boot Manager 中 {bootmgr} 对象中的现有默认作系统条目。

bcdboot C:\Windows /d

/c

Optional. 指定引导文件起始的映像根目录。 需要使用相对于映像根的路径构造此映像的 bcd 存储。

Windows 10 的新增功能:默认情况下,在升级期间,将保留 BCD 元素(如 debugsettingsflightsigning )。

bcdboot C:\Windows /c

/imageroot

Optional. 保留 Windows Boot Manager 中 {bootmgr} 对象中的现有默认作系统条目。

bcdboot C:\Images\ImageRoot\Files\Windows /f UEFI /imageroot C:\Images\ImageRoot\Files

/bootex

Optional. 如果满足必要条件,请使用bootex二进制文件进行维护。

请参阅 如何管理与 CVE-2023-24932 相关的安全启动更改的 Windows 启动管理器撤销

bcdboot c:\windows /f UEFI /s D: /bootex

/离线

Optional. 强制以脱机方式处理启动文件服务。 强制根据“bootex”开关的存在选择启动文件。

从 Windows 11 版本 24H2 内部版本 26100.8037 和版本 25H2 内部版本 26100.8037 开始受支持。

以下示例强制选择非Bootex二进制文件:

bcdboot c:\windows /f UEFI /s D: /offline

以下示例强制选择 bootex 二进制文件:

bcdboot c:\windows /f UEFI /s D: /offline /bootex

修复系统分区

如果系统分区已损坏,可以使用 BCDBoot 通过 Windows 分区中的这些文件的新副本重新创建系统分区文件。

  1. 将电脑启动到命令行。 例如,启动到 Windows 安装磁盘并按 Shift+F10,或启动到 Windows PE(WinPE:创建 USB 可启动驱动器)。

  2. 使用 Diskpart 确定哪个驱动器号包含你的 Windows 分区和系统分区(diskpart, list vol, exit)。

  3. 可选:设置系统分区的格式: format (drive letter of your system partition) /q

  4. 为 Windows 分区添加启动项: bcdboot D:\Windows

  5. 重新启动电脑。 Windows 应该出现。

在双启动电脑上设置或修复启动菜单

设置电脑以启动多个操作系统时,有时可能会失去启动其中一个操作系统的功能。 BCDBoot 选项允许快速为基于 Windows 的作系统添加启动选项。 若要设置双启动电脑,请执行以下步骤:

  1. 安装单独的硬盘驱动器,或为每个作系统准备单独的分区。

  2. 安装操作系统。 例如,如果电脑具有 Windows 7,请将 Windows 10 安装到其他硬盘驱动器或分区。

  3. 重新启动电脑。 启动菜单应显示两个操作系统。

    如果这两个操作系统都没有列出:

    1. 以管理员身份从 Windows 内部打开命令行,或者使用 Windows 安装媒体启动到命令行,然后按 Shift+F10,或者启动到 Windows PE(WinPE:创建 USB 可启动驱动器)。

    2. 在 Windows 操作系统中添加启动选项。

      bcdboot D:\Windows
      
    3. 重新启动电脑。 现在,启动菜单将显示这两个菜单选项。

捕获和应用 Windows、系统和恢复分区

配置 BIOS/基于 MBR 的硬盘驱动器分区

配置基于 UEFI/GPT 的硬盘分区

BCDedit

Bootsect 命令行选项

Diskpart 命令行语法