在双启动 PC 上,无法从 12.04 升级到 12.10

在双启动 PC 上,无法从 12.04 升级到 12.10

我有一台安装了 Windows 7 和 Ubuntu 的双启动 PC。昨晚我从 12.04 升级到了 12.10,但从那以后我就无法启动了,因为 PC 进入 grub 救援模式,并出现错误“文件未找到”。

我已尝试以下步骤:

set prefix=(hd0,msdos5)/boot/grub/i386-pc/
set root=(hd0,msdos5)
insmod normal

我收到错误symbol not found : 'grub_disk_dev_list'

当我尝试时:

linux /boot/vmlinuz-3.2.0-32-generic root=/dev/sda5 ro 

我得到错误- command not found 'linux';同样initrd

我也不知道该设置什么 sdXX。

答案1

解决了。​​以下是针对我这样的新手的分步说明。

  1. 进入 grub 恢复后的第一步是找出磁盘上的分区。

a) 在 grub-recovery 提示符下输入“ls”。这将为您提供磁盘上的所有分区。

grub-恢复>ls

我的输出是 (hd0),(hd0,msdos1),(hd0,msdos2),(hd0,msdos3)....等等

2)现在我们必须找出这些分区中哪些包含 Ubuntu 文件来执行此类型

例如ls (hd0,msdos5)

如果您看到错误,则意味着这不是我们要查找的分区。继续尝试其他分区,直到看到如下所示的内容

例如lost+found dev bin usr etc-2

对我来说结果是(hd0,msdos5)

3)现在我们需要找到名称以 vmlinuz.... 开头的文件的位置以及 initrd...

它们通常位于 /boot 文件夹下

ls /boot/

记下文件的全名和路径,我们稍后可能会需要它们。对我来说,它们位于 /boot/ 文件夹下,并被命名为vmlinuz-3.2.0-32-generic 和 initrd-3.2.0-32-generic

4) 现在制作一个 Linux 的 Live CD 或 U 盘,插入并启动你的电脑。当你看到grub 菜单(菜单要求用户安装 Ubuntu 或尝试不安装)按字符C并按回车键。

这将带您进入 grub 提示符。

如何通过 U 盘安装 Ubuntu

我们不会全新安装 Ubuntu,我们只想使用 grub 命令提示符。

5)在 grub 提示符下输入以下命令

set root=(hd0,x)

如果你的分区是 sda5,则输入 5 代替 x,例如设置根=(hd0,5)

6)linux /vmlinuz root=/dev/sdXY ro

如果您看到错误,则必须使用我们在步骤3中注意到的完整路径。

例如Linux /boot/vmlinuz-3.2.0-32-generic root=/dev/sda5 ro

7)initrd /initrd.img

如果看到错误,请按照步骤 E 中所述指定完整路径

例如initrd /boot/initrd.img-3.2.0-32-generic

8)boot

使用上述方法,我能够启动 Ubuntu 并访问我的所有数据。

9)最后一步,我们需要修复 grub,这样我们不必每次登录时都按照这些步骤操作。

安装 Boot-Repair 的链接

答案2

您是否为 W7 和 Ubuntu 准备了 2 个独立的物理磁盘?如果是,请尝试在 BIOS 屏幕中更改磁盘的启动优先级顺序。我也遇到了类似的事情,这彻底解决了问题。

相关内容