Ubuntu 15.10 GRUB 菜单选项在更新 Ubuntu 14.04 后消失

Ubuntu 15.10 GRUB 菜单选项在更新 Ubuntu 14.04 后消失

我有一台带有多个磁盘的计算机系统。我安装了 Ubuntu 14.04 LTS 作为主操作系统,但我还在单独的磁盘上安装了 Windows 7。最近,我在另一个磁盘上安装了 Ubuntu 15.10,当我这样做时,安装程​​序显然看到我还安装了 14.04,并创建了一个启动菜单,其中 15.10 为默认,14.04 为可选。这不是我想要的,我打算通过固件启动选项在 14.04 和 15.10 之间切换,并且让两个 Ubuntu 安装彼此不知情,除非我决定安装另一个磁盘,但无论如何,一切都正常。我使用了 15.10 一段时间,然后在几个月后重新启动到 14.04。

不出所料,14.04 安装有大量待处理的更新,因此我继续使用软件更新程序进行更新。我认为其中一个更新是针对 GRUB 的。安装更新后重新启动时,启动 15.10 的选项不再可用。我尝试在我的实时 Ubuntu 14.04 USB 驱动器上使用启动修复实用程序,但它建议我做一些对我来说可能很危险的事情,即:

sudo chroot "/mnt/boot-sav/sda2" dpkg --configure -a
sudo chroot "/mnt/boot-sav/sda2" apt-get install -fy
sudo chroot "/mnt/boot-sav/sda2" apt-get install -y --force-yes dmraid
sudo chroot "/mnt/boot-sav/sda2" dmraid -ay
sudo chroot "/mnt/boot-sav/sda2" apt-get install -y --force-yes lvm2
sudo chroot "/mnt/boot-sav/sda2" apt-get purge -y --force-yes grub*-common grub-common:i386 shim-signed linux-signed*

所以我取消了该操作并让其生成一个启动信息报告,可在此处找到:

http://paste.ubuntu.com/15146374/

有人能帮我找出问题所在以及我应该如何修复它吗?如果使用引导修复实用程序的建议是安全的,我可以这样做。我想我甚至可以在需要时重新安装 15.10,但我认为 15.10 数据仍然存在,我想了解发生了什么,以便我可以防止将来再次发生这种情况。非常感谢您的帮助!

答案1

如果我正确读取了您的输出,Ubuntu 15.10 安装在名为 的 LVM 逻辑卷中/dev/mapper/ubuntu-vg-root;但是,该脚本无法识别该逻辑卷上的文件系统。这可能意味着:

  • 由于错误或配置错误,脚本无法检测到 Ubuntu 15.10 —— 这是比较乐观的原因,但实际上并没有多大帮助,因为这意味着您缺少数据。您可以先从ls /dev/mapper/ubuntu-vg-rootUbuntu 14.04 尝试。如果文件不存在,您可能需要在 Ubuntu 14.04 中安装一些 LVM 组件(尝试sudo apt-get install lvm2)。如果这导致/dev/mapper/ubuntu-vg-root出现,请尝试sudo update-grub看看是否有帮助。如果/dev/mapper/ubuntu-vg-root已经存在,那么您可以尝试sudo blkid /dev/mapper/ubuntu-vg-root,和/或尝试安装它,以验证文件系统是否完好无损。
  • 文件系统已损坏——如果 上的文件系统/dev/mapper/ubuntu-vg-root已损坏,那么您就有麻烦了。如果您在该安装中有任何关键数据,则应首先进行低级备份,如sudo dd if=/dev/mapper/ubuntu-vg-root of=/path/to/lots/of/space/u1510-backup.img。然后您可以尝试sudo fsck /dev/mapper/ubuntu-vg-root修复它。如果修复成功,执行sudo update-grub可能会将其带回启动菜单。

一个完全不同的方法是尝试另一种启动方法。特别是我的rEFInd 启动管理器可能有帮助:

  1. 从以下网址下载 rEFInd 的 USB 闪存驱动器或 CD-R 版本其下载页面。
  2. 从 rEFInd 准备启动介质。
  3. 如果已启用安全启动,请将其禁用。(如果愿意,您可以稍后重新启用它。)
  4. 启动 rEFInd 介质。它应该会显示两个 Ubuntu 安装的选项,尽管标签可能不清楚。14.04 安装可能指启动boot\vmlinuz-3.13-*,而 15.10 安装可能指启动vmlinuz-4.2.0-*(没有前导boot\,并且内核版本号更高)。
  5. 突出显示 15.10 条目并按 F2 或 Insert 两次。这将打开一个带有内核选项的简单文本模式行编辑器。
  6. 添加ro root=/dev/mapper/ubuntu-vg-root到启动选项。
  7. 按 Enter。

如果 rEFInd 启动 Ubuntu 15.10,您可以安装 rEFInd Debian 包或 PPA。这将使 rEFInd 成为默认启动程序。您可以从任一发行版进行安装,但结果不同:

  • 从 14.04 开始 — 两个发行版的内核都会显示在 rEFInd 菜单中,因此您可以直接启动其中任何一个;但是,启动 15.10 时,您需要手动添加内核选项,至少在第一次启动时需要这样做。(您可以mkrlconf从 15.10 开始运行 rEFInd 附带的脚本来创建一个配置文件,从而无需手动修改启动选项。您需要从 14.04 安装中复制该脚本,或者至少在 15.10 中安装 14.04 分区,以便您可以访问该脚本。)
  • 从 15.10 开始 - mkrlconf 创建的配置文件将由软件包安装自动创建,因此您将能够启动 15.10 而无需修改其启动选项;但是,访问 14.04 内核所需的 EFI 文件系统驱动程序将不会安装。因此,要启动 14.04,您需要通过 GRUB 进行启动,它应该作为一个选项出现。如果您希望能够直接从 rEFInd 启动 14.04 内核,而不使用 GRUB,您可以手动安装 ext4fs 驱动程序,或者从 14.04 重新安装 rEFInd。

请注意,如果您安装的 15.10 文件系统损坏,使用 rEFInd 可能不起作用。它最多会显示 15.10 内核的选项,但启动该内核在某些时候会失败,可能会出现有关文件系统损坏的消息。如果根本原因是 Ubuntu 14.04 缺乏 LVM 支持或用于检测 Ubuntu 15.10 的 GRUB 脚本中存在其他故障,则 rEFInd 最有可能有所帮助。

相关内容