大容量NTFS分区格式化为NTFS后快捷数据恢复案例.docx
《大容量NTFS分区格式化为NTFS后快捷数据恢复案例.docx》由会员分享,可在线阅读,更多相关《大容量NTFS分区格式化为NTFS后快捷数据恢复案例.docx(11页珍藏版)》请在冰豆网上搜索。
大容量NTFS分区格式化为NTFS后快捷数据恢复案例
大容量NTFS分区格式化为NTFS后快捷数据恢复案例
大家好,我是abian,如果你看过我之前写的“U盘FAT系统手工恢复二进制文档碎片经典案例分析”,那么现在我们又见面了,呵呵,这次带给大家的是NTFS分区(大于200G)在格式化为NTFS后的快速手工恢复方法,在看这之前,你要有相应的NTFS文件系统的一些知识,比如至少要知道什么是MFT及MFT的重要DATARUN参数。
这次拿我的盘来给大家做小白呀,哈哈.首先大家请看我的原盘数据完好,属性如下图:
文件数量如下:
原来的MFT大小如下:
现在把这个分区快速格式化为NTFS:
格式化后数据全没有了:
此时要恢复数据一般就是用软件扫描,在没有覆盖的情况数据基本上是能恢复的,但是扫描所需要的时间一般都会在1个钟以上,拷贝数据又要一个钟左右,如何能快速的在原盘上搞好数据呢?
接下来就跟大家分享下一个快速恢复此类故障的一个思路.
首先,WINHEX打开分区,可以看到,MFT大小为256K,只有512个扇区,再跳到DBR看下MFT的开始簇数如图:
可以看到,开始簇数为:
00000C00/H,对DBR有所了解的朋友都知道,DBR的偏移位置一般都是这个,那我们假设以前的DBR如果也是这个位置的话,那么格式化后对于MFT来说只是改了他的前面512SEC,现在我们就来验证这个猜想,跳到MFT的相对512SEC,看接下来的扇区是否还是MFT记录,我们查看6291456+512=6291968号扇区,
可以看到,在MFT结束位置过后还存在MFT记录号为256的MFT项,我们再在这个扇区往上跳两个扇区,可以看到:
如上图,上一个MFT记录号为255号,再跳到6291970扇区,可以看到MFT记录号为257,
从以上三个连续的MFT号可以判断,原来MFT开始的簇位也是00000C00/H号簇,因此在格式化后MFT项只改了前面的512个扇区,后面的MFT记录项都是完好的,OK,现在我们再来看MFT项的第0号记录项,即记录MFT文件本身的MFT项作了什么改变.
可以看到MFT0号记录项的80属性如下:
从80属性可以看到,文件的虚拟簇号为从0到0000003F/H=(63,一共64个簇,(一个簇有8个扇区大小为00040000/H=262144(字节/512=512(扇区,从DATARUN信息可知:
第一个簇开始于簇号为00000C/H,一共有40/H=64个簇.
OK,有了以上信息,通过对比以前的MFT0号记录项的80属性,以前的MFT有12M,而现在只变为256K,我们不难发现,MFT0号记录项记录着MFT文件本身的一个大小及开始簇位,也就是说,原来有数据的MFT项包含了所有MFT记录项在里面,而我们格式化后的MFT只包含了系统元文件(指MFT,BOOT,LOGFILE,BITMAP等及$RECYCLE.BIN,SystemVolumeInformation文件夹及其里面文件的记录项,因此,我们大胆猜想,如果以把原来的MFT0号记录项还原回去,是不是文件就可以恢复了呢?
NOW,LET’SDOIT!
对80属性有了解的朋友知道,MFT项最重要的就是它了,而且对于MFT元文件本身来讲,只要找到MFT文件夹的一个起始簇号,文件是否有连续,文件长度就可以把MFT项的80属性还原了.
通过以上判断,我们已经可以确定,原来的MFT项跟现在的MFT项起始簇号是一样的,那么如确定文件是否连续的及它的大小呢?
我们从MFT的开始扇区6291456扇区开始,在事先不知道MFT大小的情况下,我们可以根据经验大概判断下,先搜索MFT项的最后一个记录,300G左右的分区一般MFT项不会超过100M(当然对于一般用户来说,对于那些作小文件如HTML服务器的硬盘分区就另当别论了,好,我们就跳到6291456+200000(大概100M=6491456SEC,
可以看到,在这个位置已经不再是MFT项了,那么我们往上搜索MFT文件头,这个不用我教了吧,
向上搜索FILE0的HEX值,找到第一个就停下来
很快,就找到下面这个扇区
这个就是MFT的最后一个记录项吗,不急,再来慢慢分析
往上再搜索
往上两个扇区是相邻的MFT记录项,再往上找都是连续的MFT记录号,隔一段再找,发现MFT项都是连续的,很好,到此可以总结这个位置的MFT项是连续的,那么它还有没有碎片呢,我们再从6491456SEC开始往下搜索MFT项,一直往下搜索到超过八分之一都没有再发现MFT记录项的影子了
那就不再找了,因为系统开始为MFT分配的空间最多只占分区的八分之一,何况我的分区数据还不满,
那么现在确认了MFT项的结束扇区为6316031SEC,开始扇区为6291456SEC,那么MFT所占的簇数为6316031-6291456=(24575/8=3071(FF0B/H簇,虚拟簇号为0-3070(FE0B/H,文件大小为3071*8*512=12578816(00F0BF00/H,OK,现在把这些补到MFT的80属性去吧
补完如下:
改完保存,准备收工!
卸载磁盘并再次加载,然后再用WINHEX打开分区并重新加载目录
OK,文件都出来了!
再验证下文件能否正常打开
OK,文件能正常打开,再打开资源管理器,
分区文件还是为空,这是因为只有MFT项改好了,但是其他系统元文件如BITMAP,LOGFILE等是有问题的,这种情况下除了直接用WINHEX直接COPY数据出来外,别一种比较好的方法就是用CHKDSK命令来修复原盘.
具体做法如下:
先用”CHKDSKM:
”命令检查,结果如下
再用”CHKDSKM:
/F”命令来修复
CHKDSK完成,修复分区错误,现在来打开分区看看!
OK,数据在资源管理中重现!
数据容量不变,OK!
收工!
Abian原创,尊重作者劳动成果,转载请注明出处!