FAT表是什么?
- 文件分配表(File Allocation Table)简称FAT表用来描述文件系统簇的分配状态及文件内容的前后链接关系的表格
- 每个FAT表项占4个字节,(因为每个字节有8Bit,所以FAT表有32Bit,文件系统名FAT32就是这么来的)所以每个扇区有128个FAT表的表项0号表项是“F8FFFF0F”,可以当作是FAT表的签名标志
- FAT表从2号表项开始记录,数据区的每个簇号都有一个FAT表项对应
如何计算FAT表的位置呢?
在DBR中将这两个的值给提取出来
我提取的值为:8,236
然后再提取EBR的扇区号
然后使用EBR的扇区号 + DBR中提取到的值相加就是FAT表的位置了,当然我们也可以直接从EBR向下跳转8236个扇区,但是要注意的是,向下跳转的时候,要切换为10进制模式,否则无法跳转到我们想要去的扇区!
FAT2的起始扇区号如何计算?
FAT1的起始扇区号+FAT1的大小=FAT2的起始位置
在EBR分区中查看以下信息
每个FAT表项记录着文件或目录的下一个簇号(这个比较难理解所以有一个详细的讲解)
- 首先我们在创建好的虚拟磁盘里面放一张照片假设照片的大小为1227KB
- 然后我们打开WinHex找到FAT1表然后就是下面这样
FFFFFF0F表示结束,具体的就需要去看这个图片进行理解了
然后如何计算这个文件所占用的大小呢?
我们数它所占用的簇号,根据截图可以发现该文件从06号簇起始一直到38号簇但是这里是16进制所以并不是到38号簇,它占用了51个簇然后还要加上一个结束簇(FFFFFF0F)共52个簇
然后查看DBR分区查看簇大小和扇区字节数
每簇为16个扇区,每个扇区为512个字节,512 x 2 = 1024 (1024 =1KB)
(16个扇区 = 8KB)(1簇 = 8KB)52 x 8 = 416KB,也就是说该文件占用磁盘空间416KB
注意占用大小是指在磁盘中所占用的大小,我们的数据存放在磁盘中,所以通常我们都是计算占用大小进行恢复
因为该磁盘并未存入其他数据,在实际应用中磁盘存放数据较多时改动较多时,它的簇号就会比较混乱,可能一个文件10个簇,1个簇在66号簇,另一个簇在999号簇并不是连续的所以我们要根据FAT表的指向来恢复,就比如10号FAT表为(0B000000)那么它(10号FAT表项)指向的就是11号簇
FAT2是FAT1的备份
FAT2就是FAT1备份,它们的内容是一样的