一、FAT32文件系统结构
1、引导扇区:描述分区大小、簇的大小、FAT表个数与大小、分区引导程序等。
2、FAT(文件分配表)FAT1+FAT2:记录数据存储区每一个簇的使用情况,形成每个文件的簇链表
3、数据存储区:
存储两类数据:目录项、文件数据
二、几个概念
1、簇:文件系统将磁盘以一定数量的扇区为单位进行划分,这样的单位称为簇。是文件空间分配的最小单位。
2、FAT表:微软在FAT文件系统中用于磁盘数据索引和定位引进的一种单向链式结构。
FAT表中的表项个数=簇的个数,用来记录每一个簇的占用情况。若为0,则表示对应簇空闲。
FAT32的每个表项32位,4个字节。可表达的最大簇号为4G
3、簇链:一个文件所占用簇的序号形成的单向链表。
实现方法:在文件占用簇的对应簇号的FAT项,填写下一簇的簇号。如果为最后一簇,输入"FFFFFF0F".
三、文件的存储
1、存储过程:
根据文件大小在FAT表中定位足够的空闲簇——>在数据存储区创建目录项——>在FAT中构建簇链表——>在对应分配的簇中写入数据。
2、目录项的含义:
文件名+后缀名+文件属性+保留+文件创建时间+日期+访问日期+首簇高16位+更新日期及时间+首簇低16位+文件大小
四、文件删除
目录项变化:首簇高位清零、文件名首位修改为E5
簇链表变化:全部清零
文件内容:无变化
五、文件恢复
1、还原文件名首位:
长文件名:逆向定位完整文件名
2、确定高位并还原
参考相邻目录项首簇高位。
从0往上试探,看首簇指向内容是否为文件内容
3、修复FAT表簇链
通过文件大小计算所占簇数目
假设连续存储,进行簇链修补。末项用0fffffff。