WINHEX修复MFT损坏,与大家分享!

  [复制链接]

该用户从未签到

0

主题

3

回帖

29

积分

[INTOHARD]工兵

Rank: 1

积分
29
发表于 2009-7-30 10:24:44 | 显示全部楼层 |阅读模式
前天自己的硬盘数据丢失了,在阅读了论坛相关文章后,努力之下已全数找回,作为回馈,现将此经历与大家分享!

请注意:如果你也遇到了同样的问题,并且希望通过这篇文章来解决它,请你在阅读完全文后再决定是否开始修复,勿要在未通读全文的情况下实际进行任何文中提到的步骤。

        几天前一次开机后KV2009自动杀毒,3分钟后导致机子死机,热启无效。冷启后检测DMI POOL,原本中文的操作系统选单变成了纯英文的,而且系统无法启动了。之后使用光盘加载老毛桃PE,发现原先的盘符仅剩下E,F,G(硬盘250G,共5个分区),C盘与D盘消失了。初认为分区表损坏,使用DISKGEN修复后,重启,居然PE也无法进入了,一直黑屏,然后键盘失灵,只能冷启。(这里我很想不通,难道是主板硬件问题,硬盘的问题也是由此导致?高手赐教!)无奈,转移硬盘到一朋友机器上,启动系统,C,D两盘是出现了,但无法打开,提示“文件或目录损坏且无法打开”这样的错误信息。CHKDSK这样的命令也无法使用,在一句简短的错误提示后便终止了运行。错误提示大概是“无法确定卷状态”之类的。(有人说CHKDSK是个对数据修复来说极度危险的工具,不知是否正确?高手赐教!)
        偶然机遇让我知道NTFS还有个MFT这样的东西存在(至于详细资料还请GOOGLE),或许是它损坏的缘故,也就摸索着去修复MFT。

此处以修复我的硬盘上第二个分区为例,即D盘的修复。
修复工具:winhex15.3 SR-1
首先通过winhex打开我的硬盘(这里是HD0),然后打开第二个分区,即分区2,打开的时候会提示一个\$MFT无法在offset某某某处无法找到的错误。确定后分区2便打开了。现在通过分区2的引导扇区(模板)找到MFT的开始位置,单位为簇(详细资料请GOOGLE),通过WINHEX的跳转功能跳至该簇对应的偏移处(如果细心的话,会发现此处的偏移正是打开分区2时提示的offset,当然提示中还提到另外一个offset,它是MFTmirr对应的偏移,MFTMirr是MFT的一个备份,它们2个的数据应该相同,注意MFTMirr的大小是4KB,由于MFT中单个记录的大小是1KB,所以MFTMirr只记录了开始的4个记录)。正常情况下开始4个字节应该是NTFS,如果是MFT损坏的话,你可能发现NTFS这几个字符与该扇区的初始位置有些偏移,例如我这里的情况,前2个记录偏移了24个字节,在后面的2个记录又再偏移了几个字节。校正这些偏移后就能是MFT恢复正常了。由于4个错误记录后面的记录都是好的,修复的时候可以参考后面的一些记录。每个记录的格式也可以通过WINHEX菜单[查看]-[模板管理器]中的NTFS FILE RECORD查看(我发现这个模板真是很不错!)。
        修复完成后保存修改,然后重新打开分区2,如果没出意外的话,WINHEX就能正确的读取到目录和文件的信息了。这个时候便可以通过在上面的文件夹上右键,选择[恢复/复制…]菜单恢复你的目录到一个新的地方。(在我恢复第一个分区的时候,尽管MFT已经手动恢复好,但是分区还是无法打开,XP还需要运行CHKDSK进行一遍修复后才可以打开,修复是否对数据有无损害我且不说,就是修复完成后也会在盘里出现一大堆的用于存放还原后文件的目录,在这里目录里完全找不到原先目录层次的样子。如果能第一时间把数据先备份出来,那就应该第一时间备份出来,所以在恢复第二个分区时我便使用WINHEX直接备份数据,依照恢复的数据来看,我还是很满意的)。
        很抱歉这里没有使用到一张图片,让你一目了然。这是因为此文章是写于分区恢复之后,过程中的一些截图已无法找到了,不过我会在附件中贴上修改前MFT的前4个字节与修改完成后MFT中的前4个字节(当时也是为了安全起见,在修改前备份了一下)。


多谢 #4 xulemeng  指出的一处笔误。

修复MFT损坏.rar

8.84 KB, 下载次数: 1909, 下载积分: 金子 -2

该用户从未签到

29

主题

479

回帖

2万

积分

[INTOHARD]工兵

黑并快乐着

Rank: 1

积分
20456
QQ
发表于 2009-7-30 10:31:26 | 显示全部楼层
LZ的自学能力挺强啊.

收下,帮顶,走人...

谢谢分享.

该用户从未签到

15

主题

674

回帖

9284

积分

[INTOHARD]团长

浸淫

Rank: 8Rank: 8

积分
9284
发表于 2009-7-30 10:35:53 | 显示全部楼层
读了一下,很不错!

学习了,谢谢楼主!!!!!!!

该用户从未签到

15

主题

674

回帖

9284

积分

[INTOHARD]团长

浸淫

Rank: 8Rank: 8

积分
9284
发表于 2009-7-30 10:47:14 | 显示全部楼层
“正常情况下开始4个字节应该是NTFS,如果是MFT损坏的话,你可能发现NTFS这几个字符与该扇区的初始位置有些偏移。。。。。。。。”


楼主,那4个字节似乎是FILE,呵。

该用户从未签到

6

主题

118

回帖

571

积分

[INTOHARD]连长

Rank: 4

积分
571
QQ
发表于 2009-7-30 11:29:42 | 显示全部楼层
问个问题 我看着出问题那个 是整体往下偏移了24个字节
也就是说 24个字节以后的全正常了
在这里我想问一下 怎样能快速的将下面的数据拉上来
楼主是 将MFTMir 的内容复制过来的吗
有没有更快的方法  比如说直接删除掉前面的24个字节错误信息  
本人是新手  自学

该用户从未签到

0

主题

3

回帖

29

积分

[INTOHARD]工兵

Rank: 1

积分
29
 楼主| 发表于 2009-7-30 11:49:31 | 显示全部楼层
4# xulemeng


谢谢你的指正,确实如你所说,应该是FILE

该用户从未签到

0

主题

3

回帖

29

积分

[INTOHARD]工兵

Rank: 1

积分
29
 楼主| 发表于 2009-7-30 11:57:00 | 显示全部楼层
5# 若成风


现在我们编辑的是物理硬盘上的数据,它有别于编辑一个文件。当编辑一个文件的时候,确实可以像你说的那样删除或插入一段数据,但是硬盘编辑的话我感觉是不可行的。要将一段数据提前,我的办法是复制那段数据,然后在指定的位置粘贴,这种方式也很快的呀。

想将MFT的数据提前一些字节,也不用跑到MFTMIR那边去,只要复制MFT中的数据就好了。

该用户从未签到

18

主题

1353

回帖

1万

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
13472
QQ
发表于 2009-7-30 12:00:24 | 显示全部楼层
mft偏移比較常見,目錄損壞且無法打開一般是mft偏移或損壞引起,dbr損壞也會產生此種現象.

该用户从未签到

0

主题

419

回帖

219

积分

[INTOHARD]排长

Rank: 3Rank: 3

积分
219
QQ
发表于 2009-7-30 12:47:04 | 显示全部楼层
楼上的说的对

该用户从未签到

0

主题

16

回帖

89

积分

[INTOHARD]班长

Rank: 2

积分
89
发表于 2009-7-30 13:14:58 | 显示全部楼层
就是改完还得验证,MTF80运行,包括BO属性,是否一致。不然也打不开。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表