GRUB的第1阶段引导加载程序如何加载第2阶段引导加载程序?

时间:2013-05-10 12:41:16

标签: linux bootloader grub

从过去的一周开始,我很困惑的问题是grub第一阶段引导加载程序只有446字节能够搜索第二阶段,第二阶段是在复杂的文件系统中!它如何定位第二阶段?

当windows和linux的复杂分区方案到位,并且linux系统完全在扩展分区中时,第1阶段如何找到第2阶段?甚至阶段1.5?

所有grub教程都浏览了这个重要部分。我通过互联网搜索但找不到任何解释这个的东西。可悲的是,我不是集会程序员。

我希望在启动过程中,根据硬盘的哪些扇区(以及大致如何)来复杂地了解启动过程。 * 请指出一个好的资源或在这里回答。 这将有助于我明智地玩grub。 *

搜索了一些资源:

  1. Linux的工作原理:Brian Ward应该知道每个超级用户应该知道什么。
  2. http://www.dedoimedo.com/computers/grub.html
  3. 一些过去的stackoverflow问题。

1 个答案:

答案 0 :(得分:3)

第1阶段“知道”第2阶段的位置是嵌入其中的阻止列表加载表中的条目。它从启动驱动器加载块列表,然后以16位实模式跳转到指定的CS:IP。这些在嵌入数据页面中描述。它向BIOS查询磁盘几何,并将线性块编号映射到INT 13h BIOS接口使用的C:H:S地址。

http://www.uruk.org/orig-grub/technical.html

新磁盘对齐的时间也很长,MBR和第一个分区之间的未分配空间不到1-2 MB,而且第2阶段有时会卡在那里。