分类: LINUX
2006-03-20 21:38:04
GRUB 的配置都是通过位于 /boot/grub/grub.conf 的一个配置文件来完成的。清单 2 给出了一个示例配置,使用的是我的家用机器,支持 Linux 和 Windows 机器的双重引导:
|
清单 2 中的选项:
default=
选项通知 GRUB 在超时之后默认使用哪个映像进行引导。这一选项与 grub.conf 文件中的某个映像相关联。 0 表示指定了第一个,1 表示指定了第二个,依次类推。如果没有在配置文件指定此选项,那么它将引导文件中指定的第一个映像。
timeout=
是在自动引导默认 OS(在本例中是 Red Hat Linux)之前引导提示会等待多少秒。
splashimage=
是用作 GRUB GUI 背景的图片所在的位置。
password
选项指定了使用 MD5 加密的口令,用于访问 GRUB 的交互式引导选项。注意,这不会阻止用户选择引导已经定义的 OS;需要为 每一个 -title
设置它。为了生成一个 md5
口令,请运行 GRUB 所附带的 grub-md5-crypt
工具(以 root 身份)。它将提示输入一个希望加密的口令。然后输出使用 MD5 加密的口令。将这个口令拷贝到 grub.conf 中 password -md5
之后,但是要在同一行上。通常这个口令可以设置为 root 口令,因为无论如何也只有 root 才可以读取 grub.conf 文件。
title
标明了在运行期间能够从用户界面引导的具体 OS。与 LILO 不同,在这个名称中可以有空格。
password
的设置方式与前面的 password 相同。如果计划与其他用户共享此机器,那么不要将这个口令设置为 root 口令。
root
告诉 GRUB OS 文件系统的实际位置。可见,GRUB 引用介质的方式与 LILO 不同。在 LILO 示例中, /dev/hdb3 是第二块硬盘中的第三个分区。Grub 将此硬盘引用为(hd1,3),即第二块硬盘的第三个分区(disk 0 是第一块硬盘)。
kernel
:vmlinuz-X.X.XX-XX 是 root 目录中默认引导映像的名称。
initrd
:initrd-X.X.XX-XX.img 是 root 目录中默认 initrd 映像的名称。
title
与所有其他 title 选项相同。
password
:见其他口令选项。
rootnoverify
告诉 GRUB 不要尝试去改变 OS 的 root。这样,当文件系统不被 GRUB 所支持时,不会出现引导错误。
chainloader +1
告诉 GRUB 使用一个链式加载程序来加载这个 OS,加载 Windows 时需要这个选项。 在 grub.conf 文件中可以使用很多其他参数,不过清单 2 中的参数就足以让机器可用了。要获得关于 grub.conf 的这些以及其他参数的进一步资料,请参考手册页(man grub.conf)。
与 LILO 的配置文件不同,grub.conf 会在引导时被读取,当被修改时不必去更新 MBR。
与 LILO 类似,当 GRUB 初始加载时,从 MBR 加载第一阶段程序。加载后,它进入第一阶段和第二阶段引导加载程序之间的中间阶段(为了方便讨论,可称为第 1.5 阶段)。之所以存在第 1.5 阶段,是为了能够对 /boot/grub 中的 GRUB 配置文件进行常规的文件系统访问,而不是去访问磁盘块。然后进入引导加载程序的第二阶段,GRUB 加载 grub.conf 文件。
现在应该能够看到 GRUB GUI 了。对于熟悉 Windows 的用户来说,这看起来感觉比 LILO 更友好。不过,不要因为 GRUB 拥有 GUI 就认为它是一个不能处理数据的引导加载程序。可选项多得惊人。(见 引导时的附加配置 中的提示。)
如果像我那样配置,那么现在应该能看到屏幕中有两个选项:引导到 Red Hat Linux 或者引导到 Windows XP。默认情况下,它将加载 Linux。选择任意一个的结果不言而喻。
现在来看一些好东西。
在 GRUB GUI 中,按下任何键都会停止超时的计时。然后按下 P 键,可以输入 GRUB 口令,并获得对 GRUB 交互式引导选项的完全访问权限。按下以下其中一个键,应该能够使用三个选项之中的一个:
kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
)。然后在那一行最后添加 single
,并按下 B 来使用修改过的 grub.conf 进行引导。在编辑模式下所做的任何修改都不会保存到 grub.conf 文件中。
这些选项有很多用途,但超出了本文的范围。
可见,GRUB 真正开放了引导期间的可能性。不过,这可能是一件好坏参半的事情,因为 GRUB 也潜在地允许攻击者在 OS 加载之前访问系统。会被误用的主要开放领域是:
在 GRUB 配置中,设置安全性非常重要;设置口令,并使用 MD5 加密,可以保证整个系统的安全。