对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx

上传人:b****5 文档编号:18368843 上传时间:2022-12-15 格式:DOCX 页数:15 大小:2.24MB
下载 相关 举报
对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx_第1页
第1页 / 共15页
对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx_第2页
第2页 / 共15页
对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx_第3页
第3页 / 共15页
对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx_第4页
第4页 / 共15页
对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx

《对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

对 MFT偏移 的修正 亲历一次数据修复Word文档下载推荐.docx

2.如果从数据修复的角度看,现在只剩下C分区了。

头疼…PTDD,DISKGEN,还有用过一些磁盘错误扫描,都检查不出什么错误。

(这里明显我是病急乱投医…)

本着不修复好不罢休的精神吧,虽然C分区的数据真的没有了也不至于损失多惨重,可恰好我可以在另一个硬盘linux里的虚拟机里的XP上网,所以也不需要急用电脑而不得不重装系统。

(双系统的好处之一o(∩_∩)o)之后是上网找专业论坛,搜索期刊。

顺便做下广告,我觉得中国硬盘基地技术论坛不错。

我也是第一次从这里知道可以用winhex修复数据。

并且也通过搜索得知我的故障可能是MFT有错。

在里面看过一句话,“你要是不会手动16进制写mft,不知道他的规则,计算方式。

就别费劲了,你从现在学,学3个月有可能能学会”。

天啊,估计我没这耐性,更主要是我还有不少事情做…不过我试着去了解吧,趁机能懂点东西也不错。

于是,从一开始不懂mft,然后慢慢的去了解ntfs的文件系统…其实一共也不需花多少时间,中间快20天都忙着考试和找工。

这里还有个小插曲,因为看过这方面的书,那时候印象较深,还去笔试面试了一个数据修复公司,吹吹自己会用winhex和其他修复软件,通过了。

说1月中旬给个回复去不去,去的话开始实习了,不过待遇感觉太低所以不想了的。

毕竟生活压力吧,还有综合考虑兴趣与待遇,还有发展。

说点硬盘ntfs文件系统的,或许很多人也听过了。

之前我没怎么了解,后来借此机会也趁机学学了。

硬盘由引导扇区(BootSector)与各分区组成。

不超过四个主分区,原因是主引导记录(MBR)里的分区表里只有64字节,一共只可描述4个分区表项,从winhex里看,描述一个分区表项用16字节。

有人可以分七八个分区是因为用到扩展分区,现在我们的普遍分法是一个主分区+一个扩展分区,然后扩展分区又是由相应的EBR(即扩展MBR)里的分区表来描述。

一个以C盘为主分区,DEF为扩展分区的硬盘数据结构如下所示:

关于主引导记录MBR。

一般都占用63个扇区,即从第0-62扇区(这里有个例外,虚拟机里我看过只有56个扇区),而实际有写入内容的一般只有一个扇区,及常说的0柱面0磁道1扇区。

1个扇区512字节,MBR其实分三部分,1.引导代码446节2.分区表64字节3.结束标记55AA,及2个字节。

如果,两蓝色竖线把第一个扇区划分为三部分,及上述的MBR三部分。

两蓝竖线间为分区表。

每16字节为一个分区表项,两个紧挨着的数字为一个字节。

第一个分区中:

第一个红色框内80代表活动分区。

绿色框010100代表磁头号、扇区号、柱面号。

第一个蓝色框07代表NTFS分区。

紧接着三条绿横线,分别是本分区结束磁头号、扇区号、柱面号,然后是本分区之前已用的扇区数(3F000000,必须倒过来,即0000003F,转为10进制63,即MBR要占用63扇区,注意MBR是不属于磁盘第一个分区!

),最后是本分区的总扇区数(E5588101,倒过来,018158E5,即是25254117个扇区,25254117*512/1024/1024/1024=12.04G)

第二个分区:

第二个红色框00表示非活动区。

绿色框00C1FF代表磁头号、扇区号、柱面号。

第二个蓝色框0F代表扩展分区。

三条绿线所表达的也与上面相同。

(注意这里的第二个分区代表扩展分区,切勿与通常的D盘相混淆!

因无其他主分区,所以第三、第四个分区表项为0。

最后以55AA结尾,代表MBR结束。

到这里,给道题目,如何知道D盘的EBR在哪里?

很简单,从第一个分区表项得知,第一个分区有25254117个扇区,而在第一个分区前的MBR有63个扇区,因为整个硬盘扇区数从0记起,所以MBR扇区数+第一个分区扇区数=63+25254117=25254180,即通过转到25254180扇区即可。

这里就是D盘前面的EBR了。

对红线进行分析(红线前面446个字节,因为是扩展分区,不需要启动代码,用0填充):

00:

非活动分区

01C1FF起始磁头号、扇区号、柱面号

07:

NTFS分区

FEFFFF:

本分区结束磁头号、扇区号、柱面号。

其实可以发现,实际不需要理会这一项,所有分区表项都用这三个字节来表示本分区结束磁头、扇区和柱面的。

3F000000:

如前面分析MBR,倒过来是0000003F,即63个扇区。

8D0D2303:

倒过来是03230D8D,转为10进制是52628877,即本分区有52628877扇区,25.09G。

为计算第二个EBR在哪里只需将前面的“MBR扇区数+第一个分区扇区数”+“EBR扇区数+第二个分区扇区数”

………

略去对后面几个分区的计算。

刚刚是对MBR,EBR(EBR实际与MBR类似,只是少了启动代码)的分析,现在对具体分区分析(以修复好的C盘为例)。

通过翻阅资料得知,NTFS文件系统的结构是

如何进入具体分区呢?

选择winhex里的“工具—打开磁盘”,选中相应物理磁盘即可打开。

我的硬盘(修复好后)显示如下:

双击想要看的分区即可,如partition1,进入…

会看到很多此分区的文件,甚至包括一些即使你在文件夹选项里勾选“显示隐藏文件”都无法看到的文件。

比如以$开头的文件。

每个NTFS分区中都有这种文件,如下:

注意:

MFT里的11到15号记录是为以后的元数据文件保留的。

以上是的截图来自网上,补充下$Boot、$MFT、$MFTMirr的一些资料,因为此次修复与这几个有关。

$Boot:

NTFS的卷启动扇区,也叫分区启动扇区,卷启动记录等。

虽叫扇区,其实包含了16个磁盘扇区(8KB),即你看到的$Boot文件大小是8KB。

在winhex里双击相应的分区后,进去看到的该分区的第一个扇区就是$Boot所占的第一个分区。

包含了BIOS参数块(BIOSParameterBloce,即BPB)和卷启动代码。

BPB里包含此分区基本信息,如分区格式,大小等。

至于卷启动代码,是表示如何装载WINNT,2000等系统的NTLDR,把控制权交给它,得以继续装载系统其他部分。

对于$Boot里的BPB用以下的截图说明下,彩色部分就是BPB,对于$MFT文件,就是从BPB里定位的!

这句话很重要。

而我自己C盘的情况是

对比这里的说明:

图中第一条蓝色粗线是表示$MFT第一簇簇号,00000C0000000000,倒过来是00000000000C0000,即16进制C0000转为10进制是786432,表示MFT在第786432簇(注意这里表示的是相对于本分区的簇数,而不是整个硬盘)。

接下来,转去786432簇,看看是不是

通过GoToSector到786432,与单击$MFT去到的扇区都是一样的。

说明定位没错。

接下来看下$MFT吧…

$MFT:

(MasterFileTable)文件。

主文件列表。

此文件是NTFS分区中最重要的文件,记录了分区中所有文件(包括$MFT自身)的基本信息。

通过$MFT就可以访问分区中的所有文件和系统数据。

$MFT由多个MFT记录单元组成,每一个文件的描述占用一到多个(一个不够的情况下)$MFT记录单元。

其中前十二个记录单元中记录着这里的十二个系统文件的信息。

每个记录单元记录着文件的建立时间、在分区中的位置、长度、属性、文件名等信息。

MFT中的第一个记录就是$MFT自身,编号为0。

每个文件记录占用1KB,即两个扇区。

识别一项MFT的起始很简单,看开头的4个字节是否46494C45,其相应的ASCII码是FILE。

现在就看MFT怎样记录其本身$MFT吧。

同理,MFT的镜像$MFTMirr用同样的方法也可以计算得出和定位,$MFTMirr是对MFT里的重要文件备份,只有4K,即备份了4个文件记录单元而已。

其实说了上面这些,还没涉及到故障的解决,有人会说,明明可以在winhex里选中$MFT就定位了,为何这般复杂,实际上,我此次故障,就是遇到MFT偏移了!

说了前面这么多,只是为NTFS文件系统结构做个很大概的描述,实际上真的很复杂。

在故障处理前,我双击C盘出现了这种情况:

看来问题跟这个MFT是有些关系了的…进去后,傻眼了,没有其他的文件,只有以下这几个,郁闷。

方法一:

用前面的方法,从分区引导扇区计算出MFT位置。

所以,证明前面说的不算是废话。

方法二:

留意提示,看到了offsetC0000000和offset18158E000字样,那就过去看看吧。

发现C0000000里,不是一项文件记录的起始,文件记录的其实,一定是“46494C45”开头的,仔细找下,很明显偏移两行了!

这就是故障所在。

MFT里的第一项文件记录正是MFT本身,而现在本身位置都记录错了,如何定位其余文件呢?

所以,此分区下的所有文件不可见!

接下来尝试修复了。

至于另外一个18158E000,其实可以猜测到是$MFTMirr的…

其实我曾经想过找相关MFT的修复软件试下,但始终觉得会否因软件“误判”,反而搞乱了。

毕竟对于数据修复,一般是“只需一次成功,不许多次失败的”。

还是手动吧…

其实到这里我已经找到了故障所在,和处理方法了,只是即使想手动也有点下不了手…期间在学校某个地方做过一次实验,也是一件坏事…呃,把它的某个分区,用winhex写0了…写0了是什么概念应该猜到吧。

不过也自私庆幸幸好不是在自己的硬盘这样操作!

这款软件是有一定危险性的。

拿修复$MFTMirr举例吧…$MFT的我忘了截图。

找到18158E000的那个扇区里(可以看到偏移了三行)…选中46494C45开头的一段数据,多大好呢,我是一直选到非0的末尾,后面全0的就不选了。

原因:

记录一个文件其实有时候不需要用到1KB的。

粘贴到正确位置…

就这样,手工的找,手工的修复,看到就修复,反正间隔1KB就一个记录…所幸不是很多,10来个而已。

保存退出,重启…以为应该好了,默默的等待一种喜悦。

结果启动不了。

没办法,只好到另一个硬盘的linux里进去看,久违的那个分区是出现了,可是挂载不了,如图提示:

有点郁闷,现在只好把硬盘挂到室友的XP下去chkdsk下了,懒了,不想再研究了。

结果,在室友那里chkdsk修复后,把硬盘挂回自己电脑,启动,见到了久违的XP和久违的桌面!

我成功了!

也许对于牛人来说,这不算什么,但是毕竟对于我,因为是通过自己努力去尝试的,所以,有点成就感吧。

写到这里基本完了...不过仍然有我不明白的地方,文中可能有些表述不当,还请指正下的,比较仅仅一个文件系统,还只是NTFS,都够研究很长时间了。

我现在存在的疑问是:

1.为什么有两个分区F和G,是NTFS的,在linux下可以是识别并正常读取里面的文件,但是在windowsXP里不行。

这是我至今还未解决的疑问。

2.在我用winhex修复并重启后,虽然在XP和linux下读取不了,但是在winhex里是可以看到完整的文件的,并且没有found.000这个文件夹,如果我此时导出文件,相信文件位置不会出现错乱。

但是用chkdsk扫描修复后,为什么多出这么多零碎的文件放进found.000里了...

此次事件的总结:

1.一开始尝试修复时,重建MBR,重建分区表,都是很傻的做法。

当时病急乱投医...当硬盘出现误操作而又想尽力恢复数据时,切忌再往里头写数据,最好是先把硬盘拆下来,再到网上,或相关书本查询。

2.硬盘数据修复,一般是只许一次成功,不许多次失败。

所以,在方案的取舍,切忌一个个的试,最好有其他硬件模拟试验。

我以前曾经误操作而用一个XP镜像覆盖全盘,后来用移动硬盘试过可以用PTDD重建分区表,做过实验了,也就有大的把握确定成功率。

3.任何事情,只要投入时间,愿意琢磨下,即使不成功,也多少有点回报的。

像我在某个网站看到的那句话,说“你要是不会手动16进制写mft,不知道他的规则,计算方式。

就别费劲了,你从现在学,学3个月有可能能学会”看到后确实有点打击,不过其实现在我还没懂多少,至少能取回数据了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1