dvdisaster Version 0.72.6 / 0.79 (devel-3)  To the Internet version
Contents

News
Overview
Howtos
Download
Questions and Answers
·Technical Questions
·Error messages
·Background information
-Error correction properties
-Image level data recovery
-RS01, RS02 and RS03
-Linear reading strategy
-Adaptive reading strategy
-Remarks on read errors
-Hints for storing the error correction files
Bug reporting

Image level data recovery

Media recovery with error correcting codes takes place in two steps:
  1. First as much data as possible is read from the defective medium.

  2. Then the still missing data is recovered using the error correction code.
The amount of readable data (step 1) does not only depend on the reading capabilities of the drive, but also on which logical level the reading process takes place. This page discusses the logical levels and explains why dvdisaster uses image level reading.

Logical levels of a medium

Optical disks are organized into data sectors containing 2048 bytes each. Consecutively reading and storing these sectors produces a medium image.

But working with single data sectors is unwieldy from a users perspective. Therefore media contain file systems which combine data sectors into files. This requires accurate book-keeping about which data sectors the files are comprised of, and further attributes like file names and access permissions. For this book-keeping some data sectors are reserved on the medium and filled with respective data structures.

As a consequence media contain different logical levels: Viewing the medium as a sequence of data sectors means working at the image level. However looking at the medium as a collection of files is the perspective of the file(system) level.

The two levels have different properties when it comes to data recovery:

Shortcomings of reading a medium at the file level

Reading a defective medium at the file level means trying to read as much data as possible from each file.

But a problem arises when data sectors are damaged which have book-keeping functions in the file system. The list of files on the medium may be truncated. Or the mapping of data sectors to files is incomplete. Therefore files or parts from files may be lost even though the respective data sectors would still be readable by the hardware. This is very bad since even small readable portions of damaged files are valuable for the error correcting code.

An extremely bad case occurs when the error correction data is also stored in files. Then the error correction data is required to repair the file system, but the defective file system prevents access to the error correction data. That means total data loss and rises some issues on the treatment of error correction files (more on that later).

A similar problem arises when files are augmented with PAR2 error correction data and then all these files are stored on the same medium. If the internal bookkeeping of the file system is damaged now, all files and therefore the error correction data become inaccessible and are therefore lost.

However the situation improves greatly when employing an image-based approach:

Advantages of reading at the image level

Reading at the image level uses direct communication with the drive hardware to access the data sectors.

The number of readable sectors depends only on the reading capabilities of the drive, but not on the state of the file system. A read error in one sector does not block access to other data sectors. Since all sectors are recovered which are still readable by the hardware, the method provides the best foundation for the error correction.

The image contains all data sectors of the medium. When the image is completely recovered the file system stored within is also fully repaired. A protection at the image level is therefore more extensive than error correction at the file level.

dvdisaster is working exclusively at the image level to take advantage of these properties. The RS02 method even allows for storing the error correction data at the same medium. This is possible since reading the error correction information at the image level can not be blocked by errors at other medium locations (damaged sectors with error correction data will reduce the error recovery capacity, but not make recovery impossible).

The RS01 method protects media at the image level, too, but stores the error correction data in files. The next section hints at some pitfalls arising from that.

Consequences for error correction file storage

The error correction data created by dvdisaster protects media at the image level. But how are the error correction files protected?

Since error correction files are read at the file level they are subject to the problems discussed above. If the medium containing the error correction files becomes damaged it may not be possible to access or read them completely.

Therefore it is important to protect error correction files at the image level as well: Media containing error correction files must be protected with dvdisaster, too.

Since image level protection is assumed there is no further damage protection contained in the RS01 error correction files! This would not help much, anyways: Error correction files could be created in a way that allows them to provide a reduced data recovering capacity even when being damaged*). But however such internal protection would be designed, the error correction file would still be only protected at the file system level with all the disadvantages discussed above!

In addition, the computing time and redundancy used for internal protection is better spent at the image level: The Reed-Solomon error correction works best when error correction information is spread over huge amounts of data. It is better to protect the image as a whole than individually protecting each file within.

 

*) Error correction files created with the new RS03 codec have exactly these properties, e.g. they are robust against damage as long as there is enough error correction capacity left. This is possible as by now there is sufficient computing power and fast hard drive access available to create a suitable file format. At the time RS01 was developed these resources were not yet available. But it must be stressed that even for RS03 error correction files the disadvantages of reading at the file level hold!
Copyright 2004-2014 Carsten Gnörlich.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.