BIOS 更新至 12.04 后无 grub 菜单

BIOS 更新至 12.04 后无 grub 菜单

我在 Windows 中更新了 BIOS。之后机器无法启动。给我grub-rescue>提示。

尝试了启动修复和高级选项,但不起作用。唯一起作用的是 MBR 选项。

我的 Windows 已打开sdb2,Ubuntu 已打开sdb3。我还有一个sda磁盘。我恢复了 的 MBR sdb。我的 grub 最初设置为 Windows 作为默认操作系统。现在它就在那里,无论是否sda恢复sdbMBR。

grub.cfg显示 30 秒延迟;但 grub 菜单从未显示。因此,我进入 Ubuntu 的唯一方法是启动 Live CD 并选择启动现有的 Ubuntu 安装。

我的启动配置发布在这里

如果可能的话,非常感谢您帮助恢复 grub 菜单。

答案1

诊断

bootinfo 脚本没有报告一些重要细节,可能是因为您安装了 syslinux MBR 而不是 grub。如果您收到 grub-rescue,这可能不是操作问题,但它会妨碍诊断此问题。

尤其是在这种情况下,让 grub 告诉我们它在命令中使用的根和前缀设置,set并通过使用 grub-rescue 提示符并查看它描述的硬盘来了解 grub 对哪个驱动器的看法ls会很方便。(由于您最终启动 Windows,并且 Windows 位于磁盘 2 上,因此这可能表明您启动的方式告诉 grub 您的磁盘 2 是 hd0。)无论如何,我认为前缀和 grub 对哪个驱动器是哪个驱动器的理解不匹配。

我在将 grub 放在驱动器 b 上时也遇到了麻烦——这有点棘手。

我认为看到 grub-rescue 提示表明 MBR 正在加载 grub 的下一个扇区,而该扇区正在加载 grub core.img。

下一步(也是失败的一步)是从前缀设置描述的目录中加载菜单、环境和模块。如果前缀错误,或者 grub 认为是 hd0 并且 hd1 与 grub 在分配前缀时的假设不符,我相信您会遇到您看到的问题。在我的 BIOS 中,我从哪个磁盘启动都会变成我的 grub hd0。也许升级您的 BIOS 会以某种方式影响这一点。

维修

但是,修复方法是使用 Live CD 启动 Ubuntu,并在运行 Ubuntu 系统时重新安装 grub,将其安装到要用于启动的驱动器上。请注意 grub 安装其工作目录的位置(通常是 /boot/grub)。在启动之前,运行 bootinfoscript 以打印出前缀和其他信息,以防驱动器顺序和前缀之间仍然不匹配。可能有一个 device.map 文件可以帮助解决问题,也可能造成问题。

一旦您越过这一点,grub 现在使用 UUID 来查找分区,因此哪个驱动器是哪个不再重要。

相关内容