这部分介绍了 x86 平台的缺省引导装载程序:GRUB。引导过程会因系统架构的不同而有轻微的区别。请参考 第 30.2.2.1 节 “其他体系结构机器的引导装载程序” 来获得非 x86 系统的引导装载程序的简介。关于配置和使用 GRUB 的更多信息,请参考 第 9 章 GRUB 引导装载程序。
x86 平台的引导装载程序至少分为两个阶段。第一阶段是 MBR 里的小型机器二进制代码。它的唯一作用就是定位第二阶段的引导装载程序并把它的第一部分载入内存。
GRUB 可以对 ext2 和 ext3 进行读操作 [13] 分区和装载它的配置文件 — /boot/grub/grub.conf — 在引导时。关于怎样编辑这个文件,请参考 第 9.7 节 “GRUB 菜单配置文件”。
如果用 「Red Hat 更新代理」进行升级,引导装载程序的配置文件将被自动更新。关于 Red Hat Network 的更多信息,你可以访问:https://rhn.redhat.com/。
一旦第二阶段的引导装载程序被载入内存,它就会显示一个图形屏幕供用户选择不同操作系统或内核。在这个屏幕上,用户可以用箭头键来选择想引导的操作系统或内核,并按 Enter 键。如果不按任何键,引导装载程序将在一定时间(可配置)后加载缺省的选项。
一旦第二阶段的引导装载程序已经决定引导哪个内核,它就会寻找 /boot/ 目录里相应的内核二进制代码。内核二进制代码是以下面的格式命名的 — /boot/vmlinuz-<kernel-version> file(在这里 <kernel-version> 对应转载引导程序的设置里指定的内核版本)。
关于用引导装载程序给内核传入命令行参数的说明,请参考 第 9 章 GRUB 引导装载程序。如要在引导装载程序提示下改变运行级别,请参考 第 9.8 节 “在引导时改变运行级别”。
然后,引导装载程序把一个或多个合适的 initramfs 映像载入内存。之后,内核用 cpio 命令把这些映像从内存解压到 /sysroot/ 目录,这是一个基于内存的虚拟文件系统。内核使用 initramfs 来装载引导系统所需要的驱动和模块。如果系统使用 SCSI 硬盘驱动器或 ext3 文件系统时,这尤其重要。
一旦内核和 initramfs 映像被载入了内存,引导装载程序就把引导过程的控制权交给内核。
关于 GRUB 引导装载程序的详细信息,请参阅 第 9 章 GRUB 引导装载程序。
[13] GRUB 把 ext3 文件系统作为 ext2 来进行读操作,而不顾日志文件(journal file)。请参考《红帽企业 Linux 部署指南》 里的 “ext3 文件系统“ 来获得 ext3 文件系统的更多信息。