FAT32文件系统理论入门

1.1 MBR(Main Boot Record)

         主引导记录,有时也称主引导扇区,位于整个硬盘的 0 柱面 0 磁头 1 扇区(可以看作是硬盘的第一个扇区),在总共512byte的主引导记录中,MBR的引导程序占了其中的前 446 个字节(偏移 0H~偏移 1BDH),随后的 64 个字节(偏移 1BEH~偏移 1FDH)为DPT(DiskPartitionTable,硬盘分区表),最后的两个字节“55 AA”(偏移 1FEH~偏移1FFH)是分区有效结束标志。 为计算机启动后从可启动介质上首先装入内存并且执行的代码,通常用来解释分区结构。MBR不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的MBR,即使不同,MBR也不会夹带操作系统的性质。具有公共引导的特性。下面看看MBR信息,如下图所示。

1.2 DBR(DOS Boot Record)

        操作系统为了便于用户对磁盘的管理,加入了磁盘分区的概念,即将一块磁盘逻辑划分为几块。在上图 DPT 共 64 个字节中,以 16个字节为分区表项单位描述一个分区的属性。也就是说,第一个分区表项描述第一个分区的属性,一般为基本分区。第二个分区表项描述除基本分区外的其余空间,一般而言,就是我们所说的扩展分区。DBR(DOS引导记录)为操作系统进入文件系统以后可以访问的第一个扇区,通常用来解释文件系统,DBR是由硬盘的MBR装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动分区才会被MBR装的DBR入内存运行。这部分的大体说明见表 。

注:

1.上表中的超过 1 字节的数据都以实际数据显示,就是按高位到地位的方式显示。存储时是按低位到高位存储的。两者表现不同,请仔细看清楚。

2.超过 8.4GB的分区其实已经不通过C/H/S的方式寻址了(柱面(Cylinders)、磁头(Heads)、扇区(Sector)、Cylinders×Heads×Sector个扇区)。而是通过偏移CH~偏移FH(分区表项的第十二到十六字节)共 4 个字节 32 位线性扇区地址来表示分区所占用的扇区总数,可知通过 4 个字节可以表示 2^32 个扇区,即 2TB=2048GB。超过 8.4GB 的分区结束C/H/S一般填充为FEH FFH FFH。即C/H/S所能表示的最大值。有时候 也会用柱面对 1024 的模来填充。不过这几个字节是什么其实都无关紧要了

3.虽然现在的系统均采用线性寻址的方式来处理分区的大小。但不可跨柱面的原则依然没变。本分区的扇区总数加上与前一分区之间的保留扇区数目依然必须是柱面容量的整数倍。(保留扇区中的第一个扇区就是存放分区表的MBR或虚拟MBR的扇区,分区的扇区总数在线性表示方式上是不计入保留扇区的。如果是第一个分区,保留扇区是本分区前的所有扇区。

1.3 EBR(Extended Boot Record)

        由于MBR四条分区信息的限制,可以使用EBR方便扩展,它的结构与MBR类似,但是没有引导程序和磁盘签名,仅仅保留了分区表和结束标志。 扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录( Extended Boot Record, EBR),也有人称之为虚拟mbr或扩展mbr。扩展引导记录包括一个扩展分区表和该扇区的标签。扩展引导记录将记录只包含扩展分区中每个逻辑驱动器的第一个柱面的第一面的信息。一个逻辑驱动器中的引导扇区一般位于相对扇区 32 或 63。但是,如果磁盘上没有扩展分区,那么就不会有扩展引导记录和逻辑驱动器。第一个逻辑驱动器的扩展分区表中的第一项指向它自身的引导扇区。第二项指向下一个逻辑驱动器的EBR。如果不存在进一步的逻辑驱动器,第二项就不会使用,而且被记录成一系列零。如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项会指向它本身的引导扇区。第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱动器的EBR。扩展分区表的第三项和第四项永远都不会被使用。因为MBR四条分区信息的限制,可以使用EBR方便扩展.它的结构与MBR类似,但是没有引导程序和磁盘签名,仅仅保留了分区表和结束标志。

        扩展分区中逻辑驱动器的扩展引导记录是一个连接表。下图显示了一个扩展分区上的三个逻辑驱动器,说明了前面的逻辑驱动器和最后一个逻辑驱动器之间在扩展分区表中的差异。

         主引导扇区包括主引导记录(446bytes),4个DPT(Disk partition table硬盘分区表)(4*16=64bytes),分区有效标志0x55AA。除了扩展分区上最后一个逻辑驱动器外,扩展分区表的格式在每个逻辑驱动器中都是重复的:第一个项标识了逻辑驱动器本身的引导扇区,第二个项标识了下一个逻辑驱动器的EBR。最后一个逻辑驱动器的扩展分区表只会列出它本身的分区项。最后一个扩展分区表的第二个项到第四个项未被使用。

        扩展分区表项中的相对扇区数字段所显示的是从扩展分区开始到逻辑驱动器中第一个扇区的位移的字节数。总扇区数字段中的数是指组成该逻辑驱动器 的扇区数目。总扇区数字段的值等于从扩展分区表项所定义的引导扇区到逻辑 驱动器末尾的扇区数。 有时候在磁盘的末尾会有剩余空间,剩余空间是什么呢?我们前面说到,分区是以 1 柱面的容量为分区粒度的,那么如果磁盘总空间不是整数个柱面的话,不够一个柱面的剩下的空间就是剩余空间了,这部分空间并不参与分区,所以一般无法利用。照道理说,磁盘的物理模式决定了磁盘的总容量就应该是 整数个柱面的容量,为什么会有不够一个柱面的空间呢。在我的理解看来, 本来现在的磁盘为了更大的利用空间,一般在物理上并不是按照外围的扇区大于 里圈的扇区这种管理方式,只是为了与操作系统兼容而抽象出来CHS。可能其实 际空间容量 不一定正好为整数个柱面的容量吧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值