防止 GRUB 更新更改 EFI 启动顺序

防止 GRUB 更新更改 EFI 启动顺序

我目前正在开发一个包含 Ubuntu 18.04、macOS 和 Windows 的三重启动系统。固件(ASUS Impact VII,基于 APTIO 的 EFI)应该启动的标准引导程序是 Clover。然后,Clover 运行 GRUB 2、Apple 的 EFI 引导程序或 Windows 引导程序。

问题是,当我通过 apt/dpkg 更新 Ubuntu 18.04 系统上的 grub-efi 包时,EFI 固件将在下次重启时继续启动 GRUB 而不是 Clover。

我理解这种情况发生是因为 GRUB 设置更改了 EFI 变量,使自己成为默认引导加载程序。更具体地说,它不会传递--no-nvram给 grub-install。

如何制作 GRUB EFI 包不是通过 grub-install 修改 EFI 启动变量,以便 Clover 仍然是默认的引导加载程序?

答案1

回答我自己的问题:grub-efi-amd64 的 postinst 脚本具有我要求的功能。当 debconf 变量为 false时,它​​将传递--no-nvram给 grub-install 二进制文件。grub2/update_nvram

运行dpkg-reconfigure grub-efi-amd64并在询问是否自动维护 nvram 条目时回答“否”。

答案2

grub-efi-amd64-signed 中有一个错误https://bugs.launchpad.net/ubuntu/+source/grub2-signed/+bug/1969845因此,如果不手动更改 grub-efi-amd64-signed 的 postinst 脚本,就无法阻止这种行为。

相关内容