读取旧的(损坏的)CD-R

读取旧的(损坏的)CD-R

我正在尝试从存储中的旧 CD 恢复数据。但是,当我尝试安装它时:

sudo mount -t hfs /dev/cdrom /mnt

我收到消息

mount: no medium found on /dev/sr0

有什么方法可以恢复 CD 上的数据吗?我的猜测是,CD-ROM 驱动器必须能够以某种低级别读取磁盘,然后才能dd查看它。由于它不起作用,dd只会产生错误。有什么工具可以解决这个问题吗?

到目前为止我已经尝试过:

sudo dd if=/dev/cdrom of=badcd3.iso bs=2048 conv=noerror,notrunc iflag=nonblock

如下所述:http://hyperlogos.org/page/Recovering-damaging-CDs-or-DVDs-Linux

正如您在图片中看到的......染料正在从边缘脱落。我本来希望能把东西放在中心...

有趣的是,它早些时候安装在我的 MacBook 上,但现在它只是以空白 CD 的形式出现。

如果 DD 不起作用,Unix 或 Linux 中还有什么办法可以更进一步吗?

坏 CD

答案1

如果 CD 有缺陷,通常的 UNIX 工具就无济于事。

只要您收到“找不到媒介”消息,您就无法执行任何操作。

您首先需要检查这是否是空白 CD-R 介质,并且您的驱动器只是一个不识别未写入 CD-R 介质的 CD-ROM 驱动器。

如果这是 CD 刻录机,那么它应该能够检测介质,并在这种情况下cdrecord -v -minfo打印有关实际介质状态的信息。如果 CD 已写入,那么这里有更多帮助:

如果磁盘上没有灰尘和划痕,唯一的方法是找到一个可以接受该介质的更好的驱动器,至少要反复重新加载该介质,直到该驱动器喜欢该介质为止。

请注意,为了识别 CD,驱动器需要读取TOC.

TOC位于介质的内圈,配备有很少的错误恢复数据,但重复了几次。如果由于磁盘空间较大而导致间隙较大,无法读取任何内容,那么读取该文件的希望就很小了TOC

一旦您设法使驱动器识别该介质,您就可以readcd从其余问题中恢复。

readcd即将cdrtools发布最终版本并发布schilytools频繁快照。它包括来自甚至更多的恢复功能sdd (Reed Solomon 恢复代码可能比驱动器固件中的恢复代码更好)。

我建议首先让驱动器识别介质......

这是readcd手册页:http://schilytools.sourceforge.net/man/man1/readcd.1.html

答案2

还有另一种变体dd,称为gddrescue.对于这项工作来说,这是一个更好的选择,因为它增强了原始dd命令处理读取错误的能力。但不幸的是,我认为,如果您的系统无法识别该 CD,则无法挽救它。

答案3

我的猜测是,CD-ROM 驱动器必须能够以某种低级别读取磁盘,然后才能允许 dd 看到它。

你为什么会这么猜?ddmount报告内核所说的内容。内核显示“未找到介质”。这意味着就软件而言,CD 驱动器是空的。

无法使用软件恢复任何数据,因为硬件报告 CD 不存在或为空白。可能可以使用专门的、昂贵的硬件来恢复数据,或者甚至可以通过一些廉价的“自制”技术,或者简单地使用具有更敏感设备的 CD 读取器来恢复数据,但这对于本网站来说是偏离主题的,我不会寄予厚望:CD 不易老化。

答案4

有些硬件更擅长读取不稳定的光盘。有时这不是驱动器的硬件,而是它的固件:

空白 CD-R 磁盘上有一个代码,您的 CD 刻录机可以读取该代码以找到最佳刻录策略。如果 CD 刻录机的内置软件(其“固件”)中没有此功能,则默认值可能是一个糟糕的折衷方案。 Vane-Tempest 表示,一些“不那么严谨”的远东公司一直在使用其他人的代码,但效果不佳。然而,有一种方法可以解决这个问题,那就是找出哪些品牌适合您的作家并确保固件是最新的。
--CD-ROM 100 年神话

因此,第一步是查明您的光驱是否有更新的固件。

如果做不到这一点,请尝试您能找到的所有 CD 驱动器,尤其是较旧的 CD 驱动器浦科特驱动器。如果有效,请执行以下操作维尼跳跳虎建议并使用 制作图像gddrescue

相关内容