Ubuntu 10.10下修复“The symbol grub xputs not found”问题

把自己的Ubuntu系统从10.04升级到了10.10。升级的过程非常的顺利,一切就绪后重启,杯具了,启动到Grub界面的时候黑了,出现了一行 "The symbol grub xputs not found", 紧接着就是 "grub rescue>" 和一闪一闪的光标,提示着系统进不去。

我当时就傻了,grub在我毫无反应的情况下挂了。可是想想不对啊,自己前不久才将公司的机器升级,怎么自己的电脑就杯具了呢?想来想去,公司和家里的电脑唯一的区别就是grub版本不同。公司的是grub,而家里的则是grub 2。看来,问题是出在grub 2上了。

可能很多人已经听说过grub 2的大名。一个引导程序,现在已经像一门语言了。自打把它升级之后就从来没有认真的研究过,看来这家伙是要给我来个下马威了。不行,系统还是要进的,所以立刻用另外的电脑上网,google。一个小时之后,问题解决(本来差不多20分钟左右就可以,可惜绕弯路了)。下面把这次的问题解决办法记下来,万一下次需要呢。

我使用的方法是从LiveCD重新安装Grub 2。当然这个方法需要你手中有LiveCD,否则的话,待会儿再说。

利用LiveCD启动电脑,选择Try it 。。。 那个选项进入光盘上提供的那个系统。
启动终端(控制台),就是那个背景是黑黑的,可以输入命令的那个。
这一步是用来寻找你的系统分区的。如果你知道的话,这步可以跳过:
输入 "fdisk -l" (是L的小写,不是1),找格式是ext3/ext4的,这个就是你的Linux分区。然后看着它的block大小来回忆,那个是你的根节点(就是 "/" 挂载点)。
特别注意:回想一下你是否当年在安装系统的时候单独分出了/boot节点,判断这个的方法有两个,第一是回忆当年安装系统的时候,在分区时是否专门设置过 "/boot" 挂载点;第二,就是看看刚才查询的结果中是不是有一个100M左右大小的ext3/ext4的block,如果有的话,很有可能就是了。
挂载我们找到的分区:
sudo mount /dev/sdXY /mnt

解释一下上面的sdXY,这里X代表a,b,。。。而Y代表1,2,。。。合在一起就是代表sda1,sda2,sdb3,。。。。,这个是根据你上一步中找到的根节点而定的。

另外,还有一个重要问题就是,如果在上一步中,你想起了你的 "/boot" 单独创建过的话,那么你还需要将它挂在上来:

sudo mount /dev/sdXY /mnt/boot

这里sdXY是指你的/boot分区,别搞混了。

挂载完之后,打开你的/mnt和/mnt/boot看一下,是不是你的系统,不是就老老实实的在回想回想。是的话就下一步。
执行下面的语句重装grub 2:
sudo grub-install --root-directory=/mnt /dev/sdX

再解释一下,这里sdX的X是指a,b,。。。如果你的引导盘是sda的话,那么上面就是sda,以此类推。

最后卸载我们上面的挂载点:
sudo umount /mnt/boot                   //如果你执行/mnt/boot的挂载了,那么先卸载它
sudo umount /mnt

重启

执行完上面这些之后,我的电脑可以正常引导了。我希望你的也是,祝你好运。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24333.html