Grub 修复失败,启动至 grub 救援>。尝试从 sda4(ubuntu 14.04)启动,sda2 已损坏内核 ubuntu 16.04

Grub 修复失败,启动至 grub 救援>。尝试从 sda4(ubuntu 14.04)启动,sda2 已损坏内核 ubuntu 16.04

我的具有 4 个分区(sda1-4)的 Linux 服务器启动出现故障。

我们遇到了启动问题,通过运行 grub repair 解决了它。重启后,我们更新到了 Ubuntu 16.04(在 sda2 上,我们所有的工作目录都在这里)。更新导致桌面损坏,我们无法登录用户(输入密码,然后屏幕闪烁,返回用户登录)。分区几乎已满,所以更新可能不完整,但是没有错误消息。

使用 Ubuntu 14.04 创建新的启动分区 (sda4),并尝试通过使用以下命令从 live CD 启动从 sda2 中删除 Ubuntu 16.04,以防它造成干扰,但它仍然存在。还从 sda2 中删除了文件以腾出空间。

       sudo mount /dev/sda2 /mnt
       sudo mount --bind /sys /mnt/sys
       sudo mount --bind /proc /mnt/proc
       sudo mount --bind /dev /mnt/dev
       sudo chroot /mnt
       apt-get remove --purge linux-headers_4.4.8*
       apt-get remove --purge image-headers_4.4.8*

删除后尝试启动修复。它启动到 grub 救援> 我再次尝试启动修复,日志在这里http://paste.ubuntu.com/23549041/

我注意到 sda4 没有“引导扇区”信息,这是问题吗?

很感谢任何形式的帮助!!!

编辑以包含 df:

Filesystem      1K-blocks       Used  Available Use% Mounted on
/cow             32979776      43984   32935792   1% /
udev             32935276          4   32935272   1% /dev
tmpfs             6595956       1252    6594704   1% /run
/dev/sr0           987136     987136          0 100% /cdrom
/dev/loop0         944256     944256          0 100% /rofs
none                    4          0          4   0% /sys/fs/cgroup
tmpfs            32979776       1028   32978748   1% /tmp
none                 5120          4       5116   1% /run/lock
none             32979776         76   32979700   1% /run/shm
none               102400         48     102352   1% /run/user
/dev/sda2      7338794732 5768586068 1200331900  83% /media/ubuntu/b697f249-e945-46f0-898b-438a8da6b100
/dev/sda4        47115636    4139200   40560052  10% /media/ubuntu/3ad839ec-2ceb-4123-aaa2-396634fde7bc

gparted 屏幕截图

编辑:Ubuntu 16.04 更新后的新启动修复报告 paste.ubuntu.com/23549880/

答案1

在 sda2(我们所有的工作目录都在这里)上更新到 Ubuntu 16.04 时出现问题。更新导致桌面损坏,我们无法登录用户(输入密码,然后屏幕闪烁并返回用户登录)。分区几乎已满,因此更新可能未完成,但是没有错误消息。

这个问题不是启动问题。您关于分区几乎已满的评论表明这实际上可能是原因。如果是这样,删除不必要的文件(可能与解决 APT 更新问题相结合)可能已经解决了问题。您可能仍可以在紧急磁盘和chroot程序的帮助下完成此操作,但我对此不作任何承诺,而且我手边也没有分步程序。

如果你需要更多帮助,你应该首先提供所有分区上已使用和可用的磁盘空间信息。df在终端中输入当所有分区都已挂载时将显示此信息,因此您应该发布该输出。如果这样做,请务必编辑您的原始问题,在输出的每一行开头添加四个空格df以使其清晰易读。

使用 Ubuntu 14.04 创建新的启动分区 (sda4),并尝试删除 Ubuntu 16.04

...

删除后尝试启动修复。它启动到 grub rescue>

GRUB 依赖于散落在各处的文件。听起来,您在解决问题的过程中不小心删除了该grub.cfg文件。再次运行引导修复应该修复此问题,但您的配置现在已足够复杂(安装了两个 Ubuntu),我无法保证。即使您再次启动系统,您仍会回到原来的问题。

我注意到 sda4 没有“引导扇区”信息,这是问题吗?

不会。在大多数 BIOS 模式的 Ubuntu 启动配置中,GRUB 位于硬盘的 MBR 中,位于 MBR 后未分配扇区(在 MBR 磁盘上)或 BIOS 启动分区(在 GPT 磁盘上,比如您的磁盘)中,以及目录中的文件中/boot/grub。只有当您在那里安装 GRUB 并使用 MBR 中的其他程序(如 Windows 启动加载程序)时,GRUB 才会进入分区的分区引导记录 (PBR),这是不是正在做。

顺便说一句,您正在 GPT 磁盘上进行 BIOS 模式启动。这对您来说很好,但如果您的计算机有 EFI(自 2011 年底以来销售的大多数计算机都有),您可能需要考虑切换到 EFI 模式启动。这将需要重新配置,但通常会快一点,而且一旦您了解了它的工作原理,它就会更灵活,更不不稳定。缺点是“一旦您了解了它的工作原理”的警告;关于 EFI 模式启动仍然存在很多错误信息,如果您精通 BIOS 模式启动,则需要重新学习很多繁琐的细节。请参阅Adam Williamson 的博客文章介绍了 EFI 的工作原理我的关于在 EFI 系统上安装 Linux 的页面有关 EFI 模式启动的更多信息。还有一些不稳定的 EFI 仍然可用,其中最糟糕的可能比 BIOS 模式启动更糟糕,即使对于专家来说也是如此。请注意,切换到 EFI 模式启动将不是修复您的初始登录问题;但您可以实施这样的切换,以修复您自己创建的更基本的启动问题。在修复像您这样的问题时从 BIOS 模式切换到 EFI 模式启动可能太费力,因此您可能只想将此作为未来的项目记住。(另一方面,也许您会找到一种方法来解决 EFI 模式下的即时启动问题。)


编辑:

那么,在清理一些空间并再次运行 Boot Repair 后,您还会收到grub>提示吗?如果是这样,我不确定问题是什么。不过,我有两个不成熟的建议:

  • 如果你的电脑使用 EFI(自 2011 年底以来销售的大多数电脑都使用 EFI),你可以下载我的 CD-R 或 USB 闪存驱动器版本rEFInd 启动管理器,准备一个启动介质,并使用它启动。rEFInd 应该能够让你启动你的任何一个安装,假设它们的内核和启动文件是完整的。然后你可以修复它,添加一个EFI 系统分区 (ESP),并在硬盘上安装 rEFInd。这是目前最安全的方法,但它会起作用仅有的如果您的计算机使用 EFI。
  • 删除两个 Ubuntu 分区中的一个(/dev/sda2/dev/sda4),然后再次运行 Boot Repair。这样做的目的是,Boot Repair 可能会因为存在两个 Ubuntu 安装而感到困惑,从而创建无效的 GRUB 设置。删除其中一个 Ubuntu 安装应该可以让 Boot Repair 更轻松地完成其工作。不过,这种方法是有风险的,特别是如果您不小心删除了错误的安装。即使您删除了正确的 Ubuntu,剩下的 Ubuntu 也可能受到某种根本性的损坏,或者其他原因可能导致 Boot Repair 混乱。

如果这两种方法都不起作用,您可能需要成为 GRUB 专家,以便手动修复它;或者备份您的个人文件,从头开始重新安装 Ubuntu,然后恢复您的个人文件。

相关内容