如何防止Grub更新重置我的EFI启动顺序?

我使用Clover作为我的第一个和默认的引导程序。如果在那里选择Ubuntu,那么Grub就会被激活(据我所知,没有办法跳过这一步骤,我实际上并不使用Grub,所以我可以把它移除掉)。我的系统使用UEFI,因此我已经设置了我的首选启动顺序。
sudo efibootmgr -o XXXX,YYYY,ZZZZ

这个方法很好用,直到Grub再次更新。在更新过程中,我的UEFI启动顺序设置会被Grub的默认设置覆盖,导致Grub始终作为第一个可达到的引导加载程序。

有没有办法保持我设置的启动顺序,并防止Grub将其改回自己的默认设置?


/boot/grub/grub.cfg/etc/default/grub中是否有关于Clover的条目? - Paul Benson
不过,三叶草不需要被看到,我猜是吧?它有点像一个“元”引导加载程序,应该对grub来说是不可见的。例如,你不能从grub菜单进入三叶草。唯一需要发生的事情就是,在更新时,Grub保持EFI引导顺序不变。 - Daniel Schreij
2个回答

sudo dpkg-reconfigure grub-efi-amd64

对于前几个问题,请接受现有的值(只需按下回车键),但当涉及到这个问题时,请选择“否”。
 +----------------------| Configuring grub-efi-amd64 |-----------------------+
 |                                                                           |
 | GRUB can configure your platform's NVRAM variables so that it boots into  |
 | Debian automatically when powered on. However, you may prefer to disable  |
 | this behavior and avoid changes to your boot configuration. For example,  |
 | if your NVRAM variables have been set up such that your system contacts   |
 | a PXE server on every boot, this would preserve that behavior.            |
 |                                                                           |
 | Update NVRAM variables to automatically boot into Debian?                 |
 |                                                                           |
 |                    <Yes>                       <No>                       |
 |                                                ^^^^                       |
 +---------------------------------------------------------------------------+

Tobia的答案在一台机器上对我起作用,但在另一台机器上,我发现安装的是grub-pc而不是grub-efi-amd64。当我尝试dpkg-reconfigure grub-pc时,我发现它并不总是询问这个问题,尽管有时候在EFI模式下会使用它。所以为了找到这个设置存储的关键点,我发现它们实际上都修改了名为grub2/update_nvramdebconf数据库条目。感谢这篇文章,我发现你可以直接使用以下命令设置这个变量:

echo "set grub2/update_nvram false" | debconf-communicate

您可以通过以下方式确认设置:
echo "get grub2/update_nvram" | debconf-communicate

...将输出变量的当前值。

1很遗憾,这个答案在我的Ubuntu 20.04系统上不起作用。我已经将grub2/update_nvram设置为false,并且可以使用sudo debconf-show grub-pc进行验证,但是当通过apt upgrade更新grub-pc时,启动顺序仍然会改变。 - Robert