我已将一些文件(每个文件大小在 20 到 200 MiB 之间,总和约为 1 GiB)从内部 HD (ext3) 移动到外部 HD (ext3)。通常我会采用复制-比较-删除方案来移动文件,但这次我放松了警惕。不幸的是我使用了 GUI 的文件浏览器而不是 shell。复制时 USB 链路不稳定并且传输终止。外部磁盘被保险丝卸载。然而,当时进度条刚刚到达终点,所以我希望大部分数据都写入了外部硬盘。
恢复连接后,源处的文件消失了,即被文件浏览器删除了。在目的地出现了一堆文件(我不确定一开始有多少个),但有一个例外,大小为 0。
我想提出一个策略来挽救数据。
最初,只剩下 2.5 GiB 的可用空间。因此,如果我尝试搜索已删除的内容,至少搜索量有限。
在目的地,有足够的空间,所以我可以假设文件是连续写入的。
我的想法是以某种方式将所有可用空间从源添加到安全位置,并尝试从空文件开头开始从目标添加最多 1 GiB 的数据。
当抢救这些碎片时,我想我可以比较来自起点和目的地的碎片,以对数据做出结论。
但是,我既不知道如何从分区的可用空间中获取数据,也不知道如何从错误标记为 0 大小的文件中获取数据。
或者有更好的方法来掌握我的数据吗?