http://hi.baidu.com/byougi/blog/item/8e15c3d81eb29c2633fa1cdb.html
这个是我虚拟的磁盘O根目录下的内容,有子目录,有xls表。在子目录1下还有子目录和几个文本文档,这里就不截图了
这个是该分区的DBR,我们看到每簇扇区数是1个,保留扇区数是32个,扇区总数是626472
每FAT表扇区数是D4 12 00 00也就是4820个扇区。
这个是该分区的FAT1表。看到已经分配给文件使用了。我们总结一下,DBR占用32
个扇区,FAT1表和FAT2表一共占用9640个扇区,一共就是9672个扇区。好的
我们把该分区改变格式化参数后格式化。同样是格式化成FAT32格式。格式化后分区内
没有任何内容了。我们用winhex打开看看,具体分析一下。
这个是格式化后的分区的DBR。我们看到每簇扇区数被改成了8个,保留扇区数是34个了
扇区总数没变,每FAT表扇区数改成了63 02 00 00也就是611个比格式化前减少了。所以
格式化后的DBR占用34个扇区,FAT1表和FAT2表占用1222个扇区,一共就是1256个
扇区。比格式化前占用的扇区减少了8416个扇区,所以格式化后的分区信息只是覆盖了原
来的全部DBR和部分FAT1表,FAT2表应该是完整的。这对我们的数据恢复来说是很好的
消息。呵呵。。好的,下面我们就来纯手工的进行数据恢复了。
首先我们知道了FAT2表是完整的了。所以我们可以用FAT2表重建FAT1表,这个在以前的
教程都讲过了,我们在winhex中查找F8FFFF也就是FAT表的开始标志,这里找到了三个FAT表,前两个是格式化之后的FAT表.
看到了吗,除了开始标志和第一个结束标志外,没有在进行分配了。因为我们没有往格式化后的分区写入数据。所以没有进行分配。下一个FAT表就是格式化后的分区的FAT2表。跟这个FAT表是一样的。我们再往下找,在4852号扇区找到了又一个FAT表
继续往下找,没有再找到FAT表了,说明这个就是我们原来分区的FAT2表。下面我们要确定原来分区的FAT表有多大。我们这里查找根目录的起始扇区,因为根目录是跟在FAT2表之后的,所以我们找到了根目录的起始扇区,就能确定FAT表的大小了。我们怎样查找根目录呢,这里简绍一种方法,就是找回收站,也就是搜索ASCII码是Recyled 好的我们马上在9672号扇区找到了回收站。
这就确定了根目录的起始扇区就是9672号扇区,我们又知道原来的FAT2表的起始扇区是4852号扇区,用9672-4852=4820 所以原来的FAT表的大小就是4820个扇区。而且我们也可以算出原来分区的保留扇区
就是4852-4820=32 个扇区。好的我们就用FAT2表重建FAT1表。重建好之后我们就要重建DBR了,现在我们已经知道了保留扇区数是32个,每FAT表个数是4820个,分区总扇区数是626472个,隐含扇区数可以从分区表中得出,这里是63个,现在
我们只需要知道每簇扇区数,重建工作就算完成了。怎么确定每簇扇区数呢。这里我们采用查找子目录的方法。因为我们知道子目录的开始标志都是2E20202020202020202020 所以我们就搜索它 在9673号扇区找到了一个子目录
看到它的上级目录是根目录,它的起始簇号是3号簇,呵呵。我们又知道根目录起始簇是2号簇,起始扇区是9672号扇区,用子目录与根目录的扇区差除以它们的簇号差,所得就是每簇扇区数了。
这里就是每簇扇区数为1个。。。。好的我们所需要的一切参数都已经找到了。就可以完美的恢复数据了。
完全恢复了。。呵呵。。
还有一种情况是格式化之后每簇扇区数比原来分区的每簇扇区数小了,那么文件系统中的簇数就会增加,所需要的FAT表项就会增多,FAT表就增大了。大家也可以把上述列子反过来就能理解了。呵呵。
这时格式化后的FAT表区域就会延伸到原来分区的数据区中,就会覆盖掉一些数据。从而造成对原来数据的破坏。比如破坏掉原来的根目录。这种情况就不能保证百分之百的恢复数据了。。
好了。这里只是给大家提供一种原理分析,可能用软件扫描会更快,但是要学习真正的技术就要理解这些原理,软件也只是虚构出那些分区。理解了原理性的东西才能了解的更深入。。。
因篇幅问题不能全部显示,请点此查看更多更全内容