系统管理指南:基本管理

x86: 管理 GRUB 引导装载器

在基于 x86 的系统中,开放源代码 GRand Unified Bootloader (GRUB) 是缺省引导装载器。GRUB 负责将引导归档文件装入系统的内存中。引导归档文件是一些关键文件的集合,挂载根文件系统之前,在系统启动过程中需要这些文件。引导归档文件是用于引导 Oracle Solaris OS 的接口。您可以在 http://www.gnu.org/software/grub/grub.html 中找到有关 GRUB 的更多信息。另请参见 grub(5) 手册页。

基于 GRUB 的引导的工作原理

打开基于 x86 的系统后,基本输入/输出系统 (Basic Input/Output System, BIOS) 将初始化 CPU、内存和平台硬件。初始化阶段完成后,BIOS 从所配置的引导设备装入引导装载器,然后将对系统的控制权传送给引导装载器。引导装载器是在打开系统后运行的第一个软件程序。此程序将开始执行引导过程。

GRUB 实现了一个菜单界面,其中包括在名为 menu.lst 文件的配置文件中预定义的引导选项。GRUB 还具有一个可从 GUI 菜单界面访问的命令行界面,该界面可用于执行各种引导功能,包括修改缺省引导行为。在 Solaris OS 中,GRUB 实现符合多引导规范,http://www.gnu.org/software/grub/grub.html 中详细介绍了该规范。

由于 Oracle Solaris 内核完全符合多引导规范,因此可使用 GRUB 来引导基于 x86 的系统。使用 GRUB,可以引导单个基于 x86 的系统上安装的各种操作系统。例如,通过在引导时在 GRUB 菜单中选择引导项,可以单独引导 Oracle Solaris、Linux 或 Windows,或者通过配置 menu.lst 文件以便在缺省情况下引导特定 OS。

由于 GRUB 具有直观的文件系统和内核可执行格式,因此您无需记录内核在磁盘上的物理位置即可装入操作系统。使用基于 GRUB 的引导,内核的装入是通过指定其文件名以及内核所在的驱动器和分区来实现的。有关更多信息,请参见用于配置 GRUB 的命名约定

有关使用 GRUB 引导系统的逐步说明,请参见使用 GRUB 引导基于 x86 的系统(任务图)

另请参见以下手册页:

GRUB 支持 findroot 命令

findroot 命令(其作用与 GRUB 以前使用的 root 命令类似)具有增强的功能,用于搜索目标磁盘(无论引导设备是什么)。findroot 命令还支持从 Oracle Solaris ZFS 根文件系统引导。

此命令的 menu.lst 项的最常见格式为:


findroot (rootfs0,0,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix
module$ /platform/i86pc/$ISADIR/boot_archive

在某些 Oracle Solaris 发行版中,该项为:


title Solaris 10 10/08 s10x_u6wos_03 X86
findroot (pool_rpool,0,a)
kernel$  /platform/i86pc/multiboot  -B $ZFS-BOOTFS
module /platform/i86pc/boot_archive

title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s    -B console=ttyb
module /boot/x86.miniroot-safe

有关更多信息,请参见x86: findroot 命令的实现

有关 GRUB 的参考信息,请参见第 15 章