从上周开始,我感到困惑的问题是,当第二阶段位于复杂的文件系统中时,只有446个字节的grub第一阶段引导加载程序如何能够搜索第二阶段!如何定位第二阶段?
当Windows和Linux的复杂分区方案到位,并且linux系统完全在扩展分区中时,阶段1如何找到阶段2?甚至1.5阶段?
所有grub教程都将跳过这一重要部分。我通过互联网进行了搜索,但是找不到任何可以解释这一点的信息。可悲的是,我不是汇编程序员。
我想从启动过程中对硬盘的哪些扇区进行勾号(以及大致如何)方面来了解启动过程。 *请为我指出一个好的资源或在此处回答。 这将极大地帮助我明智地使用grub。*
搜索了一些资源:
最佳答案
第1阶段“知道”第2阶段是按嵌入在其中的阻止列表加载表中的条目进行的。它从启动驱动器中加载块列表,然后以16位实模式跳转到指定的CS:IP。这些在嵌入式数据页面中进行了描述。它在BIOS中查询磁盘的几何形状,并将线性块号映射到INT 13h BIOS接口(interface)使用的C:H:S地址。
http://www.uruk.org/orig-grub/technical.html
新磁盘对齐还需要花费很多时间,MBR和第一个分区之间只有不到1-2 MB的未分配空间,并且阶段2有时会卡在其中。