当你一个文件一个文件地读时,你在磁盘上随机寻找,这比批量传输连续数据要慢得多。而且,由于最快的CD驱动器比最慢的硬盘驱动器慢几十倍(这甚至还不包括在每个坏扇区上进行多次读取以进行纠错)的速度,所以您希望尽快从CD中取出数据。在

当然,将存档文件作为.iso文件或类似文件意味着,如果您以后改进软件,您可以重新扫描文件系统,而无需再次取出CD(这可能会进一步降低存储质量)。在

同时,尝试恢复损坏的cd和损坏的文件系统比您预期的要复杂得多。在

所以,我要做的是:

Block将光盘直接复制到.iso文件中(无论是在Python中,还是使用dd),并记录所有失败的光盘。在

散列.iso文件,而不是文件系统。如果您确实需要散列文件系统,请记住,在散列之前压缩数据的常见优化(即,tar czf - | shasum而不仅仅是tar cf - | shasum)通常会减慢速度,即使是对于易于压缩的数据,但是您也可以在两张磁盘上同时测试这两种方法。如果您需要您的验证在法律上有用,您可能必须使用在线服务提供的带有时间戳的签名,在这种情况下,压缩可能是值得的。在

对于每个成功的.iso文件,装载它并使用基本的文件复制操作(无论是在Python中,还是在标准Unix工具中),并再次记录所有失败的文件。在

获得一个免费或商业CD恢复工具,如IsoBuster(不是认可,只是搜索中出现的第一个工具,尽管我以前成功地使用过它),然后使用它手动恢复所有损坏的光盘。在

当每个块复制完成时,您可以并行执行许多这方面的工作,在您对下一个驱动器进行块复制时,在后台启动文件系统转储。在

最后,如果您有1500张光盘要恢复,您可能需要投资一个DVD光盘机或自动加载器。我猜新的还是很贵的,但肯定有人会以便宜得多的价格出售旧的。(从网上快速搜索,第一个结果是2500美元的新产品和240美元的二手货…)