Step1、解决BIOS磁盘对应的问题
由于目前硬盘很便宜,所以很多朋友就想说:“那我能不能将Linux安装在/dev/hda中而Windows安装在/dev/hdb,然后调整BIOS的启动设备顺序,如此则两套系统各有各的loader安装在各个硬盘的MBR当中了?”。这个想法非常好,如此一来两者就不会互相干扰,因为每块磁盘的MBR有不同操作系统的loader。
问题是,grub对磁盘的设备代号使用的是检测到的顺序啊!也就是说,你调整了BIOS磁盘启动顺序后,你的menu.lst(或grub.conf)内的设备代号就可能会对应到错误的磁盘上了。
解决办法:我们可以通过/boot/grub/device.map这个文件来写死每个设备对grub磁盘代号的对应关系。举例来说,
[root@young ~]# cat /boot/grub/device.map
(fd0) /dev/fd0 // 光驱
(hd0) /dev/sda // 第一块硬盘
(hd1) /dev/sdb // 第二块硬盘
注:硬盘 与grub对硬盘的识别代号 的对应关系
如果不清楚如何处理的话,也可以使用grub-install 的功能。例如:
[root@young ~]# grub-install --recheck /dev/hda1
或[root@young ~]# grub-install --recheck /dev/sda (此处多多试探,如/dev/sdb)
这样device.map就会主动被更新了!!!
Step2、添加启动菜单Windows
在Linux(CentOS6.2)系统中,以root身份修改/etc/grub.conf配置文件(有的Linuxdistribution,是修改/boot/grub/menu.lst)。
[root@young ~]# vim /etc/grub.conf
添加内容为:
title Windows7
map (hd1) (hd0)
map (hd0) (hd1)
rootnoverify (hd1,0)
chainloader +1
注意: Linux (CentOS6.2)安装在第一块硬盘上(hd0 à/dev/sda,硬盘连接在对应于主板上的SATA0接口上,),而Windows7安装在第二块硬盘上(hd1 à/dev/sdb,硬盘连接在对应于主板上的SATA1接口上)。
[root@young ~]# vim /etc/grub.conf
default=0 //默认启动选项,使用第1个启动菜单(title)
timeout=5 //若5秒内为动键盘,使用默认菜单启动
splashimage=(hd0,0) /grub/splash.xpm.gz // 后台图示所在的文件
hiddenmenu //读秒期间是否显示出完整的菜单界面(默认是隐藏的)
建议修改为:
default=1 //默认启动选项,使用第1个启动菜单(title) Window7
timeout=5 // 若5秒内为动键盘,使用默认菜单启动
splashimage=(hd0,0) /grub/splash.xpm.gz // 后台图示所在的文件
#hiddenmenu // 读秒期间是否显示出完整的菜单界面(默认是隐藏的) 注释掉