Linux多系统并存的GRUB配置文件内容分析
原因是 Windows 系统的启动引导程序无法把启动过程转交到 Linux 系统的 GRUB 中,自然就不能启动 Linux 系统了。如果我们后安装 Linux 系统,GRUB 就会安装到 MBR 中,覆盖 Windows 系统的启动引导程序。而 GRUB 是可以把启动过程转交到 Windows 系统的启动引导程序中的,所以 Windows 系统和 Linux 系统都可以顺利启动。
当然,如果真的是后安装 Windows 系统,则也可以通过手工再安装一次 GRUB 来覆盖 MBR 中的 Windows 系统的启动引导程序,具体方法后续章节会讲。
那么我们就来看看 Windows 和 Linux 双系统并存的 GRUB 的配置文件是什么样子的。命令如下:
[root@localhost ~]#vi /boot/gmb/gmb.conf
default:0
timeout=-1
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title WinXp
rootnoverify (hd0,0)
#指定Windows XP的启动分区。是第一块硬盘的第一个分区
#rootnoverify是不检测此分区的意思
makeactive
#设定分区为激活状态
chainloader +1
#把启动过程转交给此分区的第一个扇区
title CentOS (2.6.32-279.el6.i686)
root (hd0,5)
#Linux系统的/boot分区安装到了第一块硬盘的第六个分区中
kemel/vmlinuz-2.6.32-279.el6.i686 ro
root=UUID=23e5c9d6-77a8-403a-8c0e2bfeffcab5ef rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd/initramfs-2.6.32-279.el6.i686.img
我们已经知道,为了实现多系统启动,除 MBR 中可以安装启动引导程序外,每个分区的第一个扇区也可以安装启动引导程序。在这个例子中,Windows 系统的启动引导程序就被安装到了 C: 盘所在分区的启动扇区中,chainloader+1 就是 GRU 把启动过程交给了 Windows 系统的启动引导程序,所以可以启动 Windows 系统。