Duk*_*kem 5 data-recovery compact-disc
我正在尝试对损坏的 CD 进行映像,其中一些 CD 的重要区域有坏扇区。我知道有大量的软件可以创建磁盘映像,即使它们遇到坏扇区。我的问题是那些坏扇区只是被跳过(复制为零)。有没有什么方法可以指示或强制驱动器返回它在损坏扇区中读取的内容,无论该扇区的 CRC 是否正常 - 几乎强制它表现得就像正在读取音频 CD 一样?我没有找到任何这方面的信息,所以如果有人有这方面的任何信息,我将非常感激。我也不害怕编写一些汇编代码或进行一些焊接,因此欢迎任何提示。
以下是我已经尝试过的一些事情:
一些想法(如果您知道其中任何一个会/不会起作用,请发布):
欢迎任何其他想法,无论多么疯狂:)
我想我应该回去自己回答这个问题,因为我在这个问题上已经很有经验了。事实上,我在最初的问题中想到的两个想法确实有效!
发出一些低级 ATA 命令来禁用 CRC/强制驱动器进入音频 CD 模式?
这在某些驱动器上确实是可能的(我测试的 2 个驱动器中有 1 个支持此功能)。您需要能够将通用数据包发送到驱动器。这可以在(可能)任何 Linux 发行版中通过使用 CDROM_SEND_PACKET ioctl 调用来完成。首先,您需要向页码为 1 的驱动器发出 MODE_SENSE_10 命令(读写错误恢复)。使用页面控制值 0(当前值),您将能够看到驱动器对坏扇区的行为,并使用页面控制值 1(可更改值)查看哪些扇区可以更改。如果您的驱动器支持更改该页的 TB(传输块)设置,则应将 TB 设置为 1 并使用 MODE_SELECT_10 命令将修改后的设置发送到驱动器。瞧 - 即使存在 EDC/ECC/CIRC 错误,您现在也可以从驱动器取回扇区!最好的部分是,在向您发送扇区之前,驱动器会执行扇区解扰以及它可以进行的任何错误纠正。(未经测试:还有一个 DCR 设置可能会完全禁用纠错尝试。)
如果您觉得这很有趣,请获取 linux livecd 和 Mt. Fuji 规范!上述信息可以在 Mt. Fuji 规范 v.9 修订版 1.00 的第 752 页上找到。
额外奖励:现在您可以将通用数据包发送到驱动器,您应该使用 READ CD (0xBE) 命令自行获取原始扇区。然后,您可以自己检查所有标头、EDC/ECC 数据,甚至子通道数据(如果您喜欢这类事情)。当驱动器给出损坏的扇区时,您可以使用 EDC/ECC 数据来检查扇区的损坏程度,并在重新读取时决定保留两次尝试中的哪一个。
插入音频 CD,然后在不打开托盘的情况下切换到所需的数据 CD?
不管你信不信,这确实有效!(至少在我曾经测试过的一些非常旧的CDROM驱动器上)。您实际上可以让音频 CD 播放器“播放”您的数据,记录它,并在纠正任何扇区漂移(通过查找数据扇区的同步标头)并解扰数据(查看 ECMA 130 加扰查找表)后,您可以获取原始数据,无需任何形式的纠错。我很确定上面的第一种方法已经过时了这个方法,但时间会证明一切 - 我仍然只是开始实际的数据恢复。
我目前正在开发一些软件,用于自动执行我刚刚编写的内容,并完美地(包括任何控制标头和子通道数据)归档旧的、损坏的 CD。如果有人对这项工作感兴趣,请告诉我。另外,请告诉我,如果这种软件已经存在 - AFAIK 它不存在。
归档时间: |
|
查看次数: |
3778 次 |
最近记录: |