概述
在本文中,学习为一个 Linux 系统选择、安装和配置引导管理器。您将学习:
配置多个引导位置和备份引导选项
安装和配置一个启动加载程序,比如 GRUB、GRUB 2 或 LILO
在启动时添加引导参数或运行启动加载程序命令
恢复常见引导问题
使用 GRUB Legacy 引导 GRUB 2 系统
本文将讨论 PC 启动过程和 Linux 中使用的 3 个主要启动加载程序:GRUB、GRUB 2 和 LILO,它 们可以帮助您准备 Linux Professional Institute's Junior Level Administration (LPIC-1) 考 试 101 中主题 102 下的目标 102.2。 该目标的权值为 2。请注意,LPIC-1 不 再要求掌握 LILO。本文包含 LILO 内容以便于您对其有所了解。
先决条件
为了最有效地利用 本系列中的文章,您应该具有基本的 Linux 知识,并准备一个 Linux 系统,用于练习本文介绍的命令 。您还应该熟悉文章 “学习 Linux 101:硬盘布局” 中讨论的硬盘驱动器布局。有时候不同版本的程 序输出格式不同,因此您所得到的结果未必总是与这里所示的清单和图相同。
注意:本文中的图 像是从启动过程初期采集的屏幕截图。如果您正在使用一个屏幕读取器阅读本文,您可能会发现拥有对 应的配置文件以便参考的好处;从本文后面的 下载 部分下载它们。
启动过程概述
在深 入了解具体启动加载程序之前,先回顾一下如何启动或引导 PC。名为 BIOS(表示 Basic Input Output Service)的代码存储在 一个非临时内存中,比如 ROM、EEPROM 或闪存。当打开或重新启动 PC 时,会执行这个代码。通常,它 执行一个启动自测 (POST) 来检查机器。最后,它从引导驱动器上的主引导记录(MBR)加载第一个扇区 。
正如文章 “学习 Linux 101:硬盘布局” 所述,MBR 还包含分区表,因此 MBR 中的可执行 代码小于 512 字节,这个代码量不算多。注意,每个磁盘(甚至是软盘))都在它的 MBR 中包含可执 行代码,即使这个代码只够输出一条消息,比如 “Non-bootable disk in drive A:(驱动器 A 中没有 可引导磁盘:)”。这个由 BIOS 从第一扇区加载的代码称为第一阶段启动加载程序 或阶段 1 启动加 载程序。
MS DOS、PC DOS 和 Windows? 操作系统使用的标准硬盘驱动器 MBR 会检查分区表,以 查找标记为 active 的引导驱动器上的主分区,从该分区加载第一个扇区,然后将控制权交给已加载的 代码。这个新的代码片段也称为分区引导记录。分区引导记录实际上是阶段 1 的另一个启动加载程序, 但它只能从分区加载一组块。该新组块中的代码称为阶段 2 启动加载程序。MS-DOS 和 PC-DOS 使用的 阶段 2 加载程序直接继续加载操作系统其余部分。以上就是操作系统启动并运行的引导进程。
这个引导进程对于单操作系统很适用。但是,如果您想要使用多个操作系统,比如 OS/2、Windows XP 和 3 个不同的 Linux 发行版,那么会出现什么样的情况呢?您可以 使用某个程序(比如 DOS FDISK 程序)来更改活动分区并重新启动,但这种方法比较笨拙。此外,一个磁盘只能拥有 4 个主分区,而标 准 MBR 只能拥有一个主分区;系统不能从逻辑分区引导。但我们假设的示例提到了 5 种操作系统,每 个系统都需要一个分区。
该问题的解决方案是使用一些特殊代码,允许用户选择引导哪个操作系 统。此类程序包括:
Loadlin
一个 DOS 可执行程序,可以在一个正在运行的 DOS 系统中调用它来引导一个 Linux 分区。如果多 引导系统的设置过程很复杂且存在风险,那么这个代码就能够派上用场。
OS/2 Boot Manager
这个程序安装在一个专用小分区上,分区被标记为 active,标准 MBR 引导进程启动 OS/2 Boot Manager,该程序显示一个菜单,允许选择要启动的操作系统。
智能启动加载程序
该程序可以驻留在操作系统的分区上,通过一个活动分区的分区引导记录或主引导记录进行调用。这 类程序包括:
BootMagic,Norton PartitionMagic 的一部分
LILO,即 LInux LOader
GRUB,即 GRand Unified Boot 加载程序 (现在称为 GRUB Legacy)
GRUB 2,最近才在常用发行版中出现的一个新的启动加载程序