我使用 ddrescue 和 Photorec 帮助一位朋友从 Windows 10 计算机上的即将失效的 1TB Seagate HD 中恢复文件。
我使用 ddrescue 创建了一个 img 文件,并针对该 img 文件运行 Photorec。我将 Photrec 中恢复的文件保存到 Linux 系统上的驱动器中。
Krusader 报告恢复的文件总大小为:
217.7 GiB (233,703,139,398)
1,183,509 files, 2,403 sub-folders
有了这些信息,我让我的朋友订购了一个大小合适的驱动器来将文件传回。我得到了一个 500GB Sandisk SSD。
因此,我使用 rsync 将这些文件复制到 SSD 上,但令我惊讶的是,我很快就耗尽了空间。我删除了很多大文件,比如image_remaining.dd
本身就有 142.5GB 的文件,但空间仍然不够。
我花了一段时间才弄清楚发生了什么,但是在使用 qdirstat 查看之后,我发现有大量的已分配空间。
让恢复的文件适合 SSD 的最佳策略是什么?有可能吗?
- Windows 驱动器:
ntfs
- Linux 驱动器:
ext4
- 固态硬盘驱动器:
exfat
对于文件恢复,我建议使用依赖于文件系统的文件恢复工具,而不是像 PhotoRec 这样的雕刻机或原始扫描仪。DMDE 是一个可以解析或分析并重建虚拟文件系统的工具的示例。
雕刻机或原始扫描仪:
基于文件系统的工具:
正如我在评论中已经提到的,检查复制到的驱动器的 exFAT 簇大小,即使是最小的文件,也需要分配整个簇。因此,即使 1.000.000 个 1 KB 文件(约 1 GB)也意味着 1.000.000 * 128K 将分配给 128K 簇(约 130 GB)。
感谢@JoepvanSteen 的提示,我能够通过将驱动器格式化为 NTFS 来轻松完成所有操作。我能够将所有大文件添加回来,包括单个 142.5GB 文件。
我不熟悉 exfat 的大簇大小,并且只使用驱动器上的文件系统。我将来会理解这个限制。