转自:http://leejia.blog.51cto.com/4356849/788902
grub.conf是grub的主配置文件,通过这个配置文件,grub才能找到kernel,系统才能正常启动。下面我们来解析一下这个文件中所有到的一下关键字的意思:
default:定义默认启动的kernel或是操作系统
timeout:定义等待进入选择kernel或操作系统菜单的时间
splashimage:指定我们选择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秒
splashimage=(hd0,0)/grub/splash.xpm.gz
grub是以hd来识别磁盘的,第一磁盘为hd0,第二个磁盘为hd1...,而hd0,0表示第一个磁盘的第一个分区,hd0,1表示第一个磁盘的第二个分区...,并且grub是直接读分区来找到对应的文件;而我的系统上只有一块硬盘,并且/boot是一个单独的分区,并且为系统的第一个分区,grub等文件在这个分区上。(如果你的系统上/是一个独立分区,并且boot,grub和其中的文件都在/这个分区中,则这段应该是:splashimage=(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!这个文件很重要哦!