昨天装上了ubuntu8.04,和windows xp 一起又构成了双系统,运行得很好.手痒痒在windows下用PM格式化并合并了一个ext3到fat32的分区,然后就关机了.今天开机,郁闷,又出现了前次出现的问题(有时候问题你不解决它,它就跟着你~):开机无法进入grub引导,显示error22.我也看不懂这error什么意思,不过有了前次的经验,我知道再装一个系统就能间接修复grub.可是我不想这么麻烦,这实在吐血...于是上网查了一下,发现百度真是太帅了.以下是几种网上的方法,我并没有全部试过,但是第一个我已经试过了,并成功地修复了我的grub,开机正常了.哈哈...

几种方法基本类似:

1)用LIVE CD进入图形界面,打开终端

输入一下命令:

$sudo su

$grub

grub>boot (hdx,y)

grub>setup (hdx)

/*这里解释一下: x 代表硬盘,如果你只有一个硬盘,一般都是的, 那么 x 填 0 而 y 的值是你的ubuntu系统/root所在的分区,如果你不知道是哪个分区*/

/*你可以用Tab键代替,然后就会有显示,填入相应的正确值即可. 下面的 x 值跟上面的 x 值相等. */

2) 使用livecd启动,进入桌面系统,在终端输入

grub update

进入grub命令行,输入

root (hd0,x)

setup (hd0)

hd0指第一块硬盘(不分串口SATA、并口PATA),x是linux的主目录“/”所在分区号,编号从0开始,比linux里显示的分区编号小1。比如linux里显示硬盘分区号为hda5,这里x就是4。分区编号可以用菜单里的磁盘实在不知道是多少,就挨个试,到grub提示分区格式为ex2fs一般就是了。注意root (hd0,x)在root后面必须有空格。root命令是指定引导的分区,setup命令把引导信息写到硬盘MBR。

3)

1. 用Live CD启动

2. 打开一个终端,运行$sudo grub 你会看到'grub>'这样的提示符

3. 在提示符'grub>'后输入find /boot/grub/stage1,你会得到一个运行结果,比如我的机子上结果是(hd0,5) (这个命令其实就是找出/boot所在分区)

4. 运行 grub>root (hd0,5) (这个位置要填上你机子上的运行结果)

5. 运行grub>setup (hd0) 出现几行提示文字,最后是“... succeeded” 修复成功!

6. 运行quit

8. 重启计算机,取出live CD