在另一个分区中更新操作系统后,GRUB 损坏

在另一个分区中更新操作系统后,GRUB 损坏

我有一台三重启动 PC,其中装有 Ubuntu 16.04、基本操作系统 Luna 和 WinXP,第一个是启动时加载的主要操作系统。一切运行良好。在相应分区中运行 eOS 更新后,我最终得到 i) GRUB 在启动时默认启动 eOS 而不是 Ubuntu,以及 ii) 在可启动操作系统的选择列表中有大约 8 个 Ubuntu 条目可供选择。

我知道 eOS Luna 是一个相当旧的版本,但目前我想保留它。

是否有人知道 i) 造成这种影响的原因是什么以及 ii) 如何修复它,即使得 GRUB 默认启动 U. 并消除那些多余的条目?

乌尔里希

答案1

如果可以的话,只需启动 Ubuntu 并更新 Grub

sudo update-grub

重新启动。这应该可以解决问题。

答案2

如果您能够启动 Ubuntu,请安装并运行“启动修复工具”。如果无法启动 Ubuntu,请创建并启动 Ubuntu 实时磁盘,然后安装并运行启动修复工具。这应该可以解决问题。

答案3

我猜,您也在 eOS 中安装了 Grub,但由于它安装在 Ubuntu 中,所以不需要它。我猜启动分区 (/boot) 是共享的,但您没有共享的 Grub 自定义配置。如果执行了 eOS 更新update-grub,grub 配置将根据位于 eOS 的 /etc/default/grub 中的自定义配置进行更改。

单独的启动分区

如果启动分区不是共享,然后启动标志被移至 eOS 启动分区。然后修复就很容易了。打开任何分区管理器(fdisk、gparted、gnome-disc-utilities 等)并将启动标志移至 Ubuntu 启动分区。

共享启动分区

如果启动分区是共享的,那么当您启动到 Ubuntu 并运行sudo update-grub命令时,grub 应该和之前一样。

或者,您可以将自定义配置从 Ubuntu 复制到 eOS 或从 eOS chroot 到 Ubuntu 并运行sudo update-grub命令 - 它应该具有与启动到 Ubuntu 类似的效果。

另一种方法是从 eOS 中删除 Grub,但随后您需要 chroot 到 Ubuntu 并运行命令sudo grub-install。可以从 eOS 执行 chroot,或者如果您重新启动 PC,则需要 live cd 来执行此操作。

其他

如果之前的提示没有帮助,请尝试在这些链接中寻找解决方案。

关于安装/重新安装/修复问题/移动/...的文章 Grub 是这里

有关配置 Grub 的文章是这里

答案4

感谢大家的建议和支持。现在已经修复。

首先:update-grub 没有任何效果。然后我从 Live-CD 启动 Ubuntu,安装并启动“引导修复”,然后运行标准恢复。这花了一段时间,但随后系统说引导扇区已成功恢复。但什么都没有改变。仍然具有相同的效果,eOS 默认启动,启动时选择列表中有一大堆无意义的条目。我最终使用引导修复/高级选项修复了它,在其中一个选项卡上可以定义默认启动的操作系统(如果没有选择其他任何内容)。其他一切都保持不变。然而,这导致完全重新安装 GRUB。效果很好。很棒的工具!

相关内容