从过去的一周开始,我很困惑的问题是grub第一阶段引导加载程序只有446字节能够搜索第二阶段,第二阶段是在复杂的文件系统中!它如何定位第二阶段?
当windows和linux的复杂分区方案到位,并且linux系统完全在扩展分区中时,第1阶段如何找到第2阶段?甚至阶段1.5?
所有grub教程都浏览了这个重要部分。我通过互联网搜索但找不到任何解释这个的东西。可悲的是,我不是集会程序员。
我希望在启动过程中,根据硬盘的哪些扇区(以及大致如何)来复杂地了解启动过程。 * 请指出一个好的资源或在这里回答。 这将有助于我明智地玩grub。 *
搜索了一些资源:
答案 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阶段有时会卡在那里。