格式化的底层分析
格式化就是给分区创建一个文件系统,首先看一个有数据的FAT32分区,然后将其格式化,并分析格式化后原来数据的改变。
一个FAT32分区“J”中的数据,有一个文件“xiaodie.jpg”和一个文件夹“123”,如图4-348所示。
图4-348 一个FAT32分区中的数据
文件夹“123”下有一个文件“123.jpg”,如图4-349所示。
图4-349 文件夹“123”下的文件“123.jpg”
该分区的FAT表的部分内容如图4-350所示。
图4-350 FAT32分区“J”的FAT表的部分内容
该分区根目录的部分内容如图4-351所示。
图4-351 FAT32分区根目录的部分内容
根目录中是文件夹“123”及文件“xiaodie.jpg”的目录项。
文件夹“123”下的文件“123.jpg”的文件目录项如图4-352所示。
图4-352 文件夹“123”下的文件“123.jpg”的文件目录项
文件“123.jpg”的文件目录项之前还有两个目录项,它们是“.”目录和“..”目录的目录项。
现在将这个FAT32分区“J”格式化,如图4-353所示。
图4-353 格式化FAT32分区“J”
格式化后再来看这个分区的FAT表,发现FAT表除了0号FAT项、1号FAT项和2号FAT项以外已被完全清空,如图4-354所示。
图4-354 格式化后FAT表被清零
跳转到根目录区,看到根目录区也被完全清零,如图4-355所示。
图4-355 格式化后根目录区被清零
再跳转到子目录区,发现文件夹“123”下的文件“123.jpg”的目录项还在,如图4-356所示。
图4-356 文件夹“123”下的文件“123.jpg”的目录项依然存在
格式化之后文件的恢复
从前面的分析可以看出来,FAT32文件系统格式化之后,FAT表的簇链全部清零,根目录区中的文件目录项也被清零,所以根目录下的文件就很难被恢复了,因为没有目录项就无法知道这些文件名及它们存放的地址。
子目录的目录项还保存着,没有被清零,所以子目录下的文件是有机会恢复的。例如,“123.jpg”这个文件,从图4-352中可以看出文件开始簇号为04H,文件大小为CC30H(十进制值为52 272),跳转到4号簇,其内容如图4-357所示。
图4-357 文件“123.jpg”的数据
只要从4号簇所在扇区开始,连续选中52 272个字节,并另外保存,就可以将文件恢复。具体做法在前面讲过,这里就不再演示。
注意:这种方法只适用于文件连续存放及文件的数据没有被覆盖的情况,如果文件不连续,或者文件的数据已经被覆盖,这样恢复出来的数据就是不正确的。