系统安装完后,如果不能成功的引导Linux和Win系统,必须要改一下/boot/grub/grub.conf才能让系统正常运行,用 root用户进入系统,先用fdisk-ld 终端中查看你的分区情况,知道分区情况就好办了,用任何文件编辑器来打开/boot/grub/grub.conf,一般来说,Win系统会自动加载到 grub里面的,我们来分析一下
grub.conf是grub的主配置文件,通过这个配置文件,grub才能找到kernel,系统才能正常启动。下面我们来解析一下这个文件中所有到的一下关键字的意思;
下面我们来分析一下我系统上的/boot/grub/grub.conf文件:
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$UrprW0$UzN7ozenwICzcPCQgiFts1
title CentOS (2.6.18-194.32.1.el5PAE)
password asdf1234
root (hd0,0)
kernel /boot/vmlinuz-2.6.18-194.32.1.el5PAE ro root=LABEL=/1 rhgb quiet splash
initrd /boot/initrd-2.6.18-194.32.1.el5PAE.img
default:定义默认启动的kernel或是操作系统, 表示第一个title下的内容为默认启动的kernel
timeout:定义等待进入选择kernel或操作系统菜单的时间,表示等待进入选择kernel或操作系统菜单的时间为5秒
splashimage:指定我们选择kernel或操作系统菜单后面那张图片。如果定义,这张图片需要用linux自带的软件xmp制作,在图形界面可以打开。图片的特点为:
1,必须是xpm的格式
2,必须用gzip压缩
3,最多使用14位的颜色位数
4,分辨率640*480
grub是以hd来识别磁盘的,第一磁盘为hd0,第二个磁盘为hd1...,而hd0,0表示第一个磁盘的第一个分区,hd0,1表示第一个磁盘的第二 个分区...,并且grub是直接读分区来找到对应的文件;而我的系统上只有一块硬盘,并且/boot是一个单独的分区,并且为系统的第一个分 区,grub等文件在这个分区上。(如果你的系统上/是一个独立分区,并且boot,grub和其中的文件都在/这个分区中,则这段应该 是:splashimage=(hd0,0)/boot/grub/splash.xpm.gz)所以它的意思是:grub在第一个分区中找到grub这 个目录,再找到这个图片文件作为背景。
hiddenmenu:表示隐藏选择kernel或操作系统菜单,只有出现等待界面后按下enter键才会出现。如果没有这个字段,则每次系统启动都会出现这个选择菜单。
password:设定密码。放在title外表示进入kernel或操作系统的编辑模式需要密码,而放在title内表示启动对应的kernel或操作 系统需要密码,密码可以是明文或是用MD5进行加密过的。使用命令:grub-md5-crypt可以生成md5密码;可以防止其他人进入编辑 kernel菜单进入单用户模式启动我们的系统
title identify:指定一个kernel或是一个操作系统,linux中可以有多个title;identify是这个kernel或操作系统的识别符,可以随意写。
root:用于指定grub所能识别的根,而不是根文件系统。
kernel:用于指定系统的内核文件的位置; 内核在grub的根的根目录下,ro表示只读加载kernel,root=/dev/vol0/root定义根文件系统,即我们操作系统启动之后我们所见 到的/,我系统上的/是挂载在这个逻辑卷上的;rhgb是redhat的一个程序,显示一个红色的边框。quiet表示以静默模式启动kernel,如果定义,kernel启动的时候会输出很多信息。 quiet:启动过程中只有重要信息显示,类似硬件自检的消息不回显示; splash: 图片加载
initrd:帮助kernel完成系统的启动,例如加载根文件系统所在分区的驱动等。如果kernel本身有相应强大的功能,则不需要initrd
initrd.img 使用gzip压缩的文件,是个文件系统;可以用以下命令进行提取:
mv initrd.img initrd.img.gz;
gunzip initrd.img.gz解压;
zpio -id < initrd.img
可以往initrd.img中加载新的模块,尤其是硬件。