我正在尝试从存储中的旧 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 中还有什么办法可以更进一步吗?
答案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 看到它。
你为什么会这么猜?dd
并mount
报告内核所说的内容。内核显示“未找到介质”。这意味着就软件而言,CD 驱动器是空的。
无法使用软件恢复任何数据,因为硬件报告 CD 不存在或为空白。可能可以使用专门的、昂贵的硬件来恢复数据,或者甚至可以通过一些廉价的“自制”技术,或者简单地使用具有更敏感设备的 CD 读取器来恢复数据,但这对于本网站来说是偏离主题的,我不会寄予厚望:CD 不易老化。
答案4
有些硬件更擅长读取不稳定的光盘。有时这不是驱动器的硬件,而是它的固件:
空白 CD-R 磁盘上有一个代码,您的 CD 刻录机可以读取该代码以找到最佳刻录策略。如果 CD 刻录机的内置软件(其“固件”)中没有此功能,则默认值可能是一个糟糕的折衷方案。 Vane-Tempest 表示,一些“不那么严谨”的远东公司一直在使用其他人的代码,但效果不佳。然而,有一种方法可以解决这个问题,那就是找出哪些品牌适合您的作家并确保固件是最新的。
--CD-ROM 100 年神话
因此,第一步是查明您的光驱是否有更新的固件。
如果做不到这一点,请尝试您能找到的所有 CD 驱动器,尤其是较旧的 CD 驱动器浦科特驱动器。如果有效,请执行以下操作维尼跳跳虎建议并使用 制作图像gddrescue
。