如何为设备间持久存在的可移动驱动器添加 UEFI 启动项?

如何为设备间持久存在的可移动驱动器添加 UEFI 启动项?

我经常使用两个 UEFI 实用程序,并希望从同一个 USB 启动它们。如何才能在同一个 USB 的启动菜单中获取多个条目?我避免使用软件引导加载程序之类的中间人,因为这会增加额外的启动时间。

我正在寻找一种在 USB 驱动器本身上实现这种效果的方法,这样我就可以默认启动一个实用程序,或者进入启动菜单来选择另一个实用程序。

我尝试在一个 USB 上创建多个分区,但引导加载程序很笨,只会抓取它看到的第一个 \EFI\BOOT\BOOT*.EFI。如果我将第一个分区上的 EFI 文件夹重命名为 noEFI,它将从第二个分区启动,但它不会识别出有两个分区。

我确信我配置错了——UEFI 引导加载程序应该扫描每个分区以查找 \EFI\BOOT\BOOT*.EFI,对吗?

答案1

可移动媒体设备不能在 UEFI 启动菜单中添加多个启动项。

启动管理器在移动到下一个设备之前会找到第一个包含 \EFI\BOOT\BOOT{机器类型短名称}.EFI 的 EFI 分区,因此任何其他分区(无论格式如何正确)都会被忽略。

不知道为什么要这样设计。


UEFI 规范 v2.8(2020 年 5 月)

对于可移动媒体设备,必须只有一个符合 UEFI 标准的系统分区,并且该分区的根目录中必须包含一个 UEFI 定义的目录。该目录将被命名为 EFI。所有操作系统加载器和应用程序都将存储在 EFI 下名为 BOOT 的子目录中。BOOT 目录中每个受支持的处理器架构只能有一个可执行 EFI 映像。要使可移动媒体在 EFI 下可启动,必须​​按照第 3.5.1.1 节中列出的规则进行构建。这可确保只有一个映像可由 EFI 启动管理器从可移动媒体设备自动加载。任何其他 EFI 可执行文件都必须位于 BOOT 以外的目录中。

相关内容