Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45087
  • 博文数量: 10
  • 博客积分: 370
  • 博客等级: 一等列兵
  • 技术积分: 110
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-03 08:36
文章分类
文章存档

2006年(10)

我的朋友
最近访客

分类: LINUX

2006-03-20 21:38:04

GRUB 的配置都是通过位于 /boot/grub/grub.conf 的一个配置文件来完成的。清单 2 给出了一个示例配置,使用的是我的家用机器,支持 Linux 和 Windows 机器的双重引导:





default=0
timeout=10
splashimage=(hd1,3)/grub/splash.xpm.gz
password --md5 $1$opeVt0$Y.br.18LyAasRsGdSKLYlp1
title Red Hat Linux
	password --md5 $1$0peVt0$Y.br.18LyAasRsGdSKLYlp1
	root (hd1,3)
	kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
	initrd /initrd-2.4.18-14.img
title Windows XP
	password --md5 $1$0peVt0$Y.br.18LyAasRsGdSKLYlp1
	rootnoverify (hd0,0)
	chainloader +1

清单 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 交互式引导选项的完全访问权限。按下以下其中一个键,应该能够使用三个选项之中的一个:

  • 要在引导之前编辑命令,请按下 E。这将让您能够为当前选中的 OS 编辑具体的选项。GRUB 只会显示出与那个 OS 的引导相关的选项,然后您可以恰当地进行编辑。当为 root 文件系统指定了错误的 HDD 时,这尤其有用。如果需要以单用户模式访问机器(不需要指定口令就能够让您获得 root 访问权限!),那么在 GRUB 主屏幕上选择 Linux OS。然后与前面一样,按下 E,并移到内核那一行(在我的示例中是 kernel /vmlinuz-2.4.18-14 ro root=LABEL=/)。然后在那一行最后添加 single,并按下 B 来使用修改过的 grub.conf 进行引导。在编辑模式下所做的任何修改都不会保存到 grub.conf 文件中。
  • 要修改内核参数,请按下 A。如果您是一位经验丰富的 Linux 用户,可以根据需要调整内核参数。
  • 要获得类似于 BASH 的命令行界面,请按下 C。这个小型的命令行界面允许您在系统中查找 GRUB 配置文件,加载另外的配置文件,编辑配置文件中的行,以及直接输入 GRUB 命令。如果配置的变化(比如删除了某个分区)让系统无法引导,那么可能会用到这个界面。如果需要将系统引导为单用户模式,或者要让运行级别为 3 而不是普通的运行级别,也可能会使用到它。

这些选项有很多用途,但超出了本文的范围。

可见,GRUB 真正开放了引导期间的可能性。不过,这可能是一件好坏参半的事情,因为 GRUB 也潜在地允许攻击者在 OS 加载之前访问系统。会被误用的主要开放领域是:

  • 访问单用户模式。所有加载到单用户模式的人都会得到 root 访问权限,使得 Linux 可被随意滥用。
  • 访问其他操作系统。任何配置为不需要口令的可引导操作系统,比如 DOS,都将是开放的。
  • 访问 GRUB 编辑器。这允许用户获得修改 GRUB 配置的完全访问权限。

在 GRUB 配置中,设置安全性非常重要;设置口令,并使用 MD5 加密,可以保证整个系统的安全。

阅读(1934) | 评论(0) | 转发(0) |
0

上一篇:LILO详解

下一篇:我的linux安装

给主人留下些什么吧!~~