显然,gummiboot 需要 Fat32 分区,但是 rEFIND 附带的 ext2 驱动程序可以与 gummiboot 一起使用,以便从 ext2 分区启动吗?
答案1
理论上是的,但你需要进行实验,而且解决方案可能很难看或需要大量工作。我想到了一些方法:
- Tianocore 提供的通用 EFI 用户界面包括加载驱动程序的选项。VirtualBox 和 DUET 使用此界面,但据我所知,唯一使用该界面的硬件是 Minnowboard。我从未在普通 PC 上看到过类似的选项,因此从实际角度来看,这不太可能起作用。(我也从未测试过此功能,因此我不知道加载驱动程序后它是否会正确绑定驱动程序。)
efibootmgr
您可以在 Linux 和/或EFI shell 中尝试bcfg
从 FAT 分区加载驱动程序作为第一个启动选项,将 ext2fs 分区上的 gummiboot 作为第二个选项。不过,我怀疑这是否会将驱动程序绑定到文件系统,所以我怀疑这不会起作用。不过,我可能是错的。如果它确实有效,驱动程序将加载并退出,然后 EFI 将启动 gummiboot。- EFI shell 脚本可以加载驱动程序,将其绑定到文件系统,然后从 ext2fs 分区启动您喜欢的任何程序。我非常有信心这会起作用。在大多数计算机上,您需要安装 EFI shell 程序作为默认启动程序。最大的问题是,我见过的 EFI shell 二进制文件似乎都会在启动时施加延迟,以便您可以选择不是运行
startup.nsh
启动脚本,这会减慢启动过程。 - 您可以编写一个自定义程序来加载驱动程序,将其绑定到您的文件系统,然后启动您喜欢的任何程序。事实上,rEFInd 可以完成这项工作;但是,这样做有点过头了,问题就变成了:为什么要使用 rEFInd 来启动 gummiboot?如果您有能力编写自定义程序,那么修改 gummiboot 以加载 ext2fs 驱动程序,然后从 ext2fs 分区启动内核几乎肯定会更容易。
所有这些方法都需要将 ext2fs 驱动程序(以及 EFI shell 或自定义驱动程序加载程序)放在普通的 FAT ESP 上。如果这是你的目标,那么摆脱 ESP 的唯一方法是构建你自己的带有内置 ext2fs 支持的自定义固件。(我想这可能是另一个项目列表项,但它将是一个很多为了获得微不足道的利益而工作。
此时,一个合乎逻辑的问题是:为什么您要使用 gummiboot 而不是 rEFInd?rEFInd 具有 gummiboot 的大部分功能以及更多自己的功能,因此 rEFInd 可能可以满足您的需要。如果您不喜欢图形显示,您可以设置选项textonly
以refind.conf
获得类似于 gummiboot 的文本模式显示。