BCDBoot 命令行选项

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

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

文件位置

环境 文件位置
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 使用 %WINDIR%\System32\Config\BCD-Template 文件创建新的 BCD 存储,并初始化系统分区上的 BCD 启动环境文件,包括 Windows 启动管理器。
  • 在 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]
选项 说明

<source>

必需。 指定在复制启动环境文件时用作源的 Windows 目录的位置。

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

bcdboot C:\Windows

/l <locale>

可选。 指定区域设置。 默认设置为美国英语 (en-us)。

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

bcdboot C:\Windows /l ja-jp

/s <volume letter>

可选。 指定系统分区的卷号。 不应在典型部署方案中使用此选项。

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

UEFI

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

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

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

BIOS

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

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

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

bcdboot C:\Windows /s S:

以下示例在卷号为 S 的 U 盘上创建启动项,包括用于支持基于 UEFI 或基于 BIOS 的计算机的启动文件:

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

/f <firmware type>

可选。 指定固件类型。 有效值包括 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 的 U 盘:

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

/v

可选。 启用详细模式。 例如:

bcdboot C:\Windows /v

/m [{OS Loader GUID}]

可选。 将现有启动项中的值合并到新的启动项中。

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

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

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

/addlast

可选。 指定应最后添加 Windows 启动管理器固件项。 默认行为是首先添加此项。 不能与 /p 结合使用。

bcdboot C:\Windows /addlast

/p

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

默认情况下,在升级期间,BCDBoot 会移动 Windows 启动管理器,使之成为 UEFI 启动顺序中的第一个项。

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

/d

可选。 在 Windows 启动管理器的 {bootmgr} 对象中保留现有的默认操作系统项。

bcdboot C:\Windows /d

/c

可选。 指定不应迁移任何现有的 BCD 元素。

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

bcdboot C:\Windows /c

修复系统分区

如果系统分区已损坏,可以通过 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 命令行语法