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。
- 在这个项目被脱管到*软件基金会进一步发展前的最初的GRUB文档。
http://www.redhat.com/mirrors/LDP/HOWTO/mini/Multiboot-with-GRUB.html
- 研究GRUB各种不同的用法,包括引导非Linux操作系统。
http://www.linuxgazette.com/issue64/kohli.html
- 一篇介绍性的文章,讨论在一个系统上GRUB配置,包括GRUB命令行选项的概述。