FAT文件系统协议

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/l289123557/article/details/80470204

FAT(File Allocation Table)

FAT,文件配置表。主要分FAT12/FAT16/FAT32,这三者可支配的大小越往后越大,不过协议大体相同。

FAT的整体结构图:
这里写图片描述

MBR

MBR是整个硬盘的起始引导处,不过对于U盘来说,MBR主要用来对整个U盘的空间进行分区,如图所示,可以分成4个大区

这里写图片描述

MBR每个字段所代表的含义:
这里写图片描述
我们只关心,第一个分区所在的位置,从1C6开始的4字节表示第一分区所在的扇区处(每个扇区512字节),沿着这条信息我们能找到DBR

DBR

DBR用来记录FAT所需的各项参数,包括扇区的大小,簇的大小,FAT1/FAT2的所在位置及大小

这里写图片描述

DBR各个字段所代表的含义

这里写图片描述

我们关心的字段如图中标示,根据这个信息我们就能找到FAT1/FAT2/DATA这三个分区

FAT1/FAT2

FAT2是对FAT1的备份,以防数据破坏不能修复。
FAT通过一整个FAT1来对整个DATA分区的数据进行标示与管理:
这里写图片描述
对于fat32来说,每4个字节表示一个簇,一个簇就管理着一段内存(n个扇区,在DBR有记录),每四个字节所代表的含义:
这里写图片描述

DATA

DATA区主要包含两部分,一个是目录和文件(统称目录项),另一个是数据;对于目录项的含义如下:
这里写图片描述

一个目录项由32个字节组成,通过目录项我们可以找到此项对应的簇号,然后在通过簇号链我们就能得到此项对应的数据,FAT就是通过这个原理来运作数据的。

那么整个数据的根目录在哪呢?对于FAT32来说,根目录存在簇号2代表的地方,由于簇号0和1另有所用,它们不占用实际的簇空间,所以一般来说根目录就在DATA区域的起始位置。

工具

如果想要查看FAT的具体协议,可以通过winhex或者DiskDenius工具来查看,如下图是通过DiskDenius打开一个U盘所得到的信息:

DBR每个字段的含义:

这里写图片描述

每个地址的数据:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/l289123557/article/details/80470204