我需要帮助。
最近我研究了 Linux 操作系统的启动顺序,我的一位同事提到它有 2 个引导加载程序。第 1 阶段引导加载程序和第 2 阶段引导加载程序。他还提到 MBR 是第 1 阶段引导加载程序,而 GRUB/LILO 是第 2 阶段引导加载程序。拥有 2 个引导加载程序有什么用处,为什么我们不能将它们合并为一个引导加载程序?
答案1
你可能会发现这个帖子信息量丰富。以下是最相关的部分:
什么是引导加载程序?
最简单地说,引导加载程序会加载操作系统。当您的机器加载其操作系统时,BIOS 会读取可启动媒体的前 512 个字节(称为主引导记录,即 MBR)。您只能在单个 MBR 中存储一个操作系统的引导记录,因此当您需要多个操作系统时,问题就会显现出来。因此需要更灵活的引导加载程序。
主引导记录本身包含两个内容 - 部分或全部引导加载程序和分区表(其中包含有关如何将介质的其余部分划分为分区的信息)。加载 BIOS 时,它会查找存储在硬盘驱动器第一个扇区(MBR)中的数据;使用存储在 MBR 中的数据,BIOS 会激活引导加载程序。
由于 BIOS 可以访问的数据量非常小,大多数引导加载程序分两个阶段加载。在引导的第一阶段,BIOS 会加载引导加载程序的一部分,称为初始程序加载程序 (IPL)。IPL 会询问分区表,然后能够加载各种介质上可能存在的数据。此操作最初用于定位第二阶段的引导加载程序,该加载程序保存了加载程序的剩余部分。
第二阶段引导加载程序是引导加载程序的真正核心;许多人认为它是引导加载程序唯一真正的部分。它包含加载程序中占用更多磁盘空间的部分,例如用户界面和内核加载程序。这些用户界面可以是简单的命令行,也可以是功能齐全的 GUI。
引导加载程序通常以两种方式配置:要么作为主引导加载程序,要么作为辅助引导加载程序。主引导加载程序是将引导加载程序的第一阶段安装在 MBR 上(根据前面的描述)。辅助引导加载程序是将引导加载程序的第一阶段安装在可引导分区上。然后必须在 MBR 中安装一个单独的引导加载程序,并配置为将控制权传递给辅助引导加载程序。