xxx.part.met文件损坏/丢失后的应对

来源:岁月联盟 编辑:zhu 时间:2008-06-23
xxx.part.met文件损坏/丢失后的应对内容简介:引用补充一点,大家要认识到downloads.bak文件的重要性,这个文件是downloads.txt的自动备份文件,它和downloads.txt一起位于eMule的根目录下,内容是你当前下载任务中所有文件的ed2k链接(包括下载中的,暂停的

引用
补充一点,大家要认识到“downloads.bak”文件的重要性,这个文件是“downloads.txt”的自动备份文件,它和“downloads.txt”一起位于eMule的根目录下,内容是你当前下载任务中所有文件的ed2k链接(包括下载中的,暂停的,停止的),详情如下:

引用
Date: 2008-1-23 0:19:05
Directory: d:/Program Files/eMule/Temp

Part file eD2K link
--------------------------------------------------------------------------------
004.part ed2k://|file|James%20Newton%20Howard%20-%20FRENCH%20KISS%20+%20ONE%20FINE%20DAY%20-%20promo%20score%20-%20by%20Rexor.rar|123377620|FA76D217DF01CAE9CEE8FF8DECF2247D|/
005.part ed2k://|file|[%E5%90%88%E9%87%91%E8%A3%85%E5%A4%87].MGSDISK1.iso|617168896|0BD0D7A30ACB47DD51000439FD98B808|/
006.part ed2k://|file|[%E5%90%88%E9%87%91%E8%A3%85%E5%A4%87].MGSDISK2.iso|451469312|8E293A4A629355208E2FF4EEFB452F95|/
.............

可以看到这个文件对于我们找回损坏/丢失的part.met文件对应的原文件ed2k链接是非常重要的。所以当你发现part.met文件损坏/丢失,要做的第一件事就是备份“downloads.bak”,因为你一旦关闭eMule,“downloads.bak”文件就会按照“downloads.txt”的内容自动备份,而这个时候“downloads.txt”中已经没有你损坏/丢失的part.met文件的ed2k链接信息了。

嗯,先说说TEMP文件夹吧。

TEMP文件夹是eMule的下载缓存文件夹,所有添加的下载文件在完成之前都会储存在该文件夹(完成后移至默认的“Incoming”文件夹或者指定位置)。目录下文件类型包括:

xxx.part:这是未完成下载资源的临时文件,一般情况下大小等于你获得的区块大小的总和,如果你获得了全部的区块那么就是源文件大小。注意:P2P下载的区块性往往是先获得一个区块,然后再填满这个区块,所以即使你获得了全部区块也不意味着你下载了许多(尚未填满)。当然如果你在高级设置中选用了“稀疏文件”,那么xxx.part文件的大小就是你真实下载的文件大小。

xxx.part.met:每个xxx.part文件都对应一个和它同名的xxx.part.met文件。主要用来定义和本文件下载相关的信息,另外还负责检查每个下载到 9 MB 部分的错误。所有和xxx.part相关的信息都存放在xxx.part.met文件当中,包括文件名、Hush值、源文件大小、区块信息等等。

xxx.part.met.bak:是和它同名的xxx.part.met文件的备份文件。

一般来说下载文件都是会以相同文件名称的xxx.part,xxx.part.met,xxx.part.met.bak一组三个文件存在的。以他们的作用来看,xxx.part和xxx.part.met是必需的,缺少任意一个将导致下载不能继续。

实际情况中,eMule的非正常关闭(死机、断电、程序错误退出等等)以及未开启met/dat文件的安全写入往往会导致xxx.part.met和xxx.part.met.bak文件的错误或者丢失,很少出现xxx.part错误丢失的情况。

当你发现了警告信息:无效的 part.met 文件版本! 或者 一个下载状态为 "已损坏"时,应当马上意识到问题的严重性,记录下错误或者丢失文件的名称(也就是xxx的数值),关闭eMule避免继续写入或者新建任务,同时停止向eMule所在的硬盘分区写入数据。然后按照以下步骤解决:(步骤代码1-A代表第1条的第A小条)

1> xxx.part.met,xxx.part.met.bak 文件丢失。

缺少xxx.part.met意味着这个下载彻底无法继续了。请使用反删除/恢复软件尝试找回这两个文件(这就是为什么要停止继续向eMule所在的硬盘分区写入数据的原因,已得到更大的恢复几率)。具体分以下几种情况:

A> 找回xxx.part.met,记事本查看为一堆乱码,能够看到部分文件名称(往往是英文),那么xxx.part.met极有可能还是完好的。再用Partview软件(本文最后提供下载)查看该文件,能够读出就没问题了,打开eMule继续即可。

B> 找回xxx.part.met.bak,记事本查看情况同1-A。因为xxx.part.met.bak是xxx.part.met的备份文件,那么去掉“.bak”,替换原有xxx.part.met文件按照1-A处理即可。

C> 找回xxx.part.met,xxx.part.met.bak,记事本查看两文件均为空白,或者全都是占位符,表示这两个文件已经损坏,没有用处了,解决方法同3。

D> 无法找回这两个文件,解决方法同3。

2> xxx.part.met文件损坏,xxx.part.met.bak文件正常。

情况及解决方法同1-B。

3> 能找回xxx.part.met,xxx.part.met.bak的情况非常少,大部分时候这两个文件都完全损坏了。因为xxx.part下载的内容还在,只不过缺少了xxx.part.met文件eMule无法识别而已。这个时候我们需要重建xxx.part.met文件以匹配xxx.part。

A> 先要确认这个xxx.part文件的身份。如果你还能记得住当然最好了,不过我想记不住的还是占多数^^。有两个方法确认xxx.part的文件名。一个是查看eMule根目录下的"downloads.txt"文件,它记录了当前eMule的下载任务下每一个xxx.part的Hush值。但是因为基本上重起eMule后才发现的xxx.part.met错误,这个时候downloads.txt文件已经被重写,找不到报错的xxx.part.met文件了,除非你能够做到每次eMule非正常关闭后都备份downloads.txt,不然就需要另一种方法:用记事本打开xxx.part文件。几乎所有类型的文件都会在文件头纪录一些相关信息,而这些信息记事本是可以看得到的,这样就能知道这个xxx.part文件是什么了。当然,如果不幸你还没有下载文件头(尤其是没有勾选“优先下载预览需要的文件块”的时候)那么你就无法得知这个xxx.part是什么文件,剩下的就只能靠运气了。

B> 确认了xxx.part文件的身份后,便可以开始进行修复工作了。先说在前面,如果错误的文件下载完成度不高,建议不要费事去修复了,反正已经知道是什么文件,重新下载即可,而且下面的修复方法更适合完成度高的错误下载。

 好了,先准备修复软件,MetFileRegenerator v3.0.16,这个软件运行需要Java语言环境,所以需要安装Java Runtime Environment(JRE)。(下载在本文最后)都安装好后,运行mfr3.jar打开MetFileRegenerator,如图:


IPB Image

选择“还原”,然后指定eMule的TEMP文件夹位置,选择需要修复的xxx.part文件,进入下面这个页面后无需改动,直接下一步:

IPB Image

当这个出错的xxx.part有一定的完成度后,MetFileRegenerator便可以在known.met文件中找到对应的met信息:

IPB Image

如果能看到这一步就表示成功了,然后MetFileRegenerator会生成新的xxx.part.met文件,打开eMule继续即可。如果无法找到对应的文件信息,便会显示如下:

IPB Image

这个时候我们就需要帮助MetFileRegenerator寻找对应的文件信息。方法是重新下载这个文件,注意必须是精确的原文件(同样的Hush值)。而下载的多少在于新的xxx.part.met是否包含完整的区块(chunk)或者碎屑(crumb)信息。我们可以用MetFileRegenerator来查看新的xxx.part.met,选择"检视/编辑":

IPB Image

当“区块切细段”和“碎屑切细段”中任意一个显示为“目前”即可,一般来说完整的区块信息比较容易达到,而且不需要下载很多的数据。

IPB Image

这个时候这个我们新建的xxx.part.met就符合要求了,重新“还原”需要修复的xxx.part文件即可。

这就是为什么我建议下载完成度不高的错误xxx.part不如重新下载的原因。其实其他几个常见的met修复软件,如MetMedic和EdonkyDoctor也都是利用不同的方法获取完整的文件信息来重建xxx.part.met,我个人觉得MetFileRegenerator比较方便简单,而且完成度高的话无需重建xxx.part.met也可以直接修复xxx.part。

相关软件下载:

Windows下绿色版的 MetFileRegenerator:

去MetFileRegenerator的官网直接下载,有各个操作系统的,当然都是安装版:
http://www.bigwillystyle42.com/mfr/

Windows下的 Java Runtime Environment(JRE)安装程序:

官网:http://www.java.com/zh_CN/download/manual.jsp?locale=zh_CN&host=www.java.com:80