用dd创建的SD卡img全为零

用dd创建的SD卡img全为零

一位不懂电脑的家庭成员要求我从她相机中使用的 SD 卡中恢复照片。当电脑通知她设备需要格式化时,她去取它们。她发誓她没有继续使用该格式,并问我是否知道如何修复它。

我使用我喜欢的 Knoppix 启动 CD,因为它预先捆绑了 ddrescue 和其他工具。将卡插入我的内置读卡器,它识别出 /dev/sdc 下的设备,但它没有自动安装。

我运行了命令

ddrescue -d /dev/sdc /media/sdb1/test.img /media/sdb1/testimage.log

输出表明它运行得很好。它成功读取了所有 16GB 并报告了 0 个错误。然而,当我在十六进制编辑器中打开 img 文件时,它是 16GB 的零。我不确定 ddrescue 是否在每次读取尝试时都默默失败并只写了一个零,所以我也尝试了普通的 dd 并得到了相同的结果。

卡上的一切看起来都很好,显然只是空的。通常,当这些卡上的内存控制器开始变坏时,我习惯于它们错误报告内存大小或存在坏扇区,但在这里,这一切看起来就像是一张快乐的出厂新鲜 SD 卡。

当然,她是技术文盲,所以我不能排除她不小心把东西填零的可能性,但我想如果有什么的话,她会不小心快速格式化它并吹掉分区表,使地址处的字节完好无损。

是否有什么我可能遗漏或做错的地方,或者该卡刚刚完全被冲洗?

答案1

我假设您的 Linux 系统能够读取工作的 SD 卡。

当您插入一张未格式化的卡(包括 100% 零(即完全空白)的卡)时,您希望看到的 Windows 消息是“设备需要格式化”。

数据丢失。

如果 SD 卡上的闪存重新映射表已重置为全部未分配(例如blkdiscard在整个设备上使用 Linux 命令),您将看到以下内容。 (blkdiscard命令往往适用于内部 PCI 读卡器,我认为它往往不适用于 USB 读卡器)。

如果您想要随机猜测,我认为这更可能是控制器仍在运行的故障,但由于某种原因无法加载重新映射表。在这种情况下,您将无法写入卡/写入内容将悄无声息地丢失。

我不认为这是由于故意丢弃命令造成的,因为我很少听说过那些在 SD 卡上使用的命令。

如果 SD 卡决定自行重置并擦除所有映射表,我会感到惊讶。请注意,全设备blkdiscard命令对我来说需要一段时间。至少,没有理由将其设计为自动重置。

相关内容