grub.conf 详解

修改grub.conf

  系统安装完后,如果不能成功的引导Linux和Win系统,必须要改一下/boot/grub/grub.conf才能让三系统正常运行,用root用户进入系统,先用fdisk-ld 终端中查看你的分区情况,知道分区情况就好办了,用任何文件编辑器来打开/boot/grub/grub.conf,一般来说,Win系统会自动加载到grub里面的,下面是笔者的grub.conf文件,我们来分析一下

 

  default=0

  timeout=10

  splashimage=(hd1,2)/boot/grub/splash.xpm.gz

  titleWindows2K

  rootnoverify(hd0,0)

  chainloader+1

  titleRedHat9

  root(hd1,2)

  kernel/boot/vmlinuz-2.4.20-8 ro root=LABEL=/

  initrd/boot/initrd-2.4.20-8.img

  titleMandrake9.1

  kernel(hd1,4)/boot/vmlinuz root=/dev/hdb5 quiet devfs=mount acpi=off vga=788

  initrd(hd1,4)/boot/initrd.img

 

  default=X为默认启动的系统,0为排在第一个的系统,以此类推。

 

  timeout=X为Grub菜单停留的时间,单位为秒

 

  titleXXX,XXX为标题,也就是你要引导的操作系统的名字,可以自己修改

 

  root(hdX,Y)X和Y都代表一个数值,X是linux的根分区在哪个硬盘上。如你只有一个硬盘。那就是hd0。如果你的linux的一个发行版是安装在第二个硬盘,这个X,就是1。Y是代表您所安装的linux是在哪个区。这个数值有点不同,不太好说清楚。举个例子来说。比如我把Mandrake安装到第二块硬盘的第二个分区,也就是hdb5了。那他的root(hdX,Y),就应该写为root(hd1,4),也就是说Y=hdaZ或hdbZ中的Z减去1。

 

  kernel(hdX,Y)/boot/vmlinuz root=/dev/hdaZ和initrd (hdX,Y)/boot/initrd.img就是要引导哪个硬盘分区的映像和initrd文件,一定要写正确XY的数值,不然无法引导系统。

 

  quietdevfs=mount acpi=off vga=788为启动的参数。

 

  rootnoverify(hdX,Y)如果不能启动Win的话,可以改为root(hdX,Y)来试试

 

  chainloader+1意思是指定此分区上的第一个磁道来启动

 

  想加入别的操作系统到Redhat的GRUB中,方法也是如此,用其它发行版中的GRUB来引导别的发行版,原理也是一样的。这和Win2K和XP中的BOOT.INI差不多,grub很简单吧,多试几次就会了。

 

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菜单进入单用户模式启动我们的系统

eg: password --md5 $1$izDkegesdsdazINF37wVyqre5casdasd

 

     title identify:指定一个kernel或是一个操作系统,linux中可以有多个title;identify是这个kernel或操作系统的识别符,可以随意写。

 

     root:用于指定grub所能识别的根,而不是根文件系统。

 

     kernel:用于指定系统的内核文件的位置

 

     initrd:帮助kernel完成系统的启动,例如加载根文件系统所在分区的驱动等。如果kernel本身有相应强大的功能,则不需要initrd

initrd.img 使用gzip压缩的文件,是个文件系统

               可以用mv initrd.img initrd.img.gz;gunzip initrd.img.gz解压; zpio -id < initrd.img 提取

    

     下面我们来分析一下我系统上的/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  splash

          内核在grub的根的根目录下,ro表示只读加载kernel,root=/dev/vol0/root定义根文件系统,即我们操作系统启动之后我们所见到的/,我系统上的/是挂载在这个逻辑卷上的;rhgb是redhat的一个程序,显示一个红色的边框。quiet表示以静默模式启动kernel,如果定义,kernel启动的时候会输出很多信息。

    quiet:启动过程中只有重要信息显示,类似硬件自检的消息不回显示

    splash: 图片加载

 

          initrd/initrd-2.6.18-164.el5.img

          initrd这个文件在grub的根的根目录下

 

     OK!这个文件很重要哦!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值