Fedora 15+Win7双系统重装Win7后恢复Fedora 15引导


之前写过一篇恢复Ubuntu引导的文章,本来以为Fedora15可以跟ubuntu一样恢复引导,但是实际上还是遇到了一些问题,现在记录下来以防以后忘记了!

想了解如何恢复ubuntu引导可以点这里:

Ubuntu 10.10+Win7 双系统重装 Win7 后恢复 Ubuntu 引导方法

恢复引导方法:

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了,原谅俺吧。。。。

相关内容