grub.conf是grub的主配置文件,通过这个配置文件,grub才能找到kernel,系统才能正常启动。下面我们来解析一下这个文件中所有到的一下关键字的意思:

     default:定义默认启动的kernel或是操作系统
 
     timeout:定义等待进入选择kernel或操作系统菜单的时间
 
     splashp_w_picpath:指定我们选择kernel或操作系统菜单后面那张图片。如果定义,这张图片需要用linux自带的软件xmp制作,在图形界面可以打开。图片的特点为:
     1,必须是xpm的格式  
     2,必须用gzip压缩   
     3,最多使用14位的颜色位数  
     4,分辨率640*480
 
     hiddenmenu:表示隐藏选择kernel或操作系统菜单,只有出现等待界面后按下enter键才会出现。如果没有这个字段,则每次系统启动都会出现这个选择菜单。
 
     password:设定密码。放在title外表示进入kernel或操作系统的编辑模式需要密码,而放在title内表示启动对应的kernel或操作系统需要密码,密码可以是明文或是用MD5进行加密过的。可以防止其他人进入编辑kernel菜单进入单用户模式启动我们的系统
 
     title identify:指定一个kernel或是一个操作系统,linux中可以有多个title;identify是这个kernel或操作系统的识别符,可以随意写。
 
     root:用于指定grub所能识别的根,而不是根文件系统。
 
     kernel:用于指定系统的内核文件的位置
 
     initrd:帮助kernel完成系统的启动,例如加载根文件系统所在分区的驱动等。如果kernel本身有相应强大的功能,则不需要initrd
     
     
     下面我们来分析一下我系统上的/boot/grub/grub.conf文件:
     default=0   
     表示第一个title下的内容为默认启动的kernel
     
     timeout=3
     表示等待进入选择kernel或操作系统菜单的时间为3秒
 
     splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
     grub是以hd来识别磁盘的,第一磁盘为hd0,第二个磁盘为hd1...,而hd0,0表示第一个磁盘的第一个分区,hd0,1表示第一个磁盘的第二个分区...,并且grub是直接读分区来找到对应的文件;而我的系统上只有一块硬盘,并且/boot是一个单独的分区,并且为系统的第一个分区,grub等文件在这个分区上。(如果你的系统上/是一个独立分区,并且boot,grub和其中的文件都在/这个分区中,则这段应该是:splashp_w_picpath=(hd0,0)/boot/grub/splash.xpm.gz)所以它的意思是:grub在第一个分区中找到grub这个目录,再找到这个图片文件作为背景。
 
     hiddenmenu
     这个你懂的
 
     password --md5 $1$UrprW0$UzN7ozenwICzcPCQgiFts1
     表示要想进入kernel的编辑菜单,需要输入密码。这个密码可以通过命令grub-md5-crypt生成。
 
     title my redhat 
     你懂的
          root (hd0,0) 
          定义grub的根是第一硬盘的第一个分区
 
          kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/vol0/root rhgb quiet
          内核在grub的根的根目录下,ro表示只读加载kernel,root=/dev/vol0/root定义根文件系统,即我们操作系统启动之后我们所见到的/,我系统上的/是挂载在这个逻辑卷上的;rhgb是redhat的一个程序,显示一个红色的边框。quiet表示以静默模式启动kernel,如果定义,kernel启动的时候会输出很多信息。
 
          initrd /initrd-2.6.18-164.el5.img
          initrd这个文件在grub的根的根目录下
 
     OK!这个文件很重要哦!