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

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

我使用 Clover 作为我的第一个和默认的引导程序。如果在那里选择了 Ubuntu,那么 Grub 就会被激活(据我所知,没有办法跳过这一步,我根本不使用 Grub,所以我最好把它删除)。我的系统使用 UEFI,所以我使用以下方式设置了我的首选引导顺序

sudo efibootmgr -o XXXX,YYYY,ZZZZ

一切正常,直到 Grub 再次更新。在更新过程中,我的 UEFI 启动顺序设置被 Grub 默认值覆盖,Grub 始终被设置为第一个要访问的引导加载程序。

有没有什么方法可以保留我设置的启动顺序并防止 Grub 将其改回其默认值?

答案1

sudo dpkg-reconfigure grub-efi-amd64

对于前几个问题,请接受现有值(只需按 Enter 键),但是对于这个,请选择否:

 +----------------------| 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>                       |
 |                                                ^^^^                       |
 +---------------------------------------------------------------------------+

答案2

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

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

您可以通过这种方式确认设置:

echo "get grub2/update_nvram" | debconf-communicate

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

相关内容