![如何为设备间持久存在的可移动驱动器添加 UEFI 启动项?](https://linux22.com/image/1629582/%E5%A6%82%E4%BD%95%E4%B8%BA%E8%AE%BE%E5%A4%87%E9%97%B4%E6%8C%81%E4%B9%85%E5%AD%98%E5%9C%A8%E7%9A%84%E5%8F%AF%E7%A7%BB%E5%8A%A8%E9%A9%B1%E5%8A%A8%E5%99%A8%E6%B7%BB%E5%8A%A0%20UEFI%20%E5%90%AF%E5%8A%A8%E9%A1%B9%EF%BC%9F.png)
我经常使用两个 UEFI 实用程序,并希望从同一个 USB 启动它们。如何才能在同一个 USB 的启动菜单中获取多个条目?我避免使用软件引导加载程序之类的中间人,因为这会增加额外的启动时间。
我正在寻找一种在 USB 驱动器本身上实现这种效果的方法,这样我就可以默认启动一个实用程序,或者进入启动菜单来选择另一个实用程序。
我尝试在一个 USB 上创建多个分区,但引导加载程序很笨,只会抓取它看到的第一个 \EFI\BOOT\BOOT*.EFI。如果我将第一个分区上的 EFI 文件夹重命名为 noEFI,它将从第二个分区启动,但它不会识别出有两个分区。
我确信我配置错了——UEFI 引导加载程序应该扫描每个分区以查找 \EFI\BOOT\BOOT*.EFI,对吗?
答案1
可移动媒体设备不能在 UEFI 启动菜单中添加多个启动项。
启动管理器在移动到下一个设备之前会找到第一个包含 \EFI\BOOT\BOOT{机器类型短名称}.EFI 的 EFI 分区,因此任何其他分区(无论格式如何正确)都会被忽略。
不知道为什么要这样设计。
对于可移动媒体设备,必须只有一个符合 UEFI 标准的系统分区,并且该分区的根目录中必须包含一个 UEFI 定义的目录。该目录将被命名为 EFI。所有操作系统加载器和应用程序都将存储在 EFI 下名为 BOOT 的子目录中。BOOT 目录中每个受支持的处理器架构只能有一个可执行 EFI 映像。要使可移动媒体在 EFI 下可启动,必须按照第 3.5.1.1 节中列出的规则进行构建。这可确保只有一个映像可由 EFI 启动管理器从可移动媒体设备自动加载。任何其他 EFI 可执行文件都必须位于 BOOT 以外的目录中。