如何修复损坏的 FIT 文件(以及能救回什么)
FIT 文件的损坏方式都有规律可循:录制中电池耗尽、传输中途被掐断、校验失败。本文讲如何诊断损伤、修复能救回什么救不回什么,以及如何预防。
本月最佳骑行就在设备上。导出来的却是一个什么都打不开的文件——平台报错、查看器说无效、文件大小看着就不对。几乎每一个损坏的 FIT 文件都讲着三个故事之一,而每个故事的结局各不相同。
损坏到底是什么
FIT 文件是顺序写入的:先是文件头,然后是按序排列的定义消息和数据消息,校验和放在最末尾。格式的严格是有意为之——设备或平台只要读一下末尾的 CRC 就能校验整个文件。另一面是:只要文件尾部受到任何干扰,校验和就会失败,严格的读取器会拒绝整个文件——哪怕损坏点之前 95% 的录制完好无损。
这就是大多数「损坏」FIT 文件的实质:不是满文件垃圾,而是结尾背叛了开头的文件。修复就是重建结尾的艺术。
三个故事,以及它们的结局
故事一:录制中电池耗尽
断电时设备还在写记录。手表上的文件戛然而止——没有收圈、没有 session、没有校验和。断电之前的字节都是健康的。
**结局:大部分可恢复。**手表存下了它存下的东西;修复会在现存所有内容周围重建文件头和校验和。从未写入的部分——断电前的最后片刻,有时是最后一圈的汇总——是真的没了。世上没有任何工具能恢复设备从未保存的采样,谁宣称能,谁就是在骗你。
**用任何工具之前的第一步:**检查设备。很多设备在重启时会补完一个可恢复的文件,重新导出一份可能就是完好的。
故事二:传输被掐断
录制本身没问题;出问题的是副本。数据线拔早了一瞬、蓝牙同步被打断、云盘只同步了半个文件。设备上的原件完好无损——你电脑上的副本是那个缺了胳膊的。
**结局:重新导出即可恢复。**这是最皆大欢喜的情况:回到设备(或平台的原件存档)再导出一次。只有当设备此后已覆盖原件时才需要修复——那种情况下,修复工具会在已传过来的部分周围重建文件尾。
故事三:字节在存储里坏了
老化的闪存、一个坏扇区、别的工具重新保存时写到一半崩溃。文件的中段损坏了,而不只是结尾。这类情况最少见,也是损伤报告最值得玩味的一类。
**结局:部分恢复,如实上报。**修复逐条消息走一遍文件。到第一堵垃圾墙之前所有可读的内容都会被恢复;一个好的工具会告诉你墙的确切位置,而不是假装文件完整过关。你拿回损坏点之前的骑行,剩下的部分,它如实告诉你。
执行修复
FIT 修复工具在你的浏览器里完成这项工作——损坏的文件永远不会离开你的设备,这一点在这里和在任何地方一样重要:一个损坏的文件里仍然装着你去过的所有地方。
流程是:把文件拖进去,读诊断(找到了什么、重建了什么、损伤在哪),下载修复后的副本。原文件永远不会被改动。然后:
- 在 FIT 查看器里打开结果,确认轨迹和时间正常。
- 把它作为新活动上传;如果它与损坏原件的条目重复,先删掉旧条目(平台为什么会悄悄丢弃近似重复的活动)。
- 如果接下来要做的是分析而不是重新上传,可以继续 FIT 转 GPX,或与骑行的另一半合并(合并被拆分的活动)。
修复做不到什么
诚实是本站唯一的政策,所以如实说:修复工具是在幸存数据周围重建结构——文件头、消息分帧、校验和。它不能凭空造数据。零字节的文件无可重建。在山顶死掉的录制里就没有山顶。修复承诺的是损伤保持在实际损伤的大小,不多出一条记录。
预防胜过修复
- **骑完尽快同步。**在设备存储里放上几个星期的文件,要经历设备里每一次重启、崩溃和存储抖动。
- **正确弹出。**等 USB 传输结束的那两秒钟,是能买到的最便宜的数据保险。
- 长时段给电池留余量;很多设备在电量掉到百分之几以下时,写出的文件越来越脆。
- **原件归档一次。**把 FIT 文件导出到一个你会备份的文件夹,把所有平台副本——包括修复过的——都当作可丢弃的。(为什么原件重要)
一个赛季的 FIT 文件,就是你一段人生的位置和心跳。请以相应的方式对待原件。
常见问题
三种原因覆盖了大多数情况:设备还在写入时断电、传到电脑的传输中途被掐断、或者存储本身出了位翻转。因为 FIT 把校验和放在文件的最末尾,其中任何一种都能让整个文件读不出来——哪怕大部分数据完好无损。