取消删除 exfat 外部硬盘设备上的“rm -r”

取消删除 exfat 外部硬盘设备上的“rm -r”

关于如何撤消命令有几个问题rm -r,但是在这种特定情况下,我有一个 exfat 格式的分区/硬盘,而不是例如 ext4/ext3 格式的磁盘。

该磁盘是外部磁盘,因此自从运行该rm -r命令以来我还没有向该磁盘写入任何内容,数据应该完全可以恢复。(不应该覆盖任何内容。)

我所做的事情的简要总结如下:

  • 我有一个 2TB 的外部磁盘,用于备份特定项目的数据。
  • 我尝试通过插入外部磁盘(通过 USB)并运行cp -r复制数据命令将数据复制到 NAS。
  • 我没有意识到我要复制数据的地方没有足够的可用空间。因此命令cp -r失败并报告磁盘空间不足。
  • 由于目标位置是我的主目录,因此我运行了rm -r从外部磁盘根目录复制的 3 个子文件夹。
  • 哎呀,该rm -r命令实际上是在我的外部磁盘的根目录下运行的,不是我的主目录。

因此,我在我的主目录所在的磁盘上保留了部分数据副本。不幸的是,这只有大约 50 GB(约 1.2 GB)...

(顺便说一句,如果以上任何一点不清楚,请在评论中留下问题,我会澄清。)

我知道外部驱动器根目录中的 3 个子文件夹的名称。

我如何恢复子目录“树”。(我知道文件的数据仍会存在,但指向指定文件所在文件夹的数据结构将被删除?我想是吧?我不能 100% 确定 exfat 数据在磁盘上的格式...)

到目前为止,我已经尝试过了testdisk。我所做的是扫描已删除的文件和文件夹,并将其保存到本地 nas 磁盘上的新日志文件中。不幸的是,这需要很长时间,我认为 testdisk 只会将其找到的所有文件转储到一个文件夹中……这不好,因为我在外部磁盘的不同子文件夹中有许多同名文件。

所以我有两个问题:

  • 根据我的计算,完成扫描大约需要半年时间。(按照现在的速度。)
  • 我认为子文件夹层次结构将不会被恢复,并且所有文件将被放入恢复位置的一个子文件夹中。

问题:

  • testdisk 会恢复子文件夹层次结构还是将所有内容转储到单个文件夹中?

  • 有没有更快的方法来撤消rm -r我在 exfat 格式的外部硬盘上运行的命令?

请注意,该rm -r命令可能从磁盘中删除了大约 1000000 个文件...所以我想我希望的是某种方法来批量取消删除大量文件?

答案1

testdisk 太棒了!——我意外地在 Fuji X-S10 相机上选择了“全部删除”而不是“删除一张”,结果删除了两天的视频和照片(这是来自使用 exFAT 格式化的 128GB SD 卡)。

我找到了这个线程并决定在我的 Mac (M1) 上尝试 testdisk。

我遵循了以下说明:

  1. 确保磁盘未安装(使用磁盘工具卸载,但不要弹出)
  2. sudo 测试磁盘
  3. [创建] 新的日志文件
  4. 选择相应的“/dev/rdisk*”(不要使用 /dev/disk,因为它比较慢,请使用磁盘工具检查正确的号码)
  5. 在“高级”下选择“取消删除”
  6. 选择要取消删除的文件,然后按“C”将其复制到安全的地方

这恢复了我的所有文件并且没有丢失数据,我非常高兴!

答案2

有没有更快的方法来撤消我在 exfat 格式的外部硬盘上运行的 rm -r 命令?

ExFat 删除文件的方式是使用符号(第一个字节为 0xe5)标记每个文件和目录条目,同时删除指向文件条目的指针,从而释放块。没有第二个文件表,因此一旦完成,就无法纠正。据我所知,在 Linux 上没有其他方法可以使用 ExFat 取消删除文件。

testdisk 会恢复子文件夹层次结构还是将所有内容转储到单个文件夹中?

Testdisk 用于分区和文件系统恢复,它允许您查找文件系统中列出的已删除文件,但前提是这些文件没有被覆盖。在这种情况下,您可以“取消删除”文件,即从列出的 innode 开始复制文件,文件名和其他信息保持不变。

这包括文件夹层次结构,有时。我刚刚用它从损坏的佳能相机 SD 卡(格式化为 ExFat)中恢复了 1440 张照片。我可以看到相机上的文件,但当我将 SD 卡放入 Mac 时却看不到。Testdisk 可以看到损坏/删除的文件夹,我可以恢复至少具有 2 级文件夹结构的文件。对于使用过 rm 的你来说这应该是相同的。如果有将所有这些文件放入垃圾箱或回收站的中间步骤,那么它可能不具有现有的文件夹结构。

TestDisk 附带的另一个工具是 PhotoRec,它是一个低级磁盘分析器,可以搜索文件结构,忽略文件系统。这是当您删除分区或文件系统完全被破坏时发生的。由于实际数据没有名称,这是由文件系统或操作系统完成的,因此所有文件都将未命名且没有文件夹结构。

TestDisk 的速度基本上与任何文件复制的速度相同,取决​​于磁盘、计算机或操作系统的速度。

答案3

据我回忆,testdisk 不会直接将任何文件转储到目录中。相反,它会提示你一次转储一个文件。

现在,你需要做的是小心。当你恢复文件时,testdisk 可能会将该文件写入驱动器,从而可能破坏恢复其他文件的能力。解决方案是让 testdisk 恢复文件与 testdisk 正在恢复文件的驱动器不同的驱动器

是的,我觉得 testdisk 非常慢。

不幸的是,我不知道有没有更简单的方法可以从 exFAT 恢复,我也不确定是否有。在 DR-DOS 5 和 MS-DOS(6,也许是 5)时代,“取消删除”功能很流行。但是,企业已经了解到更好的方法是正确备份数据。因此,人们对取消删除功能的兴趣减少了。当 exFAT 出现时,人们对取消删除的兴趣已经减少了。我建议您庆幸 testdisk 支持 exFAT。

我认为 exFAT 与 FAT32 没什么不同。我敢打赌,一些开源工具对 FAT32 和 FAT16 提供了很好的支持。因此,编写一个好的 exFAT 恢复程序并不难。

相关内容