安装完成后,重新启动,
提示:error: the symbol 'grub_xputs' not found
会进入
grub rescue>
有两种解决方法:
a. 使用安装盘启动,进入系统后,打开串口安装grub2:
sudo mount /dev/sdXY /mnt sudo grub-install --root-directory=/mnt /dev/sdX
这里X是硬盘a,b等,Y是分区1,5等。注意第二句是指向硬盘sda。
b.敲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/sda
其中sda要改为你的硬盘,而不是具体的分区sda5等。
我在xp虚拟机下所做的步骤(仅供参考):
"grub rescue>" 后依次输入如下命令
set prefix=(hd0,5)/boot/grub
set root=(hd0,5)
insmod /boot/grub/linux16.mod
linux16 /vmlinuz root=/dev/sda5 ro
initrd16 /initrd.img
boot
重启后就正常了