之前写过一篇恢复Ubuntu引导的文章,本来以为Fedora15可以跟ubuntu一样恢复引导,但是实际上还是遇到了一些问题,现在记录下来以防以后忘记了!
想了解如何恢复ubuntu引导可以点这里:
Ubuntu 10.10+Win7 双系统重装 Win7 后恢复 Ubuntu 引导方法 http://www.linuxidc.com/Linux/2011-07/38086.htm
恢复引导方法:
1.放进liveCD,重启,看到有界面出来的时候,选择试用,不要点安装。
2.进入fedora15试用版后,打开终端
3.输入以下命令:
su
fdisk -l //得到的结果类似下面。查看fedora的根目录在那,这里没办法直接看出来,只能靠你自己识别,可以从分区的大小判断是不是根分区,就是在装fedora时,挂载点为 / 的那个分区
从图中的结果看出来,根分区在sda12.因为小狼记得分/分区的时候是分了20G的大小,并且当时是先分了/分区,然后再分了一个20G的/home分区的。所以判断出sda12是/分区,而不是sda13,虽然它也是20G.把sda12记住。
注意:如果分区的时候,你单独把boot分区分出来了,还要多一步工作,就是找出boot分区:
从上图可以看出,boot分区在sda8,因为它是最小的,只有200M.(你装ubuntu的时候分了多少就是多少)
记住sda8。
mount /dev/你的/根分区所在位置 /mnt
5.输入
grub-install –root-directory=/mnt /dev/sda
这里应该不会有什么问题,因为如果位置不对,无法安装,你可以一直输这个命令直到位置对了为止.
6.如果出现了no error report。那你就差不多成功了.然后sudo init 6.重启。
7.重启之后你会无奈地发现……windows也无法启动了,进入的是grub的命令行…..不要怕。进到这里你已经离成功不远了.
输入:
root (hdX,Y) //x为硬盘位置,如果你只有一快硬盘,X=0,如果有多块,相应设置x。Y为boot分区所在位置,这里是8.如果没有单独分boot分区,y就是你的/分区所在位置
kenrel /vmlinuz-2.xxxxx-generic root=/dev/sda12(无论你有没有把boot分区单独分出来,这里都要写/根分区的位置,否则无法完成启动,这里可以按tab完成填写)
注意:
这里就跟ubuntu的不一样,没有linux命令,要用kenrel
如果没有单独把boot分区分出来,就是
kenrel /boot/vmlinuz-2.xxxxx-generic root=/dev/sda12
然后输入:
initrd /initrd.img-2.xxxxx-generic
或
initrd /boot/initrd.img-2.xxxxx-generic(无单独boot分区的情况)
最后
boot
就可以进入fedora15桌面了。
接下来就是更新grub版本,fedora15自带的grub竟然是0.98版本的,可以在终端中输入grub-install -v就能看见,虽然老版本也可以,但是为了方便还是升级到grub2吧
升级方法:
su
yum install grub2
安装完后输入
grub2-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg
这时候工作就完成的一部分了,这时候重启已经可以看到引导菜单,但是只有fedora的引导菜单,grub探针发现不了win7的引导,
所以小狼就只能手动引导win7了,打开终端,获取root权限,然后输入
vi /boot/grub2/grub.cfg
找到类似下面语句的部分
menuentry “Fedora” {
set root=(hd0,1)
search –no-floppy –fs-uuid –set cb201140-52f8-4449-9a95-749b27b58ce8
linux /boot/vmlinuz-2.6.31-11-generic root=UUID=cb201140-52f8-4449-9a95-749b27b58ce8 ro quiet splash
initrd /boot/initrd.img-2.6.31-11-generic
}
在所有menuentry之后,END####之前输入
menuentry “Win7″ {
set root=(hd0,1)
chainloader +1
}
其中的Win7是你将看到的win7引导菜单名,可以随便写,而第二行的set root(hd0,1)中的1,一般就是你的win7C盘所在的分区,而大部分电脑都会按照在第一个分区,如果你的是特例,可以用fdisk -l确认一下你的win7系统盘所在分区,把1修改为对应分区号。
然后保持重启,大功告成!
注意:
除了添加上面一段语句,其他的就别修改了,除非你很熟系。官方文档中也多次强调不应该直接修改grub.cfg文件,官方文档中说明应该在/etc/default/grub文件中添加其他引导实体,即上面的3句语句,然后运行grub2-mkconfig -o /boot/grub2/grub.cfg命令,效果是一样的,但是会更安全,因为不需要直接修改引导配置文件。但是小狼图个方便就直接修改grub.cfg了,原谅俺吧。。。。