修复grub引导

大部分安装了linux的一定还保留着windows,有的甚至不是双系统,是三系统甚至更多
(1)Ubuntu的grub重装和修复。在装了winxp和Ubuntu的电脑上,winxp还原或重装后,grub的启动菜单会丢失,开机会看到 grub2的提示符,虽然说grub2从命令行也可以引导,但是我从来没成功过,因此重建菜单是唯一的路:用启动盘启动选择试用ubuntu到ubuntu下(硬盘启动的情况没试过),在终端输入命令:
sudo -i

fdisk -l   (显示你的分区情况,一般sda是我们的硬盘,adb是u盘)
mount /dev/sdax /mnt   (x,y,z分别为/和/boot,/home所在的分区序号)
mount /dev/sday /mnt/boot   (/boot一般200m左右)

mount /dev/sdaz /home   (加载你的其他分区,我安装时为/home分了一个分区,如何有其他分区的话依次加载)
grub-install --root-directory=/mnt/ /dev/sda
上边的每一行都是要单独输入的命令,如没有为/boot(一般200m左右)或者/home单独分区则不需要第三或四行命令,每一行命令输完后都没有错误提示才行,如果有检查下命令是否有毛病或者多试几次,重启后即可进入grub引导进入ubuntu。如果没有看见windows系统则在ubuntu下输入命进入Ubuntu后,打开中断输入命令:
sudo update-grub
sudo grub-instll /dev/sda
第一行命令输入后会显示grub检测到的硬盘上的系统,第二行是将信息写入硬盘,若这些都做了还是无法引导winxp,则要检查grub配置文件:
sudo gedit /boot/grub/grub.cfg
看下XP的引导文件是不是为
menuentry "Microsoft Windows XP Professional" {
set root=(hd0,1)
search –no-floppy –fs-uuid –set 4a807ca0807c93e3
drivemap -s (hd0) $root
chainloader +1
若是则将set root=(hd0,1)改为set root=(hd0,0)因为大部分人都将XP装在第一分区,而grub2在这一点上好像总是出错
(2)安装XP+Ubuntu9.10+fedora13后fedora的grub无法引导Ubuntu的问题。这是我最近遇到的问题,我原来装的是 opensuse11.2+XP+Ubuntu9.10但是源太慢了所以格了opensuse装了最新的fedora13,但是装完了后发现Ubuntu 启动项不见了,呵呵,系统不能识别一般发生在先装新发行版本后装后发行的版本时,没想到这个fedora13竟然不能识别比他早了近半年的 Ubuntu9.10,后来我进了fedora,用gedit打开fedora的grub配置文件,在后面加了个title ubuntu9.10,然后根据ubuntu里的引导文件在fedora里重写ubuntu的引导,原来的ubuntu的引导文件为/boot/grub /grub.cfg,内容为
menuentry "Ubuntu, Linux 2.6.31-14-generic" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,7)
search --no-floppy --fs-uuid --set 3038f513-2a08-44c9-b966-b1a09814b523
linux /boot/vmlinuz-2.6.31-14-generic root=UUID=3038f513-2a08-44c9-b966-b1a09814b523 ro quiet splash
initrd /boot/initrd.img-2.6.31-14-generic
}
则对应的fedora引导文件应加入的内容为(对照fedora自己的,注意uuid后的数据来历,我就不多说了)
title ubuntu(2.6.31-22-generic)
root (hd0,4)
uuid 3038f513-2a08-44c9-b966-b1a09814b523
kernel /boot/vmlinuz-2.6.31-22-generic root=UUID=3038f513-2a08-44c9-b966-b1a09814b523 ro quiet splash
initrd /boot/initrd.img-2.6.31-22-generic
(fedora引导文件为/boot/grub/grub.conf)最后应把ubuntu的vmlinuz和initrd.img(省略版本号了)放到 fedora的/boot里当然fedora里的grub配置文件指向的是自己的/boot,所以会发现ubuntu里的是
set root=(hd0,7)而fedora为root (hd0,4),因为我的ubuntu的/boot在hd0,7而fedora的/boot在hd0,4(这是最关键的一点,我在网上看的,但是没有保存链接)这些做完保存后就行了

posted on 2015-03-14 20:20  swek  阅读(1154)  评论(0编辑  收藏  举报