使用grub2引导gentoo+win7

来源:互联网 发布:和平高清网络电视 编辑:程序博客网 时间:2024/05/16 17:19

gentoo的源码树认为grub2不够稳定,所以在gentoo install guid 中最后安装引导程序的时候使用的是grub0.97.之前忘了在内核中支持ntfs文件系统,导致我误认为grub1(grub0.97)不支持ntfs(其实应该是支持的),结果果断的换成了grub2(grub1.99).具体步骤如下:

1、在portage源码树中解除对grub2的锁定

#echo "=sys-boot/grub-9999" >> /etc/portage/package.unmask #echo "=sys-boot/grub-9999 **" >> /etc/portage/package.keywords#echo "=sys-boot/os-prober-1.47" >> /etc/portage/package.unmask 

2、安装grub2

#emerge -av sys-boot/grub:2

3、配置grub.cfg。上一步安装玩grub2以后会在/boot目录下生成一个grub2目录,开机是grub读取的就是这个目录下的grub.cfg文件。grub2提供了自动生成配置文件工具,代码如下:

grub2-mkconfig -o /boot/grub2/grub.cfg


这里注意一点是:在gentoo的官方wiki上这条命令写的是  grub-mkconfig -o /boot/grub2/grub.cfg ,但是如果你的硬盘上开始时安装的grub1,那么在/boot目录下面本来会存在一个grub目录。执行gentoo 提供的上述命令会导致将生成的grub.cfg写道grub1的目录中,导致grub2启动时找不到配置文件,不能进入系统。(这里稍微注意点应该不会犯错。我太马虎了,在这卡了一段时间)

4、将grub2写入MBR。这步跟gentoo官方wiki上基本相同。代码

grub2-install /dev/sda
如果你的内核没有大错误,此时重新启动应该能看到gentoo的启动项,并且能够启动。

由于我的硬盘上本来有个win7系统,装完gentoo后必须用grub2引导win7,所以要修改/boot/grub2/grub.cfg文件,将win7的启动信息加入。以下是我的win7启动信息

menuentry 'Windows 7 (loader)(on /dev/sda2)'{        load_video        insmod gzio        insmod part_msdos        insmod ntfs        set root='(hd0,msdos1)'        search --no-floppy --fs-uuid --set=root AE3EFDE83EFDA98B        chainloader +1}


需要注意的是:set root='hd0,msdos1'这行中,msdos1代表你的win7启动分区位置。注意,win7的启动分区一定不是win7系统的安装分区(通常是C盘),要确定启动分区,可在gentoo下执行 fdisk -l,哪一行的BOOT标志是*,且分拣系统是ntfs或者是fat,说明它是win7启动分区。我的是/dev/sda1,故写成msdos1.下一项需要注意的是启动分区的UUID,可以在gentoo下使用blkid命令查看。按照上述设置即可成功启动win7.


不经常写博客,不知道为什么发表后显示的会不全,但是复制再粘贴到本地就可以看了!


参考:

1、http://en.gentoo-wiki.com/wiki/Grub2

2、http://hi.baidu.com/techofchaos/blog/item/b88c2f22d42d614cac34de32.html









原创粉丝点击