Iva*_*dov 7 boot iso syslinux uefi
很长一段时间以来,我一直试图在Minimal Linux Live的 64 位版本中添加 UEFI 支持,但不幸的是没有取得太大成功。如下图所示,每次尝试通过 UEFI 启动时都会出现严重错误。
这是我为了达到这一点所做的:
efi64/efi/syslinux.efi
到\EFI\BOOT\BOOTX64.EFI
.efi64/com32/elflink/ldlinux/ldlinux.e64
到\EFI\BOOT\LDLINUX.E64
.\EFI\BOOT\BOOTX64.EFI
为\EFI\BOOT\BOOTX641.EFI
以“中断”引导过程并回退到 UEFI shell。edit
,然后导航到该\EFI\BOOT
文件夹。BOOTX641.EFI
,最终得到了您可以看到的相同错误。所以,我可以得出结论,我的 EFI 存根正在执行,但在执行过程中出现了一些问题,此时我不知道出了什么问题。
我检查了System Rescue CD的 ISO 映像结构,我知道它支持 UEFI,我注意到以下几点:
\efi\boot\bootx64.efi
.\efi\boot\bootx64.efi
是724KB,而Syslinux 6.03中对应的文件efi64/efi/syslinux.efi
是~200KB,所以这绝对不是同一个文件。\efi\boot\bootx64.efi
从“System Rescue CD”复制并在“Minimal Linux Live”中的 EFI 结构中使用它时,UEFI 引导过程很好,以至于我看到了 GRUB 2 shell。这就是我如何发现\efi\boot\bootx64.efi
“System Rescue CD”中的文件具有内置的 GRUB 2 支持,因此它必须是自定义构建的解决方案。
所以,问题就简单几句话 - 我使用的是 vanilla Syslinux 包,我想创建 UEFI 兼容的配置来启动一个简单的 ISO 映像。按照官方说明操作似乎对我不起作用。
非常感谢所有建议!谢谢!
注 1: ISO 映像在 BIOS 模式下可以正常启动。那里没有问题。
注意 2:这很可能不是 VirtualBox 中的错误,因为其他操作系统(例如 Ubuntu 和 Linux Mint)在 UEFI 模式下启动得很好。
编辑 1 -(2017 年 1 月):
很长时间没有答案,所以我以完全不同的方式实现了我的解决方案:
Syslinux
UEFI 启动模式下使用。startup.nsh
脚本,它在 UEFI 启动后自动执行。通过这种方式,我失去了一些启动功能,例如vga=ask
,Syslinux
它在 UEFI 模式下工作正常,但在 UEFI 模式下不起作用,因为这个特定的引导选项需要正确的 Linux 引导加载程序。
即使我有工作正常的解决方案,问题仍然存在。
编辑 2 -(2017 年 12 月):
这是对先前更新的补充。该解决方案startup.nsh
仅在 UEFI 系统具有“UEFI Shell”(根据 UEFI 规范,固件可能会或可能不会提供外壳)并且仅当该外壳具有 1 级或更高级别支持时才有效。此外,无法保证启动脚本会被执行,因为在 ISO 映像中提供 ESP 的正确方法是通过“El Torito”启动映像。直接在 ISO 映像上提供 ESP 兼容结构似乎在某些固件上运行良好,但这不是通用解决方案。
问题仍然存在,但同时我设法集成了systemd-boot并且我不再认为这个问题是高优先级的。
听起来更像是 System Rescue CD 使用 GRUB,而不是 syslinux。我的 grub64.efi 大约为 1MB,但我想您可以使用更少的模块来构建它。
您复制的映像名为 syslinux.efi,因此我不会将其称为 isolinux。我希望它寻找一个名为 的文件syslinux.cfg
,而不是isolinux.cfg
. (isolinux 会回退到syslinux.cfg
)。
我还注意到你说“所有 ISOLINUX 配置文件都在根文件夹中”。我不知道你是如何创建 ISO 的。请记住,引导加载程序需要位于特殊的引导映像中,而不是挂载 iso9660 文件系统时看到的目录树中。显然 VirtualBox 正在启动一些东西,所以这不是这里的问题,但如果它比其他系统更宽松,那么你可能仍然在做“错误”的事情。
由“几个流行的 Linux 发行版”设置的混合启动映像读起来非常有趣,但我上次读到的内容不太可能有一个单一映像支持所有 Mac、32 位 EFI...至少固件可以看到多个启动映像并要求用户在“1”和“2”之间进行选择。在任何人尝试进入兔子洞之前请注意,至少在 Mac 特定的支持下,仅实现您能够测试的部分可能会更安全。