我正在温习并深入研究文件系统剖析,在大量资源中据说要求第一个超级块以 1024 字节的偏移量开始。我开始寻找任何类型的文档来解释为什么选择 1024,它看起来很随意。我能找到的只有以下内容:
“对于块组 0 的特殊情况,前 1024 字节未使用,以允许安装 x86 引导扇区和其他奇怪的东西。超级块将从偏移 1024 字节开始,无论恰好是哪个块(通常是 0)。但是,如果由于某种原因块大小 = 1024,则块 0 被标记为正在使用,超级块将进入块 1。对于所有其他块组,没有填充。”
我认为这个区域与 grub 的后期阶段有关,所以我做了更多挖掘并发现了这篇文章:
其中,从 DOS 兼容区域部分,表明整个第一个“柱面”被保留,最多可以有 63 个扇区,这远远超过 1024 字节偏移量,所以现在我只是感到困惑。
我的问题:
有人可以解释一下,从字节 0 到 EXT 文件系统的第一个超级块,磁盘是如何布局的?
答案1
磁盘开头的主引导记录 (MBR) 仅包含 446 字节的代码,因此它很小并且不能做太多事情。因此,一种常见的引导技术是执行所谓的“链式加载”,其中 MBR 在活动分区的开头加载代码并跳转到该代码。当 EXT 文件系统位于活动分区上时,通过保留前两个扇区空闲,EXT 文件系统允许将分区的开头用于此类链式加载代码。有关此启动过程如何工作的更多信息可以在此处找到: