跳转到内容

Dvdisaster

维基百科,自由的百科全书

dvdisaster 是一款旨在通过创建错误检测和修复数据来增强光碟上数据的存活能力的电脑程序。它专门在图像级别工作。这个程序可以用来从现有媒体生成错误纠正码(ECC)数据,也可以在将ISO映像写入介质之前将ECC数据添加到ISO映像中。dvdisaster是根据GNU通用公众授权条款提供的自由软件。

dvdisaster
dvdisaster 0.72
dvdisaster 0.72
开发者Carsten Gnörlich
首次发布0.40.7 (2004年8月22日,​19年前​(2004-08-22)
当前版本
  • 0.79.10 (2021年9月27日)[1]
编辑维基数据链接
编程语言C
操作系统FreeBSD, Linux, NetBSD (Cross-platform till version 0.72.3)
语言English
类型Data recovery
许可协议GPL
网站dvdisaster.jcea.es

恢复模式[编辑]

当光碟在物理上受损(例如被刮伤),或者开始恶化时,光碟上的某些数据部分可能变得无法读取。通过利用dvdisaster之前生成的ECC数据,可以恢复光碟数据的损坏部分。

dvdisaster中的两种ECC数据生成模式使用了Reed-Solomon码。在RS01模式中,生成的数据是从光碟映像创建的,并存储在单独的文件中,必须将其写入其他媒介。或者,在RS02模式中,ECC数据附加到光碟映像的末尾,然后将映像烧录到光碟上。

当CD或DVD在RS02模式下进行扩充时,数据的“扩充”部分对普通用户来说是不可见的,并且光碟对于没有知识或安装dvdisaster的计算机仍然完全兼容。通过安装软件,使用dvdisaster访问Reed-Solomon错误纠正码并重建映像(到硬盘),损坏的光碟可能完全可恢复。

即使没有ECC数据,dvdisaster也可以帮助恢复损坏光盘的内容。可以将整个光盘读入映像,跳过损坏的部分。然后,dvdisaster可以反复扫描丢失的部分,试图检索正确的数据。

和其他 Reed-Solomon 实现的差异[编辑]

dvdisaster采用基于影像的方法进行数据恢复。它不采用基于文件的数据恢复,因为在文件级别读取受损媒体意味着尝试从每个文件中尽可能读取更多数据。但是,当数据扇区损坏时,文件系统中具有记录功能的数据扇区存在限制。媒介上的文件列表可能会被截断。或者数据扇区到文件的映射是不完整的。因此,即使相应的数据扇区仍可由硬件读取,文件或文件的部分仍可能丢失。相比之下,通过影像级别读取使用与驱动器硬件的直接通信来访问数据扇区。

需要注意的是,dvdisaster放置在结尾的每个ECC数据单元都是从原始数据的扇区计算出来的,原始影像中分散在周围。每组原始数据扇区和添加的ECC扇区形成一个“集群”。只要该集群中的损害量小于该集群中添加的ECC数据量,则可以恢复集群的任何部分,因此ECC数据在磁盘上的位置无关紧要。

在Parchive中,集群是不同的,因为每个文件被视为单个块:使用dvdisaster数据丢失开始时,当其中一个集群的错误超过约15%时(不太可能发生,但在几KB的数据中理论上可能发生[2]),而Parchive可以恢复任何错误,只要PAR2文件完整且受损文件的数量(不论受损程度)小于可用的ECC文件数量。dvdisaster还具有具有单独ECC文件的模式。[3]

参考资料[编辑]

  1. ^ https://dvdisaster.jcea.es/.
  2. ^ Technical properties of the error correction. [2015-02-07]. (原始内容存档于2014-10-13). 
  3. ^ The RS01, RS02 and RS03 methods. [2015-02-07]. (原始内容存档于2015-02-07).