关于如何撤消命令有几个问题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。
我遵循了以下说明:
- 确保磁盘未安装(使用磁盘工具卸载,但不要弹出)
- sudo 测试磁盘
- [创建] 新的日志文件
- 选择相应的“/dev/rdisk*”(不要使用 /dev/disk,因为它比较慢,请使用磁盘工具检查正确的号码)
- 在“高级”下选择“取消删除”
- 选择要取消删除的文件,然后按“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 恢复程序并不难。