我将 Ubuntu 从 19.04 升级到 19.10。升级没有错误,但重启后 grub 在启动时抛出错误并进入救援模式
error: symbol 'grub_file_filters' not found.
Entering rescue mode...
grub rescue>
这是一台物理机而不是虚拟机,我有 Windows 和 linux 双启动。
我设法用 ls 找到了我的 linux 所在的分区,但我真的不知道下一步该做什么。
insmod normal 失败并出现相同的错误
就我而言,我有一个 Xubuntu 18.04 虚拟机,升级到 20.04 后,出现 grub 错误。所以我遵循了这里描述的内容,它适用于 Kali,但应该适用于任何 Linux / grub 安装:
使用 Ubuntu / Xubuntu ISO Live 进入实时模式(我使用的是 Ubuntu 20.04,因为我已经在我的计算机中下载了它)。
进去后,我打开一个终端并运行:
如果一切顺利,您应该会看到一条消息,内容如下:
Installation finished. No error reported
遇到了同样的问题,通过在终端中启动 19.10“救援”USB 密钥来修复:(你的磁盘在哪里
sda
,你的磁盘sda1
分区在哪里。)注意 - 如果您有多个物理磁盘,您的 BIOS 可能会在不同的磁盘上查找。您可能需要为每个物理磁盘执行此操作。
我无法
boot-repair
(或boot-repair-disk
)工作,但设法通过从实时 Ubuntu 19.10 USB 引导、安装旧磁盘、输入chroot
并运行grub-install
和来解决此问题update-grub
。这里有一个启动板错误,它建议按照这里描述的 chroot 修复。
大约一周前,我遇到了完全相同的问题。我通过从 sourceforge下载boot-repair-disk解决了这个问题。如果您有合适的 CD 驱动器,则需要制造可引导的 USB 密钥或 CD。网上有很多关于如何做到这一点的指南。我希望您可以访问可以执行此操作的系统。您可以在 Windows 上执行此操作。
可能可以从 grub 救援提示符,然后是 grub 提示符修复它。我首先尝试了这个,但按照我在网上找到的指南没有成功。
祝你好运
更新到 Ubuntu 19.10 后,我也遇到了完全相同的问题。这是我(刚刚)解决它的方法:
首先,你有两个问题,不是一个。您的安装都搞砸了, Grub Bootloader 也搞砸了。只运行一个修复程序并不能解决所有问题。您需要“引导修复磁盘”和最新版本的 Ubuntu(都在 USB 引导驱动器上。不要使用DVD。)
如果您尝试(仅)首先从 Ubuntu Live 磁盘执行“修复安装”,完成后仍然会看到“grub rescue>”提示。:( 所以,首先你必须使用“boot-repair-disk”。告诉它用 Ubuntu 修复损坏的引导分区。如果你不确定分区 ID,从“开始”启动“GParted”菜单(左下角。)
修复那个引导分区。这至少应该让 Grub 回来。尝试启动 Ubuntu。如果它有效,你就完成了。如果没有,请从 USB 启动 Live "CD"。
双击桌面上的“安装 Ubuntu 19.10”图标(别担心,会有一个选项来修复而不会丢失旧程序/文件。)
我建议选中复选框以在安装期间下载所有更新,包括第 3 方。
安装程序应该检测到您损坏的分区并为您提供修复它的选项(第一个选项。)它可能需要禁用一些第 3 方存储库。没什么大不了的,他们很容易以后再回来。
(注意:如果您之前必须使用密码登录,现在不要尝试选择“无密码登录”。完成后它不会让您进入。)
完成后,您应该安装了 Ubuntu 19.10,并且仍然安装了所有/大部分现有应用程序(尽管工具栏快捷方式将被重置。)我不得不重新安装一些第 3 方应用程序,但之后它们的配置仍然存在,所以什么都没有丢失的。
我在使用 Windows 的双启动时遇到了类似的问题。进行引导修复并遵循所有步骤,一切都变得正常。
在全新安装的 Ubuntu 20.04 上为我工作,其中 GRUB 显然没有正确安装。
如上一篇文章中所述(使用安装的值代替
/dev/sda1
and/dev/sda
)对于在升级基于云的虚拟系统时遇到此问题的读者,您可以通过重新安装 grub 并
update-grub
在系统升级后立即重新启动来缓解它。也许即使只是在重新启动到升级系统之前更新 grub 也可以缓解它,但我不想冒险,而且我现在没有时间测试它。我很难学到这一点,但幸运的是(我应该说自然吗?)我在尝试系统升级之前有一个系统快照,所以我在阅读了可能的原因后恢复了快照,重新执行了系统升级,然后重新安装grub。
唉,除非以某种方式在云提供商的文档中记录这一点,或者直到设计出防止这种情况发生的解决方法,否则无法保证面对这种情况的用户做好准备。
我还在Launchpad 的相关问题中报告了这一点。
我正在将我的解决方案复制到这里,这似乎是一个更明显的线程。
什么没有奏效
F12
并且能够毫无问题地登录到 linux。我还尝试直接在 ubuntu 系统/分区上以 chroot 身份运行上述命令(没有安装部分,因为我安装了 ubuntu 并且可以正常工作)我使用了Kristina Kovacek的评论来了解我们需要做什么。
对我有用的是boot-repair-disk实用程序。有趣的是,它在默认模式(该部分)下不起作用,
Recommended Repair
但我不得不更改以下内容高级选项 -> Grub 位置
<your linux partition such /dev/sda>
我还删除了另一个选项,以确保默认情况下 GRUB 会查看我不记得它是什么的窗口(即使我刚才执行了该过程
请注意,您需要遵循一些说明以及需要手动执行的命令,这还涉及从 linux 分区中清除 grub-install(回想起来可能已经足够了。)
我相信事情可以通过其他方法完成,特别是@mugsy 答案似乎几乎相同。但是我的回答没有使用 Gparted 和任何高级的东西。