您不能使用OSLOADER类型的应用程序来启动 Linux:这种类型是用于Windows加载程序的,此类应用程序是启动应用程序(与EFI 应用程序不同),它们由 Microsoft 独家签名并由 Windows 启动管理器启动(参见第一张幻灯片)此 UEFI 文档可以很好地描述该过程。)
另一方面,应该可以在 Windows 中添加另一个启动管理器,并将其注册到 UEFI(在 NVRAM 存储中);步骤和你写的差不多,用
bcdedit /create /d "LinuxLoader" {bootmgr}
作为第一次操作。bcdedit
( really)的操作原理bcdsrv
是,在最后一步,条目也应该被复制到 NVRAM;因此,您的 UEFI 管理器现在至少有两个选项可供选择,Windows 引导管理器可能仍是默认选项。这意味着在实践中您可能必须使用一些魔术键来启动此菜单(UEFI 引导管理器)。要更改默认条目,您可以尝试
bcdedit /set {fwbootmgr} default $newguid
这将更新BootCurrent
NVRAM 中的变量,因此 UEFI 固件应该优先选择 Linux 加载程序而不是 Windows;虽然不能保证,但我相信有一些 UEFI 固件在这个问题上编程不当;根据这个问题,恢复这种变化甚至似乎是Windows 8启动过程的标准行为:-(
此外,我还会在 {fwbootmgr} 列表中创建一个不同于标准位置 (ESP)\EFI\BootX64.efi 的条目:当某些(不明智的)工具决定恢复正确的值并用微软的bootmgfw.efi
...