通过调用iso内的EFI可执行文件,通过uEFI启动iso文件

Bor*_*era 7 boot-loader live-usb uefi

我想创建一个可以用来启动多个 iso 文件的 U 盘。我想通过 uEFI 做到这一点。

U 盘看起来像这样:

/EFI
  /bootx64.efi
  /something.conf
/isos
  /foo.iso
  /bar.iso
  ...
Run Code Online (Sandbox Code Playgroud)

在这里,/isos保存了一堆 uEFI 可启动的 iso 文件。据我了解,这些isos有一个/EFI/BOOT<some arch>.efiuEFI booloader通常会执行的文件。

驱动器上/EFI/bootx64.efi有一些待确定的 efi booloader 和/EFI/something.conf它的配置文件。

我需要的是一些 uEFI 可执行文件,它可以以某种方式/EFI/BOOT<some arch>.efi在其中一个 iso 文件中调用。不知道理论上是否可行。

我知道 GRUB2 可以做类似的事情,但它需要指定 linux 映像、它的选项和 initrd 文件。这与一个 iso 不同,有时,它根本不起作用。我希望通过调用/EFI/BOOT<some arch>.efi,我不必指定这些,我可以有一个方法来启动任何 iso 映像。

我的问题是:是否有 uEFI 引导加载程序可以让我调用位于 iso 文件中的 EFI 可执行文件?

use*_*445 4

这不适用于所有 ISO,但您可以使用syslinux 中的MEMDISK将 ISO 作为 RAMDISK 映像复制到内存。BIOS 调用将看到 RAMDISK,Linux 也将识别 RAMDISK。为此,您必须将 syslinux.efi 和相关文件复制到 EFI 系统分区 (ESP) 上的某个位置,例如EFI/syslinux. 然后,按照MEMDISK 页面/EFI/syslinux/syslinux.cfg上的示例,为您的 ISO 文件创建一堆 memdisk 内存选项。