BCD 启动菜单与 Windows 引导

BCD 启动菜单与 Windows 引导

BCD 启动菜单

编辑 BCD 菜单

使用 Bootice 编辑 BCD 菜单

编辑 WINPE U盘的 BCD

修复 BCD

使用 Bootice 修复 BCD

使用命令行修复 BCD

BCD 启动菜单

BCD 是 Boot Configuration Data 的缩写,即有关启动设置的数据。无论是以往 BIOS 启动模式(legacy)下的 ntldr 启动还是现在流行的 EFI 启动,XP 之后的 Windows 系统1都需要读出 BCD 文件存储的启动信息来引导启动。

编辑 BCD 菜单

在 CMD 中,我们可以使用bcdedit指令来编辑 BCD 菜单,但这显然是非常不直观的。为了方便编辑,我们在这里使用 Bootice 来进行操作。

使用 Bootice 编辑 BCD 菜单

打开 Bootice 后,我们选择 BCD 编辑页面,点击智能编辑模式。

如果想要编辑的不是当前系统的 BCD,比如想编辑 Windows 安装 U 盘中的 BCD,或是在 PE 模式下读取原系统的 BCD,则需要手动寻找 BCD 位置。通常情况下的 BCD 位置如下:

BIOS 启动:

C:\boot\bcd

EFI 启动:

Z:\efi\microsoft\boot\bcd //Z盘代表ESP分区

进入编辑界面后,我们可以看到在左侧列出了全部的引导项目,如果想增加引导系统,只需要点击添加即可,反之点击删除。在右侧显示的是当前选中的引导项目的详细参数。

在这里我们要修改如下几项:

设备类型

通常为 Partition 分区,如果你的系统装在 RamDisk 或者 VHD 上面,那么我想你的技术水平应该不需要参考这篇 Tutorial,在这里我就不详细说明了。

启动磁盘

选择系统安装所在的硬盘。

启动分区

选择 C 盘的分区。

菜单标题

随便起一个自己看的懂的标题,例如WIN10 EDU X64

启动文件

这里注意,要根据启动方式选择对应的启动文件。

\windows\system32\boot\winload.exe // 对于BIOS启动的系统

\Windows\system32\winload.efi // 对于EFI启动的系统

系统路径

这里是统一的

\Windows

全部修改完后记得保存。

编辑 WINPE U盘的 BCD

有的时候,我们希望 U 盘能同时启动 Windows 官方安装镜像和 PE 系统,当然你可以选择用 GRUB2 这种功能强大的工具达到这个目的,但是比较简单的办法就是直接编辑 BCD 文件。

首先,我们先把 Windows 安装镜像用软碟通写入 U 盘,这样我们就得到了一个纯净的 Windows 环境。

之后在 U 盘根目录建立WINPE目录2,之后把 WINPE 镜像中的有效成分WINPE.sdi和WINPE.wim拷入目录下。3

之后打开 Bootice,依次编辑两处 BCD:

BIOS 启动:

BCD 位置:U:\boot\bcd

EFI 启动:

BCD 位置:U:\efi\microsoft\boot\bcd

在左侧选择添加-添加 WIM 启动项

照着图片修改即可

设备类型

选择 WIM 启动项,这里自动是 RamDisk,WIM 在启动时被挂载到内存,所以用 RamDisk 很合理。

启动磁盘

没有实际的硬盘,选择 WIM

启动分区

设备文件

即 WIM 文件,WINPE 包含的系统的所有文件

SDI 文件

SDI 文件是系统部署映像,体积几百 KB,理解为配置文件即可。

菜单标题

随便起一个自己懂的标题就行。

启动路径

和 Windows 的配置一样,注意不同启动方式路径不同。

系统路径

同样是统一的\Windows

修复 BCD

有的时候,因为一些操作(比如更换硬盘等),导致系统找不到 BCD 文件,表现为开机蓝屏报错如下。

Your PC needs to be repaired

The Windows Boot Configuration Data file is missing required information

File: \Boot\BCD

这时候我们就需要修复 BCD,方法有两种。

使用 Bootice 修复 BCD

进入 PE 环境运行 Bootice,按照上文介绍的配置方法,重新设置 BCD。如果发现 BCD 文件遗失,可以从 PE 的目录或者其他运行正常的 Windows 系统下复制一份 BCD 然后拷入相应的位置即可。

使用命令行修复 BCD

Windows 提供了一条bcdboot指令可以供我们用来修复 BCD,具体用法如下:

C:\Users\admin>bcdboot -help

Bcdboot - Bcd 启动文件创建和修复工具。

bcdboot.exe 命令行工具用于将关键启动文件复制到

系统分区以及创建新的系统 BCD 存储。

bcdboot [/l ] [/s [/f ]] [/v]

[/m [{OS Loader ID}]] [/addlast] [/p] [/c]

source 指定 Windows 系统根目录的位置。

/l 指定在初始化 BCD 存储时使用的

可选区域设置参数。默认值为“简体中文”。

/s 指定一个可选的卷号参数,该参数用于指定

要将启动环境文件复制到的目标系统

分区。默认值为固件所标识的

系统分区。

/v 启用详细模式。

/m 如果提供了操作系统加载器 GUID,则此选项可以将

给定的加载器对象与系统模板合并,以生成

可启动条目。否则,只合并全局对象。

/d 指定应保留现有的默认

Windows 启动条目。

/f 与 /s 命令一起使用,指定目标系统分区

的固件类型。 的选项是 'UEFI'、

'BIOS' 或 'ALL'。

/addlast 指定 Windows 引导管理器固件条目

应该最后添加。默认行为是首先添加

它。

/p 指定 Windows 引导管理器固件条目

位置应予以保留。如果条目不存在,

则将在第一个位置添加新条目。

/c 指定不应迁移模板描述的

任何现有对象。

示例: bcdboot c:\windows /l en-us

bcdboot c:\windows /s h:

bcdboot c:\windows /s h: /f UEFI

bcdboot c:\windows /m {d58d10c6-df53-11dc-878f-00064f4f4e08}

bcdboot c:\windows /d /addlast

bcdboot c:\windows /p

一般我们只需要记住这两条:

BIOS 启动:

bcdboot C:\Windows /f bios

EFI 启动:

bcdboot C:\Windows /s Z: /f uefi

注意其中的Z:代表 ESP 分区,需要手动挂载到 Z 盘符。关于如何挂载 ESP 分区可以参考DISKPART指令挂载ESP分区。

参考链接:

编辑启动选项:

https://docs.microsoft.com/zh-cn/windows-hardware/drivers/devtest/editing-boot-options

XP 之前的系统启动信息存储在 Boot.ini 文件中。 ↩

当然如果你想的话可以把这个文件夹改成任何名字,只需要在后续操作中改成相应目录即可。 ↩

同样,如果你的PE不叫这个名字,你只需要找到同样后缀名的两个文件,然后重命名即可。 ↩

相关推荐

sql查询数据为什么会重复数据库
天涯明月刀神刀心法怎么搭配?洞察属性
正在阅读:蜜芽如何进行拼团 蜜芽拼团的方法步骤蜜芽如何进行拼团 蜜芽拼团的方法步骤