从 12.04 升级到 14.04 后的 Grub Rescue

从 12.04 升级到 14.04 后的 Grub Rescue

当前状态:

Cannot boot from HD at all (dualboot with win7)
Cannot boot from USB either (12.04 and win7), goes to boot: prompt, do not know what to do here, wants a kernel name, same for both Ubuntu 12 and Win7 usb drives.

在 grub 救援提示符下:

grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)
grub rescue> ls (hd0,msdos5)/boot/grub/i386-pc
*bunch of mod files*
grub rescue> set prefix=(hd0,msdos5)/boot/grub/i386-pc
grub rescue> set root=(hd0,msdos5)/
grub rescue> insmod normal
error: symbol not found: 'grub_divmod64'.
grub rescue> insmod linux
error: symbol not found: 'grub_realidt'.

这些错误不是我在谷歌上搜索时找到的说明的一部分,而且谷歌搜索这些错误也没有找到解决方案。我对 Ubuntu/Linux/Unix 还不是很熟悉。我猜是 MBR 搞砸了,或者 boot.ini 丢失了,或者我不知道。

答案1

我遇到了同样的情况。看来启动的 grub 已经过时了,无法加载所需的模块。我试了很多方法,但都不起作用。就我而言,我看到

(hd0) (hd0,msdos2) (hd0,msdos1)

里面msdos2有 grub 目录,里面有模块/grub/i386-pc,但我实际上无法 insmod 任何东西。它给出了各种错误,包括error: symbol not found: 'grub_realidt'.

最后,我将 Ubuntu 14.04 CD 插入其中,从 CD 启动,进入救援模式(我相信它说的是“修复损坏的系统”)并选择重新安装 GRUB 的选项。第一次就成功了。

答案2

修复解决您的问题。

第一种选择:获取包含 Boot-Repair 的磁盘

使用 Boot-Repair 的最简单方法是刻录以下磁盘之一并从中启动。

Boot-Repair-Disk is a disk starting Boot-Repair automatically.

Boot-Repair is also included in Linux-Secure-Remix. 

备注:您还可以在 live-USB 上安装 ISO(例如通过 UnetBootin 或 LiliUSB 或 Universal USB Installer)。

第二个选项:在 Ubuntu 中安装 Boot-Repair

  • 无论是从 Ubuntu 实时会话(在 Ubuntu 实时 CD 或实时 USB 上启动您的计算机,然后选择“尝试 Ubuntu”)还是从您已安装的 Ubuntu 会话(如果您可以访问它)

  • 连接到互联网

  • 打开一个新的终端,然后输入以下命令(每行后按 Enter):

      sudo add-apt-repository ppa:yannubuntu/boot-repair
      sudo sed 's/trusty/saucy/g' -i /etc/apt/sources.list.d/yannubuntu-boot-repair-trusty.list
    
     sudo apt-get update
     sudo apt-get install -y boot-repair && (boot-repair &)
    

使用启动修复

建议修复

launch Boot-Repair from either :
    the Dash (the Ubuntu logo at the top-left of the screen)

    or System->Administration->Boot-Repair menu (Ubuntu 10.04 only)
    or by typing 'boot-repair' in a terminal 

Then click the "Recommended repair" button. When repair is finished, note the URL (paste.ubuntu.com/XXXXX) that appeared on a paper, then reboot and check if you recovered access to your OSs.
If the repair did not succeed, indicate the URL to people who help you by email or forum.

这对我有用。希望这对你有帮助。

答案3

我发布此信息是因为我刚遇到这个错误。

对我来说,在我的硬件上……

  1. 启动时,进入 BIOS -> 禁用安全启动

  2. Ubuntu 现在应该启动了……

  3. 安装并运行启动修复

    sudo add-apt-repository ppa:yannubuntu/boot-repair
    sudo apt-get update
    sudo apt-get install -y boot-repair && boot-repair
    
  4. 运行boot-repair,使用默认选项。运行启动修复时,它会要求您运行一些附加命令。

    显然,升级到 14.04 不包括签名的内核映像(您将在错误消息中看到)。

  5. 完成后,您应该能够重新启用安全启动并且 Ubuntu 将启动。

警告– 虽然这修复了 Ubuntu,但它破坏了 Windows,虽然我可以让 Windows 启动,但 Windows 会发出有关缺少 EFI 文件的警告,并且我无法在从恢复盘启动时修复它(是的,我运行了所有命令来修复 Windows 启动,至少是 Windows 修复盘提供的命令。我没有提供这些详细信息,因为它们可以在 Google 上找到,并且修复与 Ubuntu 无关)。

这是从 LTS 升级到 LTS 时相当讨厌的小错误

相关内容