没有合适的资源?快使用搜索试试~ 我知道了~
FAT16和FAT32文件格式说明
需积分: 5 0 下载量 161 浏览量
2024-03-28
19:39:28
上传
评论
收藏 838KB DOCX 举报
温馨提示
试读
27页
FAT16和FAT32文件格式说明
资源推荐
资源详情
资源评论
FAT16 文件系统结构
FAT,英文为 File Allocation Table,文档分配表。先要记住几个概念:
扇区:一般扇区为 512 个字节,一般情况是存储介质的最小单位。
簇:由若干个扇区组成,是文件系统存取数据的最小单位。如果簇大小为
16K,文件大小为 1 字节,那也要用一个簇来存,而且该簇不用再拿来他用。
FAT 文件系统就是专门管理这些簇的。一个文件可能占据一个或者多个簇,按
正确的顺序去读取这些簇,就可以获取这个文件的内容了。
一、FAT16 的基本结构
FAT16 基本结构依次为:DBR 扇区、FAT 表 1、FAT 表 2、根目录和数据区。
1、DBR 扇区
DBR 是操作系统可以直接访问的第一个扇区,包括一个引导程序和一个称为
BPB 的本分区参数记录表。BPB 参数块记录着本分区的起始扇区、结束扇区、
文件存储格式、硬盘介质描述符、根目录大小、FAT 个数、分配单元的大小等
重要参数。
2、FAT 表 1 和 FAT 表 2
FAT 表 1 和 FAT 表 2 是保存簇状态的地方,从 DBR 可知一个 FAT 表是
21 个扇区。FAT 表里面的内容就是指出某个文件占用的下一个簇在哪里。FAT
使用【项】来表示簇状态。盘里有多少个簇,FAT 就有多少个项来描述它们。
FAT16 用 16bit 来描述一个簇的状态。簇从 0 开始编号,第 0 和第 1 个字节表
示第 0 个簇,第 2 和第 3 个字节表示第 1 个簇,第 4 和第 5 个字节表示第 2 个
簇…这两个字节里面存放的数据就是文件中下一个簇所在的簇号。
比如要读 new.txt 文件,从根目录中找到了它,读它的根目录信息知道它的
第一个簇的簇号是 5,于是把第 5 号簇的数据送出去,在 FAT 表中 5 号簇是第
10 和第 11 字节来表示,于是去读第 10 和第 11 字节,得到 0007,知道了文
件接下来的数据保存在 7 号簇中,把 7 号簇的数据送出去,又去读第 14 和第
15 字节的数据,得到 FFFF,说明文件到末尾了。
下面是 FAT 中数据的含义:
对于 FAT16,每个簇用 16Bit 来表示,最大能表示 65536,FAT16 文件系
统的簇最大为 32K,因此 FAT16 最大只能支持 65536*32K
约等于
2G
。因此大
于
2G
的盘必须选择其他的文件系统,比如
FAT32
。
根据 DBR 的参数,我们可以算出 FAT1 的偏移地址以及根目录的偏移值。
保留扇区(FAT1 之前的扇区,包括引导扇区)之后就是 FAT 表。
FAT1 偏移地址:第 1 个扇区的位置,偏移地址也就是 512,大小为 21 个
扇区,即总大小 21*512=10752 字节。
FAT2 偏移地址:FA1 偏移地址+FAT1 的大小,512+21*512 = 11264。
3、根目录
根 目 录 偏 移 地 址 : FAT2 偏 移 地 址 + FAT2 的 大 小 , 11264+21*512=
22016。
根目录的偏移地址定义为第 1 个簇的起始位置,根目录保存在第 1 个簇中,
即第 1 个簇地址为 22016,第 2 个簇为 22016+32*512=38400(每个簇占 32 个
扇区)。我们来看看根目录的数据:
在根目录中,一个文件或者一个文件夹用 32 字节来表示属性。
根据这个我们就可以解读根目录的信息了,可以看到现在根目录中只有一
个名字为 IMAGE 和名字为 VERINFO 的文件夹。可以看到 VERINFO 文件夹
的首簇号是 9F 12 也就是 0x129F = 4767 号簇。可以得到 VERINFO 文件夹
的偏移地址是 22016+(4767-1)*512*32 = 78108160。数据如下:
VERINFO 文件夹下文件信息的组织方式和根目录一样,可以看到现在
VERINFO 文件夹下有两个不知名的文件夹和一个叫 ver_info.txt 的文件。又可
以继续得到该文件的首簇号和文件的长度。首簇号是 A0 12 也就是
0x12A0=4768。文件长度是 1F 也就是 31 字节,小于簇大小 512*32 字节,因
此只占一个簇,不需要回去查看 FAT 来找到剩下的簇。
该文件所在位置:22016+(4768-1)512*32 = 78124544。
上面看到的数据就正好是 ver_info.txt 中保存的数据。
剩余26页未读,继续阅读
资源评论
nanweishanshui
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功