dvdisaster 是一款旨在通過創建錯誤檢測和修復數據來增強光碟上數據的存活能力的電腦程序。它專門在圖像級別工作。這個程序可以用來從現有媒體生成錯誤糾正碼(ECC)數據,也可以在將ISO映像寫入介質之前將ECC數據添加到ISO映像中。dvdisaster是根據GNU通用公眾授權條款提供的自由軟件。

dvdisaster
dvdisaster 0.72
dvdisaster 0.72
開發者Carsten Gnörlich
首次發布0.40.7 (2004年8月22日,​20年前​(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).