dvdisaster Version 0.63
To the Internet version Deutsch      English
Contents

Overview
Examples and screen shots
Download
Command line mode
·Using the command line
·Creating a medium image
·Generating error correction files
·Scanning the medium for errors
·Recovering a medium image
·Choosing alternative drives and file names
·Performing several actions within one program call
·Hints for storing the error correction files
·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.

   --adaptive-readuse adaptive strategy for reading damaged media
   --auto-suffixautomatically add .img and .ecc file suffixes
   --cache-size    Cache size during creation of the error correction file
--daoAssumes "disk at once" medium
--fill-unreadable [n]fill unreadable sectors with given byte
-j / --jumpSkip sectors after a read error
-n / --redundancySet error correction code redundancy
--speed-warning [n]   Warns when reading speed drops a certain amount
--spinup-delay [n]   Gives drive time to spin up
--split-files   Splits image into files <= 2GB

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 as long as --auto-suffix is not specified also.

↑

--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 as long as --auto-suffix is not specified also.

↑

--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.63 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.

--adaptive-read: Use adaptive strategy for reading damaged media

Use this option together with -r/--read to employ an adaptive reading strategy. Readable areas of a damaged medium will be located and processed more quickly than with the default linear strategy.

This strategy is particularly effective when the error correction file made for the respective medium is available. In that case dvdisaster will stop reading as soon as enough information for recovering the medium image has been collected. This may shorten the processing time by as much as 90 percent compared with a full reading attempt.

If no error correction file is specified, adaptive reading stops when no unreadable areas larger than a certain value remain in the image. The respective threshold is set using the -j/--jump option.

↑

--auto-suffix: automatically add .img and .ecc file suffixes

When this option is given, file names specified by the -i/--image- or -e/--eccfile option will be automatically appended with ".img" or ".ecc" respectively if no other file name extension is already present.

↑

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

dvdisaster optimizes access to the error correction file by maintaining its own cache. The cache size can be between 1 and 2048 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.

↑

--fill-unreadable <fill byte>: fill unreadable sectors with given byte

dvdisaster marks unreadable sectors with a special filling sequence which is very unlikely to occur in undamaged media.
In other data recovery software it is common to fill unreadable sectors with a certain byte value. To allow interoperability with such programs, you have to specify the byte value they are using:

  • 0xb0 (176 decimal): for compatibility with h2cdimage published by "c't", a German periodical. H2cdimage ?
  • 0x00 (0 decimal): using zero filling is highly discouraged.
    Most media contain regular zero filled sectors. At a later error correction pass, these can not be told apart from unreadable sectors if zero filling is used.
↑

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

This option affects the treatment of unreadable sectors:

  • when using the linear reading strategy (default setting), the given number of sectors will be skipped after a read error.
  • the adaptive reading strategy will terminate when no unreadable areas are left in the image which are larger than the given value.
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.

During linear reading this option will only be effective in the first pass; 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.

↑

--speed-warning [n]: Warns when reading speed drops a certain amount

Prints a warning when the reading speed changes by more than n percent. This is useful for recognizing a beginning decay in media quality. If the optional value [n] is omitted, a preset of 10 percent is used.

This option is only effective in command line mode.

↑

--spinup-delay [n]: Gives drive time to spin up

If the value is greater than zero, dvdisaster will issue the drive a spinup command and wait for the given time before actually carrying out a reading operation. This avoids downspikes at the start of the reading curve and spurious warnings when the --speed-warning option is used.
If the optional value [n] is not given, dvdisaster will wait for 5 seconds.

↑

--split-files: Splits image into files <= 2GB

This function allows the creation of large images on file systems which are limited to 2GB per file (e.g. FAT from Windows). The image is spread over files "medium00.img", "medium01.img", etc. instead of using a single "medium.img" file. The file name must still be specified as "medium.img" using the --image option; the numbering will be automatically done when this switch is active.

An image can be spread over at most 100 files, so it can be as large as 200GB in this mode. Error correction files are still limited to 2GB; this will be fixed in one the next versions.

Access to a split image is slower then in the single file case, so this mode should be avoided if possible.

↑

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