1
acess 2017-04-08 07:25:39 +08:00
据我所知…… UEFI 有个 NVRAM 可以保存设置,其中就有各种启动项,包括但不限于 Windows Boot Manager 、 grub2 、 PXE 、 U 盘等。
每次开机时 UEFI 固件都会扫描一下硬件,更新这个列表。 有些蛋疼的问题也出自这个特性,比如联想笔记本把 U 盘里的 grub2 识别成某 Linux 导致无法启动、手动添加的 UEFI 启动项重启完就消失等。 至于 BCD 文件……应该是 Windows 启动时,就从 NVRAM 里拷了一份启动项列表,然后在使用 bcdedit 时和 NVRAM 保持同步。 |
2
acess 2017-04-08 07:27:54 +08:00
BCD 数据库里有{fwbootmgr}和{bootmgr}两个对象,我觉得{fwbootmgr}应该是和 UEFI NVRAM 保持同步的,但你也可以通过 /store 参数指定某个 BCD 数据库,然后读取 /修改这个 BCD 里存储的{fwbootmgr}启动项。
|
3
acess 2017-04-08 07:33:43 +08:00
ESP 分区和一般 FAT 分区还真不一样(而且我记得 ESP 应该用 FAT32 而不是 FAT16 ?)。 ESP 是有自己的分区类型 GUID 的,有时候还会设置 GPT Attribute ,设置隐藏、必须等,这俩属性用 diskpart 、 gdisk 可以查看、修改。
至于两块硬盘都有 ESP 的情况……感觉列表里要列出几个、哪个排前面要看 UEFI 固件的心情吧。另外, UEFI 启动项可以设置隐藏属性( BOOTICE 中可见),可能是这个隐藏属性,结合了 UEFI 固件开机时自动扫描硬件的行为,最终导致了 LZ 看到的“四个启动项在 BIOS 里只看到一个”等怪现象。 |
4
acess 2017-04-08 07:36:34 +08:00
BCD 实际上就是个 registry hive ,注册表编辑器可以加载它的。
LZ 还可以看看这个:http://www.yiiyee.cn/Blog/bcd-1/#more-746 |
5
acess 2017-04-08 07:40:14 +08:00
既然 LZ 提到“提示 bcd 出现问题需要修复”,那么我猜“四个启动项在 BIOS 里只看到一个”和“提示 bcd 出现问题需要修复”这两个现象也有可能是 LZ 使用 EasyUEFI 不当地修改了{bootmgr}中的某些值导致的。
|