FAT32文件系统
簇
文件系统将磁盘空间以一定数目( 2 n 2^n 2n,n为整数)的扇区为单位进行划分,这样的单位称为簇。
- 每扇区大小为512字节。
- 簇的大小一般是512B、1KB、2KB、4KB、8KB、16KB、32KB、64KB等。
簇是进行文件空间分配的最小单位。
FAT表
FAT表(File Allocation Table 文件分配表)是Microsoft在FAT文件系统中用于磁盘数据(文件)索引和定位引进
的一种单向链式结构。
- FAT区用每一个FAT项来记录每一个簇的占用情况
- FAT表中:表项的个数=簇的个数
- 如果为0,则表示对应簇为空闲,可存储数据。
- 每个表项有多大?
-
FAT32: 32位,4字节;可表达的最大簇号空间为4G
-
FAT16的最大簇号空间为64K
-
簇链
一个文件所占用簇的序号形成的单向链表。
实现方法:在文件占用簇的对应簇号的FAT项,填写下一个簇的簇号,如果为最后一簇,则输入结束标识“FFFFFF0F”。
文件的存储
- 按照文件的大小,定位足够的空闲簇;
- 创建文件目录项:32bytes;
- 在FAT中构建簇链表;
- 在分配的簇中写入数据。
已删除文件的恢复原理
文件删除过程:
- 在目录项中,将文件首字节修改为E5,首簇高位被清零;
- FAT簇链表被全部清空;
- 文件内容不清除。
如何恢复?
- 恢复文件首字节及首簇高位;(已知文件位置)
- 当文件使用簇是连续存储时,易于恢复。