和许多其他linux发行版一样,Fedora使用Grub作为32位和64位X86系统的启动加载器(bootloader)。grub的配置文件主要是/boot/grub/grub.conf,而/boot/grub/menu.list是这个文件的软连接(soft link)。该配置文件样式如下。
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd1,0)
# kernel /vmlinuz-version ro root=/dev/sda7
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.1-42.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/
initrd /initrd-2.6.23.1-42.fc8.img
title WindowsXP
rootnoverify (hd0,0)
chainloader +1
主要分为三个部分,开始的注释(#开头)不算,依次是通用的选项,Fedora 8的启动选项和Windows系统的启动选项。
通用选项部分
default 表示默认启动的系统,以0开始计数,表示第一,二……
timeout 多少秒之后默认的系统被自动加载,这里是5秒后,用户不做选择的话,Fedora 8 被启动;
hiddenmen 默认隐藏菜单,直到用户按下某个键;
splashimage 起动器显示的背景图像,该图像的格式是一种特殊格式,需要特殊工具制作,然后放置在合适的位置;
Fedora启动章节
root 设置启动系统的分区,这里指定的不是linux系统的根分区(root system),而是boot分区,Grub是系统启动加载器,因而他所谓的root是指系统从那个分区开始启动,对于Linux系统而言是boot分区;
kernel 内核,位于boot分区上的合适内核;
initrd 指定特殊的initrd镜像文件用于启动系统时ramdisk(内存中的虚拟盘技术)加载的对象,一般会在该镜像中包含一些特殊设备的驱动等,如USB驱动的支持,一遍Linux系统可以从UBS设备上正常的启动,该文件可以根据特定的内核和启动介质定制,关于如何定制,可以查看RedHat相关的文档;
Grub启动linux的顺序是从指定的boot分区加载指定的kernel(内核)和initrd镜像,而对于其他系统,处理情况不同,Grub会把任务交由该系统的引导程序(如windows的bootloader)去启动系统;
rootnoverify 指定包含引导器的分区,类似Linux root指令;
chainloader 指定非linux系统的加载程序位于指定分区的+1扇区上,以便其它系统的加载器被正确加载并能执行加载其它系统的任务;
在该文件中,磁盘分区以(hdX,N)描述,X表示磁盘号,以0开始计数,依照BIOS的磁盘顺序指定;N是磁盘分区号,也是从0开始计数;如BIOS顺序第一块磁盘的第二个分区(/dev/sda2), 在Grub中表示为(hd0, 1);
Grub.conf是普通text文件格式的,可以用任何文本编辑器编辑,如VI,gedit或者kate等;需要注意的是,任何编辑错误都将导致系统无法正常加载和启动,需要特别慎重和小心!