Storing backups on optical media such as DVD-R discs suffers from two major drawbacks: DVD discs are easy to scratch, and the media itself degrades after a while. You can deal with the scratching issue by careful handing of the media, but even expensive media becomes unreadable over time. Dvdisaster aims to help you recover the information off scratched and aged media.
Dvdisaster takes any ISO image and generates a file containing error correction information, which you can burn to the DVD along with the image or store separately on other media. (In order to protect the error correction information itself from scratches and aging, it must be a larger percentage of the overall disc if you burn it to the DVD than if it stays separate.) The error correction file is about 15% the size of the ISO by default, or 700-odd megabytes for a typical DVD. When you want to recover media that is old or scratched, dvdisaster uses this error correction information to regain the original information.
If you cannot find the error correction file or did not produce one when the media was fully readable, then dvdisaster cannot help you to recover information off an aged DVD.
Dvdisaster comes with both GUI and command-line tools for creating error control files and recovering information from damaged DVDs. To create an error control file, dvdisaster must have an ISO image. Dvdisaster can either use an ISO file on your hard disk or can read the ISO image directly from a DVD using a drive's error correction. Dvdisaster being able to read the ISO from a hard disk can be handy if the tools you use to burn the DVD disc create an ISO anyway. Assuming that you have recently created the DVD and the media hasn't been punished, reading the ISO from media should not produce any errors, as shown here.
As you can see from the media scan, the top of the GUI has two paths; the one on the left is where to store the ISO image, and the one on the right is where the error control file should be. Both settings default to containing paths.
The interface is a little counterintuitive at first. The first button that draws you in is the Create button on the right. You see that since there are paths already for the ISO and error control files, which makes you think you are ready to create the error control file at the nominated location for the disk in the selected DVD drive. But clicking the create button gives an error that tells you you have to read the ISO image first. Once you have read the ISO image, clicking Create again will actually make the error control file for you.
The business end of the Preferences window (see figure) lets you choose between storing the error correction information in a file or as part of the ISO image and to adjust the level of error recovery that is possible with the error correction information. The default is to use 14.3% of the data size for error correction information. You can also click High to use 33.5%, or select Other to choose an amount from 3.2% to 64.5%. The number of roots for your selected error correction size is also shown. The number of roots directly reflects how many errors in a given data block you can fully recover from. The data block that is used as the basic unit for error control is made up of many sectors from the ISO image.
These sectors are selected so that they will be distributed over the whole media uniformly instead of grouped together. This means that a nasty scratch will be less likely to cause data loss, and that dvdisaster can more likely handle things when the outer part of the disc starts becoming unreadable in aging media. When you are planning to put the error correction information directly onto the media, the settings are all calculated in sectors. Because the error control blocks use information from all over the ISO image, the memory utilization slider allows you to set how much RAM dvdisaster should use to cache the ISO image to speed up the creation of an error control file.
When using dvdisaster to recover data from an old media, you first read the media to an ISO and then verify that ISO. If there are errors in the ISO, you can click the Fix button to try to repair the image to its original form. When dvdisaster is fixing an ISO image, it will display its progress and how many errors per block were encountered in a graph form. The number of roots mentioned above is displayed at the top of the graph as the maximum number of errors that dvdisaster can encounter and still be able to generate a perfect copy of the original ISO.
To test out the verification and recovery I created an error control file for the Fedora 8 DVD and then corrupted the ISO image that was used to generate the error correction information file with the commands:
dd if=/dev/urandom of=medium.iso bs=1 count=128330 seek=1559389 conv=notrunc
The red bars in the figure give an overview of the areas in the ISO image that I overwrote with random data. Dvdisaster recovered a total of 81 errors in the first quarter of the ISO, where I had created my corruptions.
To use dvdisaster with K3b you have the choice of having K3b create an ISO image during the burn process and using dvdisaster directly on that to generate the error control file, or simply burning the disc and using dvdisaster to read an ISO image from the burnt media. With the latter method you are also verifying that the media can be fully read again in order to obtain the ISO image. It would be nice to have a plugin or direct support for dvdisaster in K3b -- perhaps a new tab in the burn project window allowing you to create an error control file with options similar to the "Error Correction" tab in the dvdisaster preferences window.
One major use for dvdisaster is to protect personally authored digital content. For example, files like digital photographs from your last holiday or home movies are unlikely to be edited in the future. Even if these files do get edited, having access to the original versions always going to be of value. Protecting the backups of these files that you make on DVD with dvdisaster means you have a greater chance of reading all of these precious files back off your DVDs in 10, 20, or 30 years time.