GRUB(统一引导装入器)是基本的Linux引导装入器。

    其有四个作用,如下:

    

    1.选择操作系统(如果计算机上安装了多个操作系统)。

    2.表示相应引导文件所在的分区。

    3.找到内核。

    4.运行初始内存盘,设置内核与相关模块。

GRUB的配置文件是/boot/grub/grub.conf

    

    /boot/grub/grub.conf中典型的GRUB配置文件,如下图

[root@localhost ~]# cat /boot/grub/grub.conf
    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE: You do not have a /boot partition. This means that
    # all kernel and initrd paths are relative to /, eg.
    # root (hd0,9)
    # kernel /boot/vmlinuz-version ro root=/dev/hda10
    # initrd /boot/initrd-version.img
    #boot=/dev/hda
    default=1
    timeout=30
    splashimage=(hd0,9)/boot/grub/splash.xpm.gz
    hiddenmenu
    title Fedora Core (2.6.9-1.667)
     root (hd0,9)
     kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quiet
     initrd /boot/initrd-2.6.9-1.667.img
    title Other
     rootnoverify (hd0,0)
     chainloader +1

对上图中GRUB的变量进行说明如下

    

    变量 说明

    #: 对菜单配置文件进行注释。

    default: 指定默认操作系统。如果为0,则没有用户输入时,自动启动第一段中显示的操作系统。

    timeout: 设置GRUB启动默认之前的时间极限(秒数)。在上图中为30秒。

    splashimage: 指定默认GRUB引导时所使用的背景图像的位置。

    hiddenmenu: 这个命令被使用时,它不显示GRUB菜单接口,在超时时间过期后载入默认项。用户通过按[Esc]键,可以看到标准的GRUB菜单。可以在其前加#或者删除来达到显示菜单借口的目的。

    title: 设置GRUB菜单中显示的选项。一个是显示Fedora Core (2.6.9-1.667),一个 为Other,也即我使用的Windows XP。

    kernel: 指定Linux内核地址。

    initrd: 指定初始内存盘地址。

    rootnoverify: 对Windows XP之类的敏感操作系统指定引导文件所在分区。

    chainloader: +1表示对指定分区中第一个扇区寻找引导文件。

    说明1:password变量未被列出,是因为我在安装系统时,未选择引导装载口令。这个变量被使用时,它可以防止不知道口令的用户编辑菜单的项目。

    

在GRUB中增加口令的办法:使用grub-md5-crypt命令,在提示下输入所要口令。可以看到一系列奇怪的字符,可以将其复制到配置文件中。很容易从命令行复制这个口令,只要用鼠标加亮选择口令,在文本编辑器中打开/etc/grub.conf,在所要位置右单击鼠标,然后Linux即会自动插入加亮的MD5口令。

    

说明2:为了方便起见,/etc/grub.conf链接实际引导装入器的配置文件/boot/grub/grub.conf。

    

    还有一些其它的GRUB变量未被列出,如果要查询更详细的信息,可以参考如下:

    

    可以在系统里使用man grub或者info grub命令。

以下是一些关于grub的站点

    

    http://www.gnu.org/software/grub

     - GNU GRUB 项目的主页。这个站点包含了GRUB发展状态的信息以及一个FAQ。

    

    http://www.uruk.org/orig-grub

     - 在这个项目被脱管到自由软件基金会进一步发展前的最初的GRUB文档。

    

    http:///mirrors/LDP/HOWTO/mini/Multiboot-with-GRUB.html

     - 研究GRUB各种不同的用法,包括引导非Linux操作系统。

    

    http://www.linuxgazette.com/issue64/kohli.html

     - 一篇介绍性的文章,讨论在一个系统上GRUB配置,包括GRUB命令行选项的概述。