dvdisaster Version 0.55
To the Internet version Deutsch      English
Contents

Overview
Examples
Download
Command syntax
Questions and Answers
Imprint

Command syntax

Actions. dvdisaster needs to be called with at least one action specified either in long form (--read) or just by the beginning letter (-r):

   --scanScan medium for read errors
--readRead the medium image to hard disc
--create    Create the error correction file
--fixTry to fix an image using the error correction file
--testTest whether image and error correction file match
--unlinkDelete the image file at program exit

 
Device and filenames. These options do also have a long form (--device) and a first letter abbreviation (-d). They are used to change the pre-selected drive and file names.

   --device    Device selection
--prefixPrefix for image and error correction files
--imageName of image file
--eccfileName of error correction file

--listshows drives available under ASPI (Windows version only)

 
Other Options. These less frequently used options are only available in the long form unless noted otherwise.

   --cache-size    Cache size during creation of the error correction file
--daoAssumes "disk at once" medium
-j / --jumpSkip sectors after a read error
-n / --redundancySet error correction code redundancy

Actions.

--scan [n-m]: Scan medium for read errors

Reads every medium sector and prints the number of unreadable sectors when finished.

It is possible to limit the scan to a certain range of sectors. Sector counting starts with 0; "end" refers to the last sector. The given interval is inclusive; 0-100 will read 101 sectors.

Do not use white space in the abbreviated form between the "-s" and the interval:

dvdisaster -s0-100          # reads sectors 0 to 100
dvdisaster --scan 0-100     # long form
dvdisaster --scan 3000-end  # reads from sector 3000 until the end of medium

--read [n-m]: Read the medium image to hard disc

Creates a medium image on the hard disc.

If the image file is already present, only sectors missing in the image will be re-read. This allows for completing the image in several reading passes, and optionally to employ different drives in each of them.

It is possible to limit the scan to a certain range of sectors. Sector counting starts with 0; "end" refers to the last sector. The given interval is inclusive; 0-100 will read 101 sectors.

Do not use white space in the abbreviated form between the "-r" and the interval:

dvdisaster -r0-100          # reads sectors 0 to 100
dvdisaster --read 0-100     # long form
dvdisaster --read 3000-end  # reads from sector 3000 until the end of medium

--create: Create the error correction file

Creates the error correction file for an image.

--fix: Fix an image

Try to fix an image using the error correction file.

If you do not succeed in repairing all sectors during the first pass, attempt to re-read some of the still missing sectors with another --read pass, and try fixing the image again.

--test: Test whether image and error correction files match

This action simply checks whether the image and error correction files match (belong to the same medium), and whether their internal check sums are correct.

See also topic 3.3 in the Questions and Answers.

--unlink: Delete the image file at program exit

This function deletes the image file if all preceeding actions were successful.

Devices and file names.

--device <drive>: Select a drive

The preset is "/dev/cdrom" for Linux. Under Windows, the first CD/DVD drive (according to the drive letter order) is pre-selected.

Linux:   dvdisaster supports drives which are accessible through the Linux uniform CD-ROM driver and which are MMC3 compliant. These are particularly ATAPI drives attached to the symbolic devices /dev/hd* and SCSI drives using the symbolic devices /dev/scd*. External drives using other bus systems (like USB, IEEE 1394) usually also appear as SCSI devices.

Accessing ATAPI drives using the ide-scsi module is not recommended, but possible since these devices are usually available under the /dev/scd* interface.

The general SCSI driver sg (/dev/sg*) is not supported. This should not be a problem since the respective drives are also available using the /dev/scd* or /dev/sr* devices.

Windows:   dvdisaster supports local drives implementing the MMC3 standard and which are referenced through a drive letter in the system.

--prefix <prefix>: Prefix for image and error correction files

The preset is "medium"; the image and error correction files will automatically receive the endings ".img" and ".ecc".

--image <file name>: Name of image file

The preset is "medium.img"; the specified file name will be used exactly (without appending a suffix) for the image file.

--eccfile <file name>: Name of error correction file

The preset is "medium.ecc"; the specified file name will be used exactly (without appending a suffix) for the error correction file.

--list: shows drives available under ASPI

This option lists all CD/DVD drives which are accessible through the ASPI layer of Windows:

user@windows> dvdisaster -l
dvdisaster-0.55 Copyright 2004,2005 Carsten Gnoerlich.
[... remainder of the GPL announcement ...]

List of ASPI CD/DVD drives:

1: (H:) ATAPI DVD+RW 8X4X12 B2K7
2: (I:) MYDRIVE CD-R MY-401610X 1.05

To force ASPI usage over SPTI, refer to the drive by the
above numbers (use 1:, 2:,... instead of C:, D:,...)

Per default, dvdisaster only uses ASPI when accessing the drive via SPTI is not possible. Usage of the ASPI layer can be forced by specifying the drive by its number rather than by its letter. To read in a disc using ASPI and the "MYDRIVE" unit from the above example, you would therefore enter:

user@windows> dvdisaster -d 2: -r

Other Options.

--cache-size <size in MB>: Specify the cache size

dvdisaster optimizes access to the image file by maintaining its own cache during the calculation of error correction files. The cache size can be between 1 and 512 MB. The preset is 32MB, which should be suitable for most systems.

This option is only effective during the --create action.

--dao: Assumes "disk at once" medium

Media written in "TAO" ("track at once") mode contain two sectors with pseudo read errors at the end. By default these two errors are ignored by dvdisaster.

If you are extremely unlucky to have a "DAO" ("disc at once") medium with exactly one or two real read errors at the end, use the "--dao" option to have these read errors handled correctly.

-j / --jump <number of sectors>: Skip sectors after a read error

The given number of sectors will be skipped when an unreadable sector is encountered. This saves some time when reading defective media and reduces mechanical wear on the drive.

The number of skipped sectors must be a multiple of 16. The following settings are of particular interest:

  • Skipping 1024 sectors:

    Gives a quick overview of the amount of media damage, but will usually read too few data for a successful image recovery.

  • Skipping 16 (default) or 32 sectors:

    Good trade-off between time spent for reading and data retrieved for recovering the medium image.

This option will only be effective when reading the media image for the first time; e.g. when starting without an image file or when completing a truncated image. When filling in previously unread sectors of an existing image, no sectors will be skipped.

-n / --redundancy: Set error correction code redundancy

The redundancy specifies the percentage of correctable errors per ECC block.

Since read errors are not evenly distributed over all ECC blocks, a redundancy of x percent does not imply that also the same percentage of defective sectors can be recovered. Usually the number of recoverable media sectors is lower.

For the Reed-Solomon code used in dvdisaster the redundancy also gives an approximation of the error correction file size: As an example, when encoding a 4GB image using a 25% redundancy the resulting error correction file will be about 1GB in size.

The are several ways of specifying the redundancy:

  1. "normal" or "high"

    Enter "normal" or "high" to get the following redundancies:

    ValueRedundancy
    -n normal14.3%
    -n high33.5%

    These values invoke an optimized version of the encoder which saves some time over encoding with arbitrary redundancy values.

    The default value is "normal".

  2. Percentage values

    Specifying the redundancy by percent is also possible:

    ExampleValid range
    -n 25%3.2% to 64.5%

    For technical reasons the actual redundancy can deviate a few tenths from the specified value.

    Please note that the error correction capability hinges on the statistical distribution of read errors. Therefore small percentage changes in the redundancy usually do not make a huge difference - only changes of 5 percentage points and more will have a recognizable effect on the error correction.

  3. Correctable errors per ECC block

    When no redundancy unit is given, the value is interpreted to create a (255, 255-x)-Reed-Solomon code:

    ExampleValid range
    -n 328 to 100

    This combines 255-x media sectors into one ECC block. Within this block up to x unreadable sectors can be recovered.

    By the way:     Redundancy in percent = (100 * x) / (255 - x)

  4. Maximum size of error correction file

    The last (and most dangerous) way of specifying redundancy is to give the size of the error correction file:

    ExampleValid range
    -n 50m3.2% to 64.5% of image size

    In this case dvdisaster will choose a suitable redundancy setting so that the overall size of the error correction file does not exceed the given limit (in mega bytes).

    Using this option is prone to shooting oneself into the foot: When using the same setting for images of vastly different size, more error correction information is allotted to the smaller images and less to the larger ones. Doing it the other way around would be much better.

Copyright 2004,2005 Carsten Gnörlich.
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.