数据恢复专题:exFAT 分区的基本结构和特点(11)

前言

本节将学习 exFAT 文件系统的特点、结构及引导扇区。

知识点总览

  • exFAT 文件系统的特点
  • exFAT 文件系统的结构
  • exFAT 文件系统的 DBR 分析

exFAT 文件系统的特点

本小节多为 exFAT 相关理论,与实操无关,可以跳过本小节。

exFAT 全称为 Extended File Allocation Table File System,即扩展文件分配表,是微软在 Windows Embeded 6.0(包括 Windows CE 6.0、Windows Mobile)中引入的一种适合于闪存的文件系统。

exFAT 文件系统跟原来的 FAT 文件系统相比,主要有以下优点:

exFAT 文件系统跟原来的 FAT 文件系统相比,主要有以下缺点:

exFAT 文件系统的结构

ExFAT文件系统结构总览

exFAT 文件系统是由 DBR 及其保留扇区、FAT、簇位图文件、大写字符文件、用户数据区五个部分组成。

这些结构是在分区被格式化时创建出来的,它们的含义如下:

① DBR 及其保留扇区。DBR 的全称为 DOS Boot Record,含义是 DOS 引导记录,也称为操作系统引导记录。在 DBR 之后往往有一些保留扇区,其中 12 号扇区为 DBR 的备份。

② FAT。FAT 的全称为 File Allocation Table,含义是文件分配表。

ExFAT 一般只有一份 FAT,而不像 FAT 文件系统那样有两个 FAT 表:FAT1 和 FAT2。

③ 簇位图文件。簇位图文件是 ExFAT 文件系统中的一个元文件,类似于 NTFS 文件系统中的元文件$BitMap,用来管理分区中簇的使用情况。

④ 大写字符文件。是 ExFAT 文件系统中的第二个元文件,类似于 NTFS 文件系统中的元文件$UpCase,Unicode 字母表中每一个字符在这个文件中都有一个对应的条目,用于比较、排序、计算 Hash 值等方面。

该文件大小固定为 5836 字节。

⑤ 用户数据区。是 ExFAT 文件系统的主要区域,用来存放用户的文件及目录。

exFAT 文件系统的 DBR 分析

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

image-20211208165426103

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 字节,记录了有关该文件系统的重要信息。

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)0x6D ~ 0x6D:每簇扇区数描述

这个字节用来描述每簇包含的扇区数,描述方法为,假设此处值为 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 进行修复。

评论

评论加载中…

输入关键词开始搜索。

选择Enter 打开Esc 关闭CtrlK 唤起