发新帖我要提问
12
返回列表
打印
[应用相关]

FAT32 文件系统详解

[复制链接]
楼主: chenqiang10
手机看帖
扫描二维码
随时随地手机跟帖
21
chenqiang10|  楼主 | 2018-3-31 23:52 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
FAT  文件系统概述
FAT(File Allocation Table,文件分配表)文件系统是 windows 操作系统所使用的一种文件系统,
它的发展过程经历了 FAT12、FAT16、FAT32 三个阶段。

使用特权

评论回复
22
chenqiang10|  楼主 | 2018-3-31 23:53 | 只看该作者
FAT 文件系统用“簇”作为数据单元。一个“簇”由一组连续的扇区组成,簇所含的扇区数必须是 2
的整数次幂。簇的最大值为 64 个扇区,即 32KB。所有簇从 2 开始进行编号,每个簇都有一个自己的地址
编号。用户文件和目录都存储在簇中。
FAT 文件系统的数据结构中有两个重要的结构:文件分配表和目录项:
&文件和文件夹内容储存在簇中,如果一个文件或文件夹需要多余一个簇的空间,则用 FAT 表来描述
如何找到另外的簇。FAT 结构用于指出文件的下一个簇,同时也说明了簇的分配状态。FAT12、FAT16、FAT32
这三种文件系统之间的主要区别在与 FAT 项的大小不同。
&FAT 文件系统的每一个文件和文件夹都被分配到一个目录项,目录项中记录着文件名、大小、文件内
容起始地址以及其他一些元数据。

使用特权

评论回复
23
chenqiang10|  楼主 | 2018-3-31 23:57 | 只看该作者
在 FAT 文件系统中,文件系统的数据记录在“引导扇区中(DBR)”中。引导扇区位于整个文件系统的
0 号扇区,是文件系统隐藏区域(也称为保留区)的一部分,我们称其为 DBR(DOS Boot Recorder——DOS
引导记录)扇区,DBR 中记录着文件系统的起始位置、大小、FAT 表个数及大小等相关信息。
在 FAT 文件系统中,同时使用“扇区地址”和“簇地址”两种地址管理方式。这是因为只有存储用户
数据的数据区使用簇进行管理(FAT12 和 FAT16 的根目录除外),所有簇都位于数据区。其他文件系统管理
数据区域是不以簇进行管理的,这部分区域使用扇区地址进行管理。文件系统的起始扇区为 0 号扇区。

使用特权

评论回复
24
chenqiang10|  楼主 | 2018-3-31 23:58 | 只看该作者
FAT文件系统的整体布局
说明:
【1】  保留区含有一个重要的数据结构——系统引导扇区(DBR)。FAT12、FAT16 的保留区通常只有
一个扇区,而 FAT32 的保留扇区要多一些,除 0 号扇区外,还有其他一些扇区,其中包括了
DBR 的备份扇区。
【2】  FAT 区由来年各个大小相等的 FAT 表组成——FAT1、FAT2,FAT2 紧跟在 FAT1 之后。
【3】  FAT12、FAT16 的根目录虽然也属于数据区,但是他们并不由簇进行管理。也就是说 FAT12、
FAT16 的根目录是没有簇号的,他们的 2 号簇从根目录之后开始。而 FAT32 的根目录通常位
于 2 号簇。
接下来的内容就是 FAT 文件系统的核心内容了!!!

使用特权

评论回复
25
chenqiang10|  楼主 | 2018-3-31 23:58 | 只看该作者
引导扇区
引导扇区是 FAT32 文件系统的第一个扇区,也称为 DBR 扇区。它包含这样一些文件系统的基本信息:
【1】  每扇区字节数
【2】  每簇扇区数
【3】  保留扇区数
【4】  FAT 表个数
【5】  文件系统大小(扇区数)
【6】  每个 FAT 表大小(扇区数)
【7】  根目录起始簇号
【8】  其他一些附加信息

使用特权

评论回复
26
chenqiang10|  楼主 | 2018-3-31 23:59 | 只看该作者
FAT  表概述
位于保留区后的是 FAT 区,有两个完全相同的 FAT(File Allocation Table, 文件分配表)表组成,
FAT 文件系统的名字也是因此而来。
重要说明:
1. 对于文件系统来说,FAT 表有两个重要作用:描述簇的分配状态以及标明文件或目录的下一簇的
簇号。
2. 通常情况下,一个 FAT 把文件系统会有两个 FAT 表,但有时也允许只有一个 FAT 表,FAT 表的具
体个数记录在引导扇区的偏移 0x10 字节处。
3. 由于 FAT 区紧跟在文件系统保留区后,所以 FAT1 在文件系统中的位置可以通过引导记录中偏移
0x0E~0x0F 字节处的“保留扇区数”得到。
4. FAT2 紧跟在 FAT1 之后,它的位置可以通过 FAT1 的位置加上 FAT 表的大小扇区数计算出来。

使用特权

评论回复
27
chenqiang10|  楼主 | 2018-3-31 23:59 | 只看该作者
1. FAT32 中每个簇的簇地址,是有 32bit(4 个字节)记录在 FAT 表中。FAT 表中的所有字节位置以
4 字节为单位进行划分,并对所有划分后的位置由 0 进行地址编号。0 号地址与 1 号地址被系统
保留并存储特殊标志内容。从 2 号地址开始,每个地址对应于数据区的簇号,FAT 表中的地址编
号与数据区中的簇号相同。我们称 FAT 表中的这些地址为 FAT 表项,FAT 表项中记录的值称为 FAT
表项值。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则