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