这部分内容讨论了在引导 x86 系统时 GRUB 扮演的特殊角色。要了解引导过程的全貌,请参考 第 30.2 节 “对引导过程的详细介绍”。
GRUB 在下列阶段把它自己载入内存:
第一阶段或者主引导装载程序被 BIOS 从 MBR 读入内存[4]。 主引导装载程序占据 MBR 里少于 512 个字节的空间,它可以载入第 1.5 阶段或则和第二阶段的引导装载程序。
如果有需要,第 1.5 阶段的引导装载程序由第一阶段的引导装载程序读入内存。 某些硬件在进入第二阶段引导装载程序之前,要求一个中间步骤。当 /boot/ 分区处于硬盘的 1024 柱面之上,或者使用 LBA 模式时,这就会发生。第 1.5 阶段引导装载程序位于 /boot/ 分区或者是 MBR 和 /boot/ 分区的一小部分空间里。
第二阶段或第二级的引导装载程序被读入内存。 第二级引导装载程序显示 GRUB 菜单和命令环境。这个界面允许用户选择引导哪个内核或操作系统、把参数传递给内核、或者查看系统参数。
第二级的引导装载程序把操作系统或内核,以及 /boot/sysroot/ 里的内容读入内存。 一旦 GRUB 决定启动哪个操作系统或者内核,它就会把它载入内存并把机器的控制权交给那个操作系统。
这个引导红帽企业 Linux的方法被称作 direct loading,这是因为引导装载程序直接装载操作系统。在引导装载程序和内核之间没有中间步骤。
其他操作系统使用的引导过程可能有所不同。例如,Microsoft®Windows® 操作系统,以及其他的操作系统,都使用 chain loading 的方式装载。在这种方式下,MBR 指向存放操作系统的分区的第一个扇区,找到所需的文件来引导操作系统。
GRUB 支持 direct 和 chain 装载这两种方式,这使它几乎可以引导任何操作系统。
在安装过程中,微软的 DOS 和 Windows 安装程序完全覆盖了 MBR(主引导分区),这会毁坏任何现有的引导装载程序。如果要创建一个双重引导系统,你最好先安装微软的操作系统。