DBR开始于ExFAT文件系统的第一个扇区,计算机启动时首先由BIOS读入主引导盘MBR的内容,以确定各个逻辑驱动器及其起始地址,然后调入活动分区的DBR,将控制权交给DBR,由DBR来引导操作系统。

ExFAT文件系统的DBR由6部分组成,分别为跳转指令、OEM代号、保留区、BPB参数、引导程序和结束标志。图4-519是一个完整的ExFAT文件系统的DBR。

ExFAT文件系统的DBR分析-数据恢复迷

图4-519 ExFAT文件系统的DBR

1.跳转指令

跳转指令本身占用两个字节,它将程序执行流程跳转到引导程序处。例如,当前DBR中的“EB 76”,就是代表汇编语言的“JMP 76”。需要注意该指令本身占用两个字节,计算跳转目标地址时以该指令的下一字节为基准,所以实际执行的下一条指令应该位于78H。紧接着跳转指令的是一条空指令NOP(90H)。

2.OEM代号

这部分占8字节,其内容由创建该文件系统的OEM厂商具体安排。例如,微软的Windows Vista系统将此处设置为文件系统类型“ExFAT”。

3.保留区

从DBR的0BH~3FH处是原来的FAT文件系统BPB所占用的空间,ExFAT文件系统不使用这些字节。

4.BPB(BIOS Parameter Block,BIOS参数块)

ExFAT的BPB从第DBR的40BH偏移处开始,占用56字节,记录了有关该文件系统的重要信息,其中各个参数的含义见表4-97。

表4-97 ExFAT的BPB参数

ExFAT文件系统的DBR分析-数据恢复迷

这些参数也可以使用WinHex的模板来查看,不过WinHex目前还不支持ExFAT文件系统(笔者写此书时WinHex最新版为15.4),所以模板管理器中还没有提供ExFAT的DBR模板,不过读者可以根据ExFAT的DBR写出其结构模板,这样分析起来就方便很多。

打开WinHex的模板管理器,选择笔者写的ExFAT的DBR模板,如图4-520所示。

ExFAT文件系统的DBR分析-数据恢复迷

图4-520 选择ExFAT的DBR模板

双击模板后就可以查看ExFAT的DBR信息了,如图4-521所示。

ExFAT文件系统的DBR分析-数据恢复迷

图4-521 ExFAT的DBR模板

下面对这些参数作详细分析。

(1)0x40~0x47:隐藏扇区数

隐藏扇区数是指本分区之前使用的扇区数,该值与分区表中所描述的该分区的起始扇区号一致:对于主磁盘分区来讲,是MBR到该分区DBR之间的扇区数;对于扩展分区中的逻辑驱动器来讲,是其EBR到该分区DBR之间的扇区数。

(2)0x48~0x4F:扇区总数

扇区总数是指分区的总扇区数,由8字节组成,也就是64位,所以能管理的最大分区为264×512=273Byte=8ZB。微软官方网站提供的信息称:ExFAT理论上最大可以支持64ZB的分区,但从这里只能算出8ZB。

(3)0x50~0x53:FAT起始扇区号

该值为相对于文件系统起始号扇区而言,也就是从DBR到FAT表之间的扇区数。

(4)0x54~0x57:FAT扇区数

是指FAT表包含的扇区数,ExFAT文件系统只有一份FAT表。

(5)0x58~0x5B:首簇起始扇区号

该值用来描述文件系统中的第1个簇的起始扇区号。与传统FAT文件系统一样,ExFAT文件系统的第一个簇也是2号簇,通常2号簇分配给簇位图文件使用,因此,该值也就是簇位图文件的起始扇区号。

(6)0x5C~0x5F:分区内的总簇数

分区内的总簇数是指从分区内第一个簇算起,到分区末尾所包含的簇的总数。

(7)0x60~0x63:根目录首簇号

分区在格式化为ExFAT文件系统时,格式化程序会在数据区中指派一个簇作为ExFAT的根目录区的开始,并把该簇号记录在BPB中。通常分区中的第一个簇被分配给簇位图文件使用,簇位图文件之后是大写字符文件,大写字符文件的下一个簇就根目录的起始位置了。

(8)0x64~0x67:卷序列号

卷序列号是格式化程序在创建文件系统时生成的一组4字节的随机数值。

(9)0x6C~0x6C:每扇区字节数描述

这个字节用来描述每扇区包含的字节数,描述方法为,假设此处值为N,则每扇区大小字节数为2N。例如,本例中该值为“09”,即每扇区大小字节数为29=512。

(10)0x6C~0x6C:每簇扇区数描述

这个字节用来描述每簇包含的扇区数,描述方法为,假设此处值为N,则每簇扇区数为2N。例如,本例中该值为“06”,即每簇扇区数为26=64。

ExFAT文件系统能够支持从512B~32MB的簇大小。

5.引导程序

ExFAT的DBR引导程序占用390字节(78H~1FDH)。这部分字节对于ExFAT来说也是很重要的,如果这些数据被破坏,文件系统将无法使用。

6.结束标志

ExFAT的DBR结束标志与FAT的DBR结束标志一样,也是“55 AA”。

在ExFAT的DBR之后还有很多保留扇区,其中12号扇区为DBR的备份,如果DBR遭到破坏,可以用其备份DBR进行修复。