GRUB 更新和多 Linux

GRUB 更新和多 Linux

我已经安装了 Windows 10 和 Debian,最近我还安装了 Linux Mint。 GRUB 首先是由 Debian 安装的。

  • 据我所知,系统上只有一个发行版“控制”GRUB 设置(在我的例子中是 Debian)。
  • 从我的测试来看,这似乎是正确的:当我发布时,在 Mint 下,没有任何变化,甚至没有对Mintgrub-update进行任何更改。但是当我从 Debian 发布时,GRUB 菜单中的所有内容(还有 Mint 的东西)都是最新的。GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grubgrub-update

我想最终只保留 Mint 和 Windows,所以我搜索了如何让 Mint 来“控制”GRUB 设置。

看起来grub-install从 Mint 运行可以完成这项工作,但没有错误,并且在 Mint 中所做的更改/etc/default/grub不会应用。我在 GRUB 中也仍然有 debian 背景。

我没有指定设备grub-install,它位于 UEFI 系统上,所有操作系统分区都位于带有启动分区的磁盘上。

来源:

https://www.gnu.org/software/grub/manual/grub/grub.html#Installing-GRUB-using-grub_002dinstall

https://forums.linuxmint.com/viewtopic.php?t=98972

https://itsfoss.com/update-grub/

我错过了什么吗?另外,我想知道每个 linux 安装如何知道它是否负责更新 GRUB(某种程度)?

答案1

由于您的系统是 UEFI,这很可能是由于固件引导顺序中 Debian 的 GRUB 在 Mint 的 GRUB 之前造成的。

您可以通过efibootmgr -v以 root 身份运行来检查这一点。该BootCurrent行将标识最近用于引导系统的引导加载程序,指定BootOrder系统引导时尝试各种配置的引导选项的顺序,任何BootNNNN(其中N是数字)行都是实际的引导选项。

要重新排列引导选项,请使用efibootmgr -o XXXX,YYYY,ZZZZ...whereXXXX,YYYY,ZZZZ...是按所需顺序排列的 4 位引导选项的逗号分隔列表。为了避免固件错误,最安全的做法可能是保留原始BootOrder设置中的所有相同引导选项,然后更改它们的顺序。

或者,您应该进入 BIOS 引导设置,并将标记为“Ubuntu”或“Mint”的引导选项移到标记为“debian”的选项之前。这将实现与上面完全相同的效果efibootmgr -o ...

一旦您将 Mint 的 GRUB 作为引导顺序中的第一个,您现在应该在 GRUB 菜单中看到 Mint 的背景,这表明 Mint 的 GRUB 现在正在执行这项工作。然后,您应该验证是否仍然可以启动 Windows,然后您就可以准备删除 Debian 的分区了。

删除 Debian 后,您还应该使用 删除其引导选项efibootmgr -B -b XXXX,其中 XXXX 是 Debian 的引导选项号,并删除 ESP 分区上的 Debian 引导加载程序目录,最有可能通过运行sudo rm -r /boot/efi/debian.

相关内容