如何防止Ubuntu在更新后覆盖grub引导程序?

有没有办法阻止Ubuntu覆盖引导程序?
这种情况发生在更新(我猜是)系统内核之后。我希望能够保留其他Linux发行版的引导程序,而不必每次特定的Ubuntu更新都手动更改它。
谢谢。

1尝试禁用或卸载它。 - Dishank Jindal
我刚刚偶然发现了这个答案。简而言之,卸载grub*,然后使用apt-mark hold grub*命令防止其重新安装。 - Hendy
2个回答

Grub记住重新安装的位置。
要查看grub2使用的驱动器,请查看以下行 - grub-pc/install_devices,检查当前设置为何值。
sudo debconf-show grub-pc

要让 grub2 在更新时记住重新安装的位置,grub-pc 适用于 BIOS,而 grub-efi 适用于 UEFI。如果您取消选择所有选项,则上述命令应更改为空白,否则 grub 将不会重新安装。
sudo dpkg-reconfigure grub-pc
sudo dpkg-reconfigure grub-efi-amd64

进入第一页,使用空格键选择/取消选择驱动器,按回车键确认,不要选择分区。

http://ubuntuforums.org/showthread.php?t=2189643

你也可以只是改变安装 grub 到一个分区。我们建议不要安装到分区,因为它的效果不好,但如果真的使用另一个 grub 的副本来引导,那就不是问题。
如何:创建一个定制的 GRUB2 屏幕,无需维护 - Cavsfan

https://help.ubuntu.com/community/MaintenanceFreeCustomGrub2Screen


@oldfred的回答引导我找到了正确的答案。
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>                       |
 |                                                ^^^^                       |
 +---------------------------------------------------------------------------+

  • 相关问题