内核更新后Ubuntu无法启动

在更新到最新的内核(2.6.32-31-generic)之后,当我启动我的PC时,我得到的只是grub2提示符。 我没有任何错误,它很简单不会启动。

我试过这个https://help.ubuntu.com/community/Grub2#Boot%20a%20Specific%20Kernel%20手动,但我的问题似乎是/ boot在一个单独的分区上,教程不包括这部分。

如果我可以启动,我想我可以做grub-update,但首先我需要进入。

我有Ubuntu 10.04,但我认为这是一个与grub相关的问题,linux版本无关紧要。

请帮忙,谢谢!

我可以按照以下说明多次恢复grub: https : //wiki.ubuntu.com/Grub2#Recover

首先,您必须从live cd启动系统。 然后

方法3 – CHROOT

此安装方法使用chroot命令来访问损坏的系统文件。 一旦发出chroot命令,LiveCD就会将损坏的系统视为自己的/。 在chroot环境中运行的命令将影响损坏的系统文件系统,而不会影响LiveCD的系统文件系统。

1)启动到LiveCD桌面(Ubuntu 9.10或更高版本)。 请注意,Live CD必须与您正在修复的系统相同 – 32位或64位(如果不是,则chroot将失败)。

2)打开终端 – 应用程序,附件,终端。

3)确定正常的系统分区 – (开关是小写的“L”)

 sudo fdisk -l  

如果您不确定,请运行

  df -Th 

寻找正确的磁盘大小和ext3或ext4格式。

4)挂载正常的系统分区:

替换正确的分区:sda1,sdb5等。

  sudo mount / dev / sdXX / mnt 

#示例:sudo mount / dev / sda1 / mnt

5)仅当您有一个单独的启动分区时:sdYY是/ boot分区指定(例如sdb3)

  sudo mount / dev / sdYY / mnt / boot 

6)挂载关键虚拟文件系统:

  sudo mount --bind / dev / mnt / dev
 sudo mount --bind / dev / pts / mnt / dev / pts
 sudo mount --bind / proc / mnt / proc
 sudo mount --bind / sys / mnt / sys 

7)Chroot到您的正常系统设备:

  sudo chroot / mnt 

8)如果没有/boot/grub/grub.cfg或它不正确,请使用创建一个

 更新GRUB 

9)重新安装GRUB 2:

替换正确的设备 – sda,sdb等。不要指定分区号。

  grub-install / dev / sdX 

10)validation安装(使用正确的设备,例如sda。不要指定分区):

  sudo grub-install --recheck / dev / sdX 

11)退出chroot:键盘上的CTRL-D

12)卸载虚拟文件系统:

  sudo umount / mnt / dev / pts
 sudo umount / mnt / dev
 sudo umount / mnt / proc
 sudo umount / mnt / sys 

13)如果你安装了一个单独的/ boot分区:

  sudo umount / mnt / boot 

14)卸载LiveCD的/ usr目录:

  sudo umount / mnt / usr 

15)卸载最后一个设备:

  sudo umount / mnt 

16)重新启动。

  sudo重启 

经过一些搜索,我发现了我真正想要的东西,这解决了我的问题。 本文解释了如果/ boot和/位于不同的分区上,如何手动启动: http : //ubuntuaddict.com/ubuntu-how-to-boot-from-a-grub2-prompt-when-there-are-separate-引导和分区/

在我的情况下,我在sda7和/ sda8上启用了/ boot,所以这些命令对我有用:

grub> set prefix=(hd0,7)/grub grub> insmod linux grub> set root=(hd0,8) grub> linux (hd0,7)/vmlinuz-2.6.32-31-generic root=/dev/sda8 ro grub> initrd (hd0,7)/initrd.img-2.6.32-31-generic grub> boot 

请注意:grub2从0开始计算硬盘,从1开始对分区进行计数。

那成功启动到我的ubuntu,并在我键入的终端:

 sudo update-grub 

我注意到实际上这两个命令是update-grubupdate-grub2 ,实际上是同一个脚本/usr/sbin/grub-mkconfig ,但有不同的选项。 (参见update-grub2 --helpcat /usr/sbin/update-grubcat /usr/sbin/update-grub2 )。

重启后一切正常:)

如果可以显示grub引导菜单,则不必从grub提示符引导旧内核。

启动时,按住左移。 这将打开Grub2启动菜单。 在最新的内核之前选择内核(从顶部开始的第三个菜单选项)并启动它。