可选:过滤恢复的文件

可选:过滤恢复的文件

当我尝试对存有重要文件的 SD 卡的写入速度进行基准测试时,我搞砸了。

sync; sudo dd if=/dev/zero of=/dev/sdb1 bs=1M count=1024; sync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 23.5386 s, 45.6 MB/s
^C

我意识到我直接写入了 /dev/sdb1,而不是写入已安装卡内的文件,因此由于担心覆盖数据,我在基准测试似乎结束(但事实并非如此)后立即取消了。现在它将自动安装,但不显示任何内容(无法在文件资源管理器中单击它,并且 gparted 仅将其显示为未知的 exfat 卡。

我能做些什么?

答案1

有很多恢复应用程序,我个人觉得那个最好photorecforemost。Photorec 是软件包的一部分testdisk,最重要的是可以从软件包中安装foremost

a) 光记录

现在只需运行$ photorec /dev/sdb即可打开 photorec 的交互界面。

按回车键 ( [Proceed]) 选择磁盘。在下一个屏幕中,系统会要求您选择一个分区。如果 photorec 找到正确的分区,您可以在此处选择要从中恢复文件的分区。如果它无法正确检测分区,只需选择No partition [Whole disk]并再次按回车键即可执行[Search]。在下一个屏幕中选择文件系统类型后,您需要选择一个目录来保存恢复的文件。使用 确认C

b) 最重要的

虽然 photorec 的工作原理是尝试使用锉雕,Foremost 的做法略有不同。它仍然使用文件雕刻概念,但它忽略了底层文件系统的类型,直接通过将驱动器的片段复制到 RAM 中来工作,然后扫描文件头类型。Foremost 带有许多内置标头来恢复大多数类型的常见文件,如果您想添加自定义页眉/页脚来检测不太常见的文件类型,Foremost 为您提供了此功能。

要使用图像上的默认选项运行 foremost,请运行以下命令:

$ foremost -i /dev/sdb -v

/dev/sdb1如果您只想从该分区恢复文件,可以使用这里。

这会将所有恢复的文件保存到output(首先将创建的新目录)。您可以使用标志指定另一个输出目录-o,并-a忽略错误/保存损坏的文件。

可选:过滤恢复的文件

这是可选的,但有时您只对特定类型的文件感兴趣,甚至更糟:恢复工具为您提供了数百万个文件,其中数千个文件看起来像是 JPEG 文件,但实际上它只是一个损坏的文件,根本不是图片。要过滤掉这些文件,您可以使用我对 SuperUser 上的另一个问题的回答。


将来如何预防这种情况发生

dd我看到人们经常弄乱他们的数据。这太容易了。我的建议:

#!/bin/bash
read -r -p "Have you checked at least TWICE if the parameters are correct? [y/N] " response
response=${response,,}
if [[ "$response" =~ ^(yes|y)$ ]]; then
    dd "$@"
else
    echo "Better be safe than sorry."
fi

将其另存为/usr/bin/sdd或任何您想要的名称。chmod +x然后。从现在开始,始终使用sdd而不是dd

相关内容