如何恢复 FAT32 USB 上已删除且具有原始文件名的文件?

如何恢复 FAT32 USB 上已删除且具有原始文件名的文件?

我尝试了几种产品来恢复数据。

感谢 photorec 和 foremost,我拥有所有原始文件,但是,如果没有正确的文件名,这些图像就毫无用处。

感谢 testdisk,我获得了所有正确的文件名,但使用其取消删除选项恢复时,文件不完整且已损坏。

我如何获取正确、完整的数据和原始文件名?

我尝试过的事情:

我本来打算根据文件大小交叉引用测试磁盘名称和 photorec 文件,但大小不一致。

我研究了 testdisk 的更多高级选项,但似乎找不到任何会导致文件截断的东西。在这方面我可能还是错了。

Photorec 和 Foremost 似乎没有文件名恢复功能,而且似乎只有基于偏移量和大小方案的文件命名功能,因此它们单独无法完成这项工作。

我试图从 exif/metadata 中恢复文件名,但日期和文件名都与恢复的文件的创建时间和名称相同,这并没有什么用。

澄清:

只有从 testdisk 恢复的文件损坏了,它们似乎都是我用 photorec 成功恢复的文件大小的 80% 左右。问题是,正确的照片没有研究所需的正确文件名。

最终进展:

抱歉,大家,我可能花了太多时间尝试恢复文件,后来我发现我帮她恢复文件的女孩把文件带到了她的 IT 部门,他出于某种原因对驱动器进行了碎片整理,导致几乎所有文件都变得毫无用处,而且被覆盖了。好吧,我设法恢复了 60 个文件中的 6 个。虽然不是很糟糕,但仍然意味着需要重做很多工作。感谢您的建议。

答案1

使用 Foremost 的 audit.txt 恢复原始文件名:

File.read("audit.txt").scan(/-{4,}\n(File: .*?\n.*?)(?=-{4,})/m).flatten.map{|z| 
   f1=z.scan(/File: (.*?)\n/).flatten[0];
   f2=z.scan(/[0-9]+:\t(.*?) \t/m).flatten;
   extension=File.extname(f1);

   [
    f1,
    f2.find{|q| File.extname(q)==extension}
   ]
}.each{|k,v| 
  extension=File.extname(k);
  dirname=extension.sub(".","")
  File.rename("#{dirname}/#{v}","#{dirname}/#{k}")
}

在“audit.txt”目录中运行这个Ruby程序。

答案2

好吧,这就是使用免费恢复应用程序的局限性。为什么不尝试 EaseUS、Stellar Phoenix 或其他一些恢复套件呢?这些套件使用实际文件名完全恢复的可能性相对较高。

我不知道哪种方法更有效,但听说付费恢复应用程序更可靠、更高效。

相关内容