我有一个 128 GB 的微型 SD 卡,我将其格式化为 ext4 并在 Chromebook 中用于 Ubuntu Chroot 环境。我以这种方式使用了一段时间。在某些时候,我要么删除了所有内容,要么使用 Chromebook 的简单格式化系统对其进行了格式化。
之后,我把它卡在了一个GoPro Hero Session中,发现GoPro并不关心格式化磁盘,可以立即写入图片和视频。没问题。
我去旅行了,拍了很多照片和视频,然后突然 GoPro 无法读取磁盘。它仍然能够录制视频和图片(我假设),因为我可以打开录制模式并且它没有报告任何问题。据我所知,128 GB 对于这个 GoPro Session 来说太多了。
当我将它插入计算机(Chromebook、Mac OSX、Ubuntu)时,我要么收到错误(Chromebook 和 OSX),要么我安装了磁盘,但是当我用文件资源管理器打开它时没有可见的文件结构。完全是空的。
如果我右键单击,然后单击“属性”(在 Ubuntu 上),我会得到一个报告,该磁盘已格式化为 ext3/ext4,128 GB,已使用 45.1 GB,71.9 GB 可用空间。gparted
正在报告同样的事情。
我能够使用photorec
. 不过,我没有恢复任何视频。
我曾经ddrescue
将磁盘复制到我可以使用的图像上。当我mount
创建图像文件时,它的行为与磁盘完全相同(预期)。
ddrescue
输出:
获救:125829 MB,
错误大小:0 B,
当前速率:12648 kB/sipos:125829 MB,
错误:0,
平均速率:19079 kB/sopos:125829 MB,
自上次成功读取以来的时间:0 s完成的
我对 .IMG 文件进行了传递,foremost -v -q -t mp4 -d
但最终返回了 0 个文件。
在这一点上,在我看来,实际上并没有数据丢失或损坏。我不确定实际发生了什么,但怀疑文件系统出了问题——GoPro 中的 ext3/ext4 而不是 FAT32 或 exFAT。
编辑:我刚刚使用了磁盘使用分析器并找到了所有photorec
恢复的最大文件。其中有许多大的 .bz2 文件,其中包含没有扩展名的文件,这些文件的时间戳是我录制镜头的时间。我可以打开它们并使用存档管理器查看此信息,但无法提取它们。
编辑 2:我尝试运行fsck
并签入/lost+found
. 我所有的 Linux 文件都在那里,但没有视频,甚至没有我之前用photorec
.
我还尝试使用 exfat 将图像挂载,sudo mount -o loop -t exfat SD_Card.img ~/mountpoint
但无法挂载。
FUSE exfat 1.2.8
错误:未找到 exFAT 文件系统。
按照本指南
testdisk
中的说明在图像上运行,我能够恢复所有文件。ddrescue
最初的快速扫描没有检测到任何有用的东西,但在快速扫描之后,可以使用深度扫描选项。
Deepscan 检测到三个分区文件系统——
ext4 被标记为 Linux。我没有尝试从该分区中恢复任何内容。这是之前可挂载的分区。
第一个 exFAT 没有标签,我可以使用 .exe 提供的终端命令浏览它
testdisk
。此分区表中包含其他程序(例如gparted
无法看到)的所有 GoPro 文件夹和文件,按原始顺序排列。在 DCIM 文件夹中,我发现我的所有照片和视频都具有正确的文件名和时间戳——因此恢复根本不是恢复损坏文件的问题。第二个 exFAT 看起来与第一个相同,但文件不可读。