目前,我在传统(MBR)模式下有以下引导链:
GRUB2 -> Linux -> kexec 到 Grub4Dos -> Windows。
我试图弄清楚这在 UEFI 模式下是否也可行,即从 Linux-EFI 启动 Windows EFI 加载程序。
问题可能是 Linux 将调用 ExitBootServices() 并且在此之后,无法启动另一个 EFI 加载程序。
有谁知道如何做到这一点?
谢谢。
我可以看到两种可能性:
如果您在 UEFI 中,您可以加载映像(Windows 启动管理器)并启动/执行映像。这将启动 Windows。
对于第二种方法,需要回答一个问题:您的 linux-efi 应用程序如何启动/引导?如果您将应用程序添加到 UEFI 引导管理器作为第一个要引导的应用程序,请确保 windows 是 UEFI 引导顺序变量中的第二个应用程序。然后,当您的应用程序退出时,UEFI 将进入下一个可用的启动选项,它应该是 Windows。
许多 Linux 发行版使用 Shim、Preloader(由 Linux 基金会提供)或 systemd-boot(以前称为 gummiboot)来绕过 secureboot 并加载 grub2。Grub2 能够链式加载任何其他(签名的)efi-loader。