E.2. GRUB
GNU GRand Unified Boot loader(GRUB)是启用在系统引导时选择要载入的安装的操作系统或者内核的程序。它还允许用户向内核传递参数。
E.2.1. 基于 BIOS 的 x86 系统中的 GRUB 和引导过程
这部分内容讨论了在引导基于 BIOS 的 x86 系统时 GRUB 扮演的特殊角色。要了解引导过程的全貌,请参考 第 F.2 节 “引导过程的详细介绍”。
GRUB 在下列阶段将自己载入内存:
- 使用 BIOS 将阶段 1 或者主引导装载程序从 MBR[16]读入内存主引导装载程序只在 MBR 中占用小于 512 字节磁盘空间,并可将阶段 1.5 或者阶段 2 载入引导装载程序。BIOS 无法读取分区表或文件系统。它初始化硬件、读取 MBR、然后完全依赖于第一阶段的引导装载程序来继续引导过程。
- 如果有必要,阶段 1.5 引导装载程序由阶段 1 引导装载程序读入内存。 某些硬件在进入第二阶段引导装载程序之前,要求一个中间步骤。当
/boot/
分区处于硬盘的 1024 柱面之上,或者使用 LBA 模式时,这就会出现这种情况。阶段 1.5 引导装载程序位于/boot/
分区或者是 MBR 和/boot/
分区的一小部分空间里。 - 将阶段 2 或第二级的引导装载程序读入内存。 第二级引导安装程序显示 GRUB 菜单和命令环境。这个界面允许用户选择引导哪个内核或操作系统、将参数传递给内核、或者查看系统参数。
- 第二级的引导装载程序将操作系统或内核,以及
/boot/sysroot/
里的内容读入内存。 GRUB 决定启动哪个操作系统或者内核后,它就会将其装入内存并将机器的控制权交给那个操作系统。
这个引导 Linux 的方法被称为直接载入,因为引导装载程序直接载入操作系统。引导装载程序和内核间没有互动。
其他操作系统使用的引导过程可能有所不同。例如,Microsoft Windows 操作系统,以及其他的操作系统,都使用 chain loading 的方式安装。在这种方式下,MBR 指向存放操作系统的分区的第一个扇区,找到所需的文件来引导操作系统。
GRUB 支持 direct 和 chain 安装这两种方式,这使它几乎可以引导任何操作系统。
警告
在安装过程中,微软的 DOS 和 Windows 安装程序完全覆盖了 MBR(主引导分区),这会破坏所有现有的引导装载程序。如果要创建一个双重引导系统,最好先安装微软的操作系统。