FAT文件系统

文件系统就是对数据进行存储和管理的方式,是为了长久的存储和访问数据而为用户提供的一种基于文件和目录的存储机制。

一、知识点

文件系统

  • 1、对硬盘进行格式化的过程就是在为硬盘写入文件系统。
  • 2、文件系统种类繁多,但有一些共性:

(1)数据单元:数据在写入磁盘或从磁盘读取数据时每次操作的数据量称为数据单元,它的大小在建立文件系统时确定。数据单元在不同的文件系统中有不同的称呼:例如在 FAT 和 NTFS 文件系统中称作“簇(Cluster)”,ExtX 中称作“块(Block)”等。一个数据单元由若干个连续的扇区组成,大小总是 2 的整数次幂个扇区。

(2)逻辑文件地址:对每个文件来说,将它按所在文件系统的数据单元大小为单位进行分割后,分割后的每一部分由0开始编号,这个编号就是其对应的逻辑文件地址。一个文件前后相邻的两个数据单元在物理上的存储地址可能是不连续的,当它的逻辑文件地址一定是连续的。

(3)分配策略:

1)第一可用分配策略,即当一个文件分配了一个存储单元后还要继续为其分配时,操作系统会重新从文件系统的起始处搜索可以使用的空间。

2)下一可用分配策略,即为文件分配了一个储存单元后并不再回到卷开始处重新寻找可用空间,而是直接向后进行搜索。

3)最佳分配策略,即在为文件分配空间时,会尽可能找到足够的连续空间以避免其片段化。


FAT表

  • 3、FAT(File Allocation Table,文件分配表)文件系统是 windows 操作系统所使用的一种文件系统,它的发展过程经历了 FAT12、FAT16、FAT32 三个阶段。
  • 4、FAT 文件系统用“簇”作为数据单元。一个“簇”由一组连续的扇区组成,簇所含的扇区数必须是 2的整数次幂。簇的最大值为 64 个扇区,即 32KB。所有簇从 2 开始进行编号,每个簇都有一个自己的地址编号。用户文件和目录都存储在簇中。
  • 5、文件分配表FAT(File Allocation Table)用来描述文件系统内存储单元的分配状态及文件内容的前后链接关系的表格(也可以笼统的说成是记录文件所在位置的表格)。它对于FAT文件系统来讲是至关重要的一个组成部分,并且它对于硬盘的使用也非常重要,假若丢失文件分配表,那么硬盘上的数据就无法定位,也就不能使用了。

(1)如果某个簇存在坏扇区,则整个簇会用 FAT 表项值 0xFFFFFF7 标记为坏簇,不再使用,这个坏簇标记就记录在它所对应的 FAT 表项中。

(2)由于簇号起始于 2 号,所以 FAT 表项的 0 号表项与 1 号表项不与任何簇对应。FAT32 的 0 号表项值总是“F8FFFF0F”。

(3)1 号表项可能被用于记录脏标志,以说明文件系统没有被正常卸载或者磁盘表面存在错误。不过这个值并不重要。正常情况下 1 号表项的值为“FFFFFFFF”或“FFFFFF0F”。

(4)在文件系统中新建文件时,如果新建的文件只占用一个簇,为其分配的簇对应的 FAT 表项将会写入结束标记。如果新建的文件不只占用一个簇,则在其所占用的每个簇对应的 FAT 表项中写入为其分配的下一簇的簇号,在最后一个簇对应的 FAT 表象中写入结束标记。

  • 6、文件系统大小的上限取决于 FAT 项的大小。簇链中的每个 FAT 项记录着下一个簇的簇地址,FAT 项所能表示的数字有一个上限,这个上限值也就是文件系统中的最大簇号。FAT32 文件系统的 FAT 项只使用了32bit 的 28bit,因此只能描述 268435456 个簇(实际上还要少于这个值,因为这其中还包括用作结束标记和坏簇标志的保留值)。

FAT数据区

  • 7、数据区是真正用于存放用户数据的区域。数据区紧跟在 FAT2 之后,被划分成一个个的簇。所有的簇从 2 开始进行编号。也就是说,2 号簇的起始位置就是数据区的起始位置。