如何维护与 USB 驱动器 CMS EFI 相关的启动顺序

如何维护与 USB 驱动器 CMS EFI 相关的启动顺序

我有与此主题相同的问题,[连接/移除 USB 时如何获得 UEFI BIOS 启动顺序一致性?

当 CMS/EFI 未检测到无效启动条目时会自动删除该条目,我该如何维护用户指定的启动顺序?

当我进入设置程序并将启动顺序安排如下时,使用 CMS 启动:

  1. USB(grub4dos)
  2. 磁盘 1(Windows 7)
  3. 磁盘 2(Windows 7)

只要我插入 USB 驱动器,一切就都正常,并且符合规定。但是,一旦我移除 USB 驱动器,重新启动一次,然后重新插入驱动器,就会发生以下情况:

  1. 磁盘 1(Windows 7)
  2. 磁盘 2(Windows 7)
  3. USB(grub4dos)

根据上面的链接,这可能是我的主板制造商的不当实施。但我只是希望有一个解决方法。

答案1

我认为“CMS”是指兼容性支持模块 (CSM)。

无论如何,我不知道您遇到的问题有真正的解决方案;但是,有一个潜在的解决方法:您可以编写一个 EFI 程序,以您喜欢的任何方式调整启动顺序,并将其设置为默认启动程序。我不知道有任何程序可以做到这一点(尽管许多 Linux 发行版附带的fallback.efi/fbx64.efi程序在原理上有点相似 - 但它仅适用于 EFI 引导加载程序,不适用于任何可启动的 USB 设备)。因此,您需要自己编写程序,这是一项不简单的任务,除非您已经足够专业,不会问这个问题。

我所知道的最接近现成的解决方案是我自己的解决方案rEFInd 启动管理器。这对您的问题来说肯定是过度的,但您可以安装它,编辑refind.conf以启用 BIOS/CSM/传统模式启动(通过scanfor选项行),并将该default_selection行设置为可以拾取可启动 USB 设备的内容。不幸的是,可启动 USB 设备的确切描述可能因设备而异,因此,除非您想要启动的设备有限,否则即使是这种过度的解决方法也可能无法真正发挥作用。另一方面,也许它会起作用;您需要尝试一下才能知道。(可行性取决于您的固件如何命名可启动 USB 设备;如果有一个一致的字符串是 USB 设备独有的,如“USB”,那么这种方法可能会奏效。如果 USB 设备的名称完全唯一,并且您有很多,那么 rEFInd 不会有太大帮助。)使用 rEFInd 会使您的启动路径复杂化并增加启动过程的时间,即使您将其配置为 0 的超时时间。

总的来说,如果你真的非常绝望,你可能需要研究一下 rEFInd。但如果这只是一个小麻烦,那么最好还是忍受它,除非别人有更好的建议。

相关内容