共计 1206 个字符,预计需要花费 4 分钟才能阅读完成。
windowsxp的虚拟机下安装了ubuntu10.04,昨天在“更新管理器”点了下升级ubuntu10.10的按钮,然后就漫长的等待下载文件。。。
好吧,N个小时过去后,终于下载并安装升级完了。重启之后进入,就呈现下面的状态了:
GRUB loading.
Welcome to GRUB!
error:the symbol 'grub_xputs' not found.
Entering rescue mode…
grub rescue>
在搜索引擎查找并折腾很久尝试了N次后,终于给搞定了,其实方法很简单,只是俺还太菜。。
好了,下面是我解决该问题的方法,在此详细记录以供参考备份.
据说这是关于显卡驱动的问题。解决方法据说也有两种,一种是用live CD启动然后重装grub(虚拟机设置虚拟光驱启动尝试,俺太菜了,搞不懂,失败。。。)
另一种是用如下方法(尝试N久后解决的)。开机启动到 “grub rescue>”状态后,依次按照如下步骤输入命令:
1、grub rescue>ls
用该命令查找 分区和驱动器,目的是为了找到下面要用到的系统启动分区。如返回结果与下面类似:
(hd0) (hd0,1) (hd0,5) (hd1) (hd1,1)
2、grub rescue>set prefix=(hdX,Y)/boot/grub
这里的X和Y,就是具体的系统安装启动的分区位置。其实这个不好确定,主要在这里一一尝试浪费了N多的时间。
有个方法就是用命令如:
ls (hd0,1)/boot
或
ls (hd0,1)/boot/grub
通过返回结果来确定哪一个为系统分区
3、grub rescue>set root=(hdX,Y)
4、grub rescue>insmod /boot/grub/linux16.mod
5、grub rescue>linux16 /vmlinuz root=/dev/sdZW ro
注意:这里的sdZW是你的系统内核所在的分区,这个地方也是不好确定的,所以在这里折腾尝试了好久。这里错误的话问题还是得不到解决的,后面重启后会出现一堆的“找不到”然后又进入shell下去了
6、grub rescue>initrd16 /initrd.img
7、grub rescue>boot
如果前面操作正确,则重启后就可以看到熟悉的ubuntu图形登陆界面了。
8、重装grub2:
终端下:
sudo grub-install /dev/sdb
其中sdb要改为你的硬盘。
我在xp虚拟机下所做的步骤(仅供参考):
"grub rescue>" 后依次输入如下命令
set prefix=(hd0,1)/boot/grub
set root=(hd0,1)
insmod /boot/grub/linux16.mod
linux16 /vmlinuz root=/dev/sdb1 ro
initrd16 /initrd.img
boot
重启后就正常了
提示:
以上操作及每一步命令的解释可参考官网关于grub2的说明
相关文章:











