我有一台带有多个磁盘的计算机系统。我安装了 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-root
Ubuntu 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 启动管理器可能有帮助:
- 从以下网址下载 rEFInd 的 USB 闪存驱动器或 CD-R 版本其下载页面。
- 从 rEFInd 准备启动介质。
- 如果已启用安全启动,请将其禁用。(如果愿意,您可以稍后重新启用它。)
- 启动 rEFInd 介质。它应该会显示两个 Ubuntu 安装的选项,尽管标签可能不清楚。14.04 安装可能指启动
boot\vmlinuz-3.13-*
,而 15.10 安装可能指启动vmlinuz-4.2.0-*
(没有前导boot\
,并且内核版本号更高)。 - 突出显示 15.10 条目并按 F2 或 Insert 两次。这将打开一个带有内核选项的简单文本模式行编辑器。
- 添加
ro root=/dev/mapper/ubuntu-vg-root
到启动选项。 - 按 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 最有可能有所帮助。