用Live CD启动,同1,进入终端,先挂载Linux分区(X为安装盘):
sudo mount /dev/sdaX /mnt
然后运行:
sudo grub-install /dev/sda –root-directory=/mnt
OK!如果不行或你的分区是EXT4或你装的是GRUB2,请看——
4.(最极端的情况,有一次我就碰上了,搜了一晚的GOOGLE,终于找到了)分区是EXT4,或装GRUB2:
先mount分区,X为安装分区(EXT4挂在Intrepid比较麻烦):
sudo apt-get install e2fsprogs
sudo tune2fs -E test_fs /dev/sdaX
sudo mount -t ext4dev /dev/sdaX /mnt
然后依次挂载proc,sys,dev(个人认为比较BT)
sudo mount -t proc proc /mnt/proc
sudo mount -t sysfs sys /mnt/sys
sudo mount -o bind /dev /mnt/dev
然后切换Terminal:
sudo chroot /mnt /bin/bash
然后执行grub-install即可!
grub-install /dev/sda –root-directory=/
5. (有时候某些人就是RP不好:D)终极杀手锏,不能算办法的办法:
http://www.eisoo.com/cn/professional/diskgenius/
此处下载Disk Genius,挂载你的LINUX分区,赶紧把你所有的数据COPY出来,然后格式化重装!算了,不多说了,大家对于这是什么方法心知肚明!呵呵。
补充:
6.(关于EXT4)升级2.6.28内核后,/是ext4dev无法启动
From Ubuntu-CN
ext4在2.6.28中正式启用,fstab的ext4dev也可以改为ext4了,但直接启动会提示ext4-fs not marks…..之类的错误。
这样就需要更改gurb或grub4dos的配置文件,添加rootfstype=ext4。
如:
kernel /boot/vmlinuz-2.6.28 root=UUID=xxxxx rootfstype=ext4 ro splash
这样就行可以解决了。
7.GRUB menu.lst范例(勿照搬,适用于Ubuntu 8.04.2):
给个Ubuntu 8.04.2的,你参考一下:
title Ubuntu 8.04.2, kernel 2.6.24-23-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-23-generic root=UUID=d6747029-70cf-4f34-be5f-6da3a3b70716 ro splash locale=zh_CN vga=792
initrd /boot/initrd.img-2.6.24-23-generic
quiet
title Ubuntu 8.04.2, kernel 2.6.24-23-generic (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-23-generic root=UUID=d6747029-70cf-4f34-be5f-6da3a3b70716 ro single vga=792
initrd /boot/initrd.img-2.6.24-23-generic
重点修改root后的分区标志与UUID,详情参见上文。
UUID扫盲:UUID是Linux标记磁盘的ID,貌似每个磁盘都不一样。如果你不知道你磁盘的UUID,可以把上述KERNEL这一行改为:
kernel /boot/vmlinuz-2.6.24-23-generic root=/dev/sdaX ro single vga=792
X为你UBUNTU所在的分区。
8.GRUB重装时出现Error 22:
MBR分区表错误,打开终端,输入:
sudo fdisk /dev/sda
按w并回车,重写MBR
然后按照前面的修复步骤进行,不再报错,成功修复Grub!