原创 手工恢复NTFS卷中误删除的文件(图文详解)

2009-7-8 12:54 1628 3 3 分类: 工程师职场

对于数据恢复来说,虽然文件删除后所有的数据运行都能够在残留的MFT中找到,但是数据运行的个数越少即文件碎片越少或者没有碎片,文件被覆盖的可能性就越小,数据恢复的概率也就越高。以下是手工恢复NTFS卷中误删除文件的过程。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


1.      需要恢复的文件


NTFS卷中一个文件被删除时,其MFT并没有被删除,前面已经介绍过,这里以恢复一个NTFS卷中一删除的文件为例,假设在用户的NTFSD盘中有一个名为photo的目录,该目录下有一个名为“penquan.jpg”的文件,如图5-1所示。假设用户不小心将此文件删除。


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />



5-1 NTFS卷中将被删除的文件


2.      找到要恢复文件的MFT


首先通过WinHex选择文件所在的逻辑磁盘将其打开,如图5-2所示。




5-2 选择磁盘分区


打开磁盘的分区后找到该分区的MFT,如图5-3所示。



点击看大图

5-3 转到MFT的起始位置


 


3.      恢复数据


找到分区的$MFT后,通过文件名查找文件的MFT,如图5-4所示。



点击看大图

5-4 查找文件的MFT


查找到的结果如图5-5所示。



点击看大图

5-5 已删除文件的MFT


先来看看MFT头,偏移15.16H0表示该文件已经被删除了,系统根据这个标志来决定建立新文件时是否能够覆盖这个MFT而创建自己的MFT10H属性就不分析了,除非希望恢复的文件所有的时间属性和以前一样,用户对此要求一般没有那么高,所以跳过10H属性不分析。30H属性这里也不分析。关键是要分析80H属性,即数据属性,在该属性所有的描述中,对恢复数据最有用的信息有两个,一个是偏移<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />00C12DD160H开始的8个字节的属性是该文件的实际大小506E,单位是字节。还有一个地方是偏移00C12DD170H开始的数据运行位置描述,这里为十六进制数41H 06H 83H 0BH 90H 00H。其中41H定义了其后面有1个字节表示该文件的数据运行所占的簇的个数,4个字节表示该数据运行的起始逻辑簇号,这里定义了其运行占用了06个簇,其起始逻辑簇号为900B83H。知道了起始簇号和数据运行的真实大小,甚至知道运行所占的簇的个数,要恢复文件数据就很容易了。


WinHex中选择位置”|“转换到扇区命令,打开对话框,在文本框中输入9440131900B83H转换后的十进制数),然后单击确定,即可找到数据的起始位置,其中FFH DBH.jpg照片的文件头标志。在找到的数据起始位置右击,选择选块开始命令。如图5-6所示。



点击看大图

5-6 文件的起始位置


 


继续在WinHex中选择位置”|“转换偏移量命令,打开转到偏移量对话框输入20590506EH转换成十进制数)如图5-7所示。




5-7 转换偏移量


 


单击确定后会跳到文件的结尾位置,单击右键选择选块结尾命令,如图5-8所示,即可完全的选择到用户要恢复的文件数据。



点击看大图

5-8 找到文件的结束位置


 


选中所有要恢复的数据内容后,在选中的任意块上右击,选择编辑”|“复制选块”|“进入新文件命令如图5-9所示。



点击看大图

5-9 复制所有数据


 


然后将文件命名并保存到指定的路径,如图5-10所示。



点击看大图

5-10 保存文件


 


保存成功后,关闭WinHex,按照刚才保存的路径打开文件,数据恢复成功,图5-11是恢复后的文件。



点击看大图

5-11 文件恢复成功


本文出自 “yxlzyyz” 博客,请务必保留此出处http://508239.blog.51cto.com/498239/158308

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /4 下一条