From:http://wenku.baidu.com/view/ef78e110fe4733687e21aac3.html
用LiveCD修复Grub2的具体方法如下:
1、用ubuntu9.10的LiveCD光盘启动系统;
2、打开终端,输入终端命令:
sudo fdisk -l (查看计算机分区列表)
请记录下来根分区 / 和 /boot 分区安装的位置(我的根分区位于/dev/sda6,/boot没有单独分区(若有则假设位于/dev/sda7)),
下面就以我的分区为例说明,请大家根据自己的磁盘分区情况进行相应修改;
3、在终端输入命令:
sudo su - (or sudo -i 取得root特权)
mount /dev/sda6 /mnt
mount /dev/sda7 /mnt/boot (如果/boot没有单独分区则不要执行这个命令)
grub-install --root-directory=/mnt/ /dev/sda (注意此命令中root前面是两个减号横杠)
4、执行完以上步骤和命令,重新启动系统。
此时出现双系统启动菜单,且可正常进入ubuntu9.10,却无法进入windows xp了。
继续修复如下:
进入Ubuntu9.10系统,打开终端,输入命令:
sudo update-grub (重建GRUB列表,将windows xp引导项修复)
sudo grub-install/dev/sda (重新写入第一分区mbr)
5、重新启动系统,双系统启动应该恢复成功。
若还是无法进入windows xp,可以尝试手动修改grub.cfg文件,
若想修改启动顺序的话,也要修改grub.cfg文件。
具体方法如下:
进入Ubuntu9.10系统,打开终端,输入命令:
sudo-i (取得root特权)
chmod +w /boot/grub/grub.cfg (修改grub.cfg文件的操作权限)
gedit /boot/grub/grub.cfg (编辑grub.cfg文件,方法类似修改grub的menu.lst文件)
当无法进入windows xp时,若grub.cfg文件中windows引导相关的部分包含search或drivemap的话,应该删除其所在行。(这种情况比较少见)
例如,将以下内容
menuentry "Microsoft Windows XP Professional" {
set root=(hd0,1)
search –no-floppy –fs-uuid –set 4a807ca0807c93e3
drivemap -s (hd0) $root
chainloader +1
}
修改为
menuentry "Microsoft Windows XP Professional" {
set root=(hd0,1)
chainloader +1
}
grub.cfg文件修改完毕后,为了安全起见,应该恢复它的只读权限,操作如下:
chmod -w /boot/grub/grub.cfg
这里介绍一个比较简单的方法,利用Ubuntu的live cd进行GRUB修复工作。(未测试)
#sudo grub
#find /boot/grub/stage1
上面的命令会返回一个值(hd?,?)
#root (hd?,?)
#setup(hd0)
以上命令执行完毕之后推出
#quit
然后重启你的计算机,你可以看到GRUB已经修复了
5.2. ubuntu grub 调整系统启动顺序
cd /etc/grub.d
ls -l
-rwxr-xr-x 1 root root 6831 2010-10-06 20:23 00_header
-rwxr-xr-x 1 root root 1481 2010-10-06 20:05 05_debian_theme
-rwxr-xr-x 1 root root 4757 2010-10-06 20:23 10_linux
-rwxr-xr-x 1 root root 5028 2010-10-06 20:23 20_linux_xen
-rwxr-xr-x 1 root root 1588 2010-09-25 01:14 20_memtest86+
-rwxr-xr-x 1 root root 6933 2010-10-06 20:23 30_os-prober
-rwxr-xr-x 1 root root 214 2010-10-06 20:23 40_custom
-rwxr-xr-x 1 root root 95 2010-10-06 20:23 41_custom
-rw-r--r-- 1 root root 483 2010-10-06 20:23 README
30_os-prober即为安装的windows系统
cp 30_os-prober 02_os-prober
这样windows就在ubuntu启动前面
再update-grub 或者 grub-mkconfig
6. 补充说明
使用天意U盘工具中的slitaz系统安装grub后能启动win8系统(显示为vista),不能启动ubuntu系统。