如何挽救多区段 CD?

如何挽救多区段 CD?

我有一张多区段 CD,我想将其内容复制到硬盘上。这张 CD 已有大约 20 年历史,其中有几个部分存在读取问题,因此它可能是 的潜在候选对象ddrescue

问题是,它ddrescue似乎无法识别 CD 中除第一个区段之外的任何区段,就像它dd识别的那样。它的文档甚至没有提到多区段 CD,互联网上似乎也没有太多关于如何做到这一点的信息。

所以问题是:如何使用ddrescue或任何类似的工具来拯救多会话 CD?

答案1

恐怕您在评论中提到了令人不悦的答案:ddrescue不知道如何处理单个会话。我怀疑这是 Linux 内核 CD-ROM 接口的故意选择:它只显示它认为相关的会话。为了绕过这个问题,我相信cdrdao做了一些特殊的事情,使该工具能够访问单个会话(例如使用--session)标志。

在我的测试中,以下内容产生一个大的二进制文件( )和一个描述磁盘.bin的目录( )文件:.toc

cdrdao read-cd --read-raw --datafile data.bin data.toc

它不会重试或检查任何内容,因此它不能完全恢复。但它可能能够恢复混合模式 CD-ROM 并解决单个会话问题。如果上述操作未找到所有会话(您可以使用 检查有多少个会话存在cdrdao disk-info),您可以使用以下命令提取单个会话:

for session in 1 2 3 [...] ; do
    cdrdao read-cd --read-raw --session $session --datafile data-$session.bin data-$session.toc
done

需要将文件.bin转换为ISO文件形式,使用

bchunk data.bin data.toc data

如果一切顺利,这将为data.iso磁盘的相关部分创建一个。data.ugh如果转换失败,它还可能会创建一个文件,不幸的是我不知道如何处理这种情况。

相关内容