我想向GRUB配置文件(.cfg)中添加grub-mkstandalone生成的MokManager和variuos自定义GRUB的菜单条目。
在编辑文件之前,我已经尝试过chainload过程,但没有成功。
启用了Secure Boot。
代码:
insmod chain
chainloader ([EFI PARTITION])/EFI/ubuntu/MokManager.efi
boot输出:
/EndEntire
file path: /ACPI(*)/PCI(*)/Sata(*)/HD(*)/
File(\EFI\ubuntu)/File(MokManager.efi)/EndEntire
error: Cannot load image同样的情况发生在任何其他引导程序上。
更新:
我已经读到,这种行为是由GRUB2错误引起的,当Secure Boot启用时,它无法启动其他引导加载程序,因为GRUB实际上没有密码来验证与shim不同的标志。
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091464
对于OpenSUSE GRUB,迈克尔·张( Michael )在2012年发布了一个补丁,使得GRUB依赖于shim验证来链接其他二进制文件:
发布于 2017-01-25 09:38:34
有些挂件会从grub启动,即使它们不会从计算机自己的BIOS USB启动菜单条目启动。有关grub的背景信息,请参阅下面的链接
编辑文件
sudo nano /etc/grub.d/40_custom将以下文本添加到文件40_custom (请注意,保留文件中的第一行很重要)
menuentry "External drive (on hd1) if no eSATA drive connected. edit if necessary" {
insmod part_msdos
insmod part_gpt
insmod fat
set root='(hd1)'
drivemap -s (hd0) ${root}
chainloader +1
}并运行命令
sudo update-grub然后,您将获得一个grub菜单选项从第二个驱动器(hd1)启动,这可能是一个USB吊坠。如果另一个驱动器是hd1,则可以将行编辑为(hd2)等。
如果没有grub菜单,在引导过程中按左shift键,它应该会出现。
我在BIOS模式下使用这种链式加载方法。我还没有在UEFI模式下测试它。
https://askubuntu.com/questions/875978
复制相似问题