如何拯救多区段 CD?

Luc*_*iva 3 backup data-recovery dd ddrescue compact-disc

我有一张多会话 CD,我想将其内容复制到硬盘上。该 CD 已有大约 20 年的历史,并且有几个部分出现了读取问题,因此它是ddrescue.

问题是,ddrescue除了 CD 中的第一个会话之外,它似乎无法识别任何会话,就像dd它一样。它的文档甚至没有提到多会话 CD,并且互联网上似乎没有太多关于如何执行此操作的信息。

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

ana*_*cat 5

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

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

cdrdao read-cd --read-raw --datafile data.bin data.toc
Run Code Online (Sandbox Code Playgroud)

它不会重试或检查任何内容,因此这并不是一种救援。但它也许能够挽救混合模式 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
Run Code Online (Sandbox Code Playgroud)

需要使用bchunk将文件.bin转换为显示为文件:ISO

bchunk data.bin data.toc data
Run Code Online (Sandbox Code Playgroud)

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

  • 我仍然保留着那些旧 CD,所以我肯定会在不久的将来的某个时候再次尝试恢复它们。我会让您知道您的建议是否有效(然后接受您的答案)。谢谢! (2认同)