dvdisaster man page

DVDISASTER — data loss/scratch/aging protection for optical media


dvdisaster [-r|-c|-f|-s|-t[q]|-u] [-d device] [-p prefix] [-i image] [-e eccfile] [-o file|image] [-a method-list] [-j n] [-n n%] [-m n] [-v] [-x n] [--adaptive-read] [--auto-suffix] [--cache-size n] [--dao] [--defective-dump d] [--driver d] [--eject] [--encoding-algorithm n] [--encoding-io-strategy n] [--fill-unreadable n] [--ignore-fatal-sense] [--ignore-iso-size] [--internal-rereads n] [--medium-info] [--old-ds-marker] [--prefetch-sectors n] [--raw-mode n] [--read-attempts n-m] [--read-medium n] [--read-raw] [--resource-file n] [--speed-warning n] [--spinup-delay n]


DVDISASTER provides a margin of safety against data loss on optical media caused by scratches or aging media. It creates error correction data which is used to recover unreadable sectors if the disc becomes damaged at a later time.

Typical Usage

dvdisaster -d /dev/hdc -s
Scans the medium in drive /dev/hdc for errors.
dvdisaster -d /dev/hdc -i medium.iso -r
Reads an image from drive /dev/hdc into the file medium.iso.
dvdisaster -d /dev/hdc -i medium.iso --read-raw -r
Creates an image as described above. Each sector's integrity is verified by using its EDC and L-EC raw data. Only possible for CD media; otherwise the --read-raw option is silently ignored.
dvdisaster -d /dev/hdc -i medium.iso --read-attempts n-m -r
Creates an image as described above. Defective sectors are retried at least n times and at most m times. Recovery of defective CD media may improve when combined with --read-raw.
dvdisaster -d /dev/hdc -i medium.iso -e corr.ecc -r --adaptive-read
Uses the adaptive reading strategy to read an image from drive /dev/hdc into the file medium.iso. Reading will stop when enough data has been gathered to repair the image using the error correction file corr.ecc.
dvdisaster -i medium.iso -e corr.ecc -c
Creates an error correction file corr.ecc for the image medium.iso.
dvdisaster -i medium.iso -mRS02 -n 350000 -c
Augments the image medium.iso with error correction information, expanding the image to no more than 350000 sectors. If -n is omitted the image will be expanded to the smallest possible medium size (CD, DVD, DVD9). Note the missing blank between -m and RS02.
dvdisaster -i medium.iso -e corr.ecc -f
Repairs the image file medium.iso using the error correction file corr.ecc.
dvdisaster -i medium.iso -e corr.ecc -t
Verifies the image medium.iso with information from the error correction file corr.ecc.
Omit the -e corr.ecc options when working with augmented images in the examples above.


Action selection (at least one action must be specified):

-r, --read
Read the medium image to hard disc. Use -rn-m to read a certain sector range, e.g. -r100-200.
-c, --create
Create .ecc information for the medium image.
-f, --fix
Try to fix medium image using .ecc information.
-s, --scan
Scan the medium for read errors.
-t, --test, -tq, --test=q
Test integrity of the .iso and .ecc files. When the "q" option is given, only information is output which can be gathered without fully scanning the files.
-u, --unlink
Delete .iso files (when other actions complete).

Drive and file specification:

-d, --device device
read from given device (default: /dev/cdrom).
-p, --prefix prefix
prefix of .iso/.ecc file (default: medium.* ).
-i, --image imagefile
name of image file (default: medium.iso).
-e, --ecc eccfile
name of parity file (default: medium.ecc).
-o, --ecc-target file|image
Specifies whether RS03 should create error correction files or augmented images (default: image).
Tweaking options (see manual before using!):
-a, --assume method1,method2,...

Assumes that the image is augmented with one of the given methods. This enables an exhaustive search for method signatures and might be helpful for detecting error correction information on damaged media. If the image does not contain the specified error correction information, a significant amount of CPU and I/O time may be wasted.

Possible values are RS02 and RS03.

-j, --jump n
jump n sectors forward after a read error (default: 16).
-n, --redundancy n[unit]

Error correction data redundancy. Allowed values depend on the method:

RS01- and RS03-error correction files
-n x  creates error correction file with x roots.
-n x% creates error correction file with x percent redundancy.
-n xm creates error correction file of approx. x MiB size.

RS01 error correction flles additionally support:
-n normal - optimized codec for 14.3% redundancy/32 roots.
-n high   - optimized codec for 33.5% redundancy/64 roots.

RS02 images:
-n CD   augments image suitable for CD media.
-n DVD  augments image suitable for DVD media.
-n DVD9 augments image suitable for DVD9 media.
-n BD   augments image suitable for BD media.
-n BD2  augments image suitable for two layered BD media.
-n x    augments image using approx. x sectors in total.
-n x%   augments image with approx. x% redundancy.
-n xr   augments image with x roots error correction data.

RS03 images:
Setting the redundancy is not possible due to constraints in the format. The codec will automatically choose the size of the smallest fitting medium.

-m, --method n

lists/selects error correction methods (default: RS01).

Possible values are RS01 and RS02.

-v, --verbose n%
more diagnostic messages
-x, --threads n
Use n threads for encoding with the RS03 method. Use 2 or 4 threads for 2 or 4 core processors respectively. On larger machines save one core for housekeeping; e.g. use 7 threads on an eight core machine.
use optimized strategy for reading damaged media.
automatically add .iso and .ecc file suffixes.
--cache-size n
image cache size in MiB during -c mode (default: 32MiB).
assume DAO disc; do not trim image end.
--defective-dump d
Specifies the sub directory for storing incomplete raw sectors.
--driver d (Linux only)
Selects between the sg (SG_IO) driver (default setting) and the older cdrom (CDROM_SEND_PACKET) driver for accessing the optical drives. Both drivers should work equally well; however the cdrom driver is known to cause system failures on some ancient SCSI controllers. The older cdrom driver was the default upto and including dvdisaster 0.72.x; if the now pre-selected sg driver changes something to the worse for you please switch back to the older driver using --driver=cdrom.
eject medium after successful read.
--encoding-algorithm [32bit|64bit|SSE2|AltiVec]

This option affects the speed of generating RS03 error correction data. dvdisaster can either use a generic encoding algorithm using 32bit or 64bit wide operations running on the integer unit of the processor, or use processor specific extensions.

Available extensions are SSE2 for x86 based processors and AltiVec on PowerPC processors. These extensions encode with 128bit wide operations and will usually provide the fastest encoding variant. The SSE2/AltiVec algorithms will automatically be selected if the processor supports them and nothing else is specified by this option.

--encoding-io-strategy [readwrite|mmap]

This option controls how dvdisaster performs its disk I/O while creating error correction data with RS03. Try both options and see which performs best on your hardware setting.

The "readwrite" option activates dvdisaster's own I/O scheduler which reads and writes image data using normal file I/O. The advantage of this scheme is that dvdisaster knows exactly which data needs to be cached and preloaded; the disadvantage is that all data needs to be copied between the kernel and dvdisaster's own buffers. Usually, this I/O scheme works best on slow storage with high latency and seek times; e.g. on all storage involving spinning platters. The "mmap" option uses the kernel's memory mapping scheme for direct access to the image file. This has the advantage of minimal overhead, but may be adversely affected by poor caching and preloading decisions made by the kernel (since the kernel does not know what dvdisaster is going to do with the data). This scheme performs well when encoding in a RAM-based file system (such as /dev/shm on Linux) and on very fast media with low latency such as SSDs.

--fill-unreadable n
fill unreadable sectors with byte n
continue reading after potentially fatal error condition.

By default getting the image size from the ISO/UDF filesystem is preferred over querying the drive as most drives report unreliable values.

However in some rare cases the image size recorded in the ISO/UDF filesystem is wrong. Some Linux live CDs may have this problem. If you read back the ISO image from such CDs and its md5sum does not match the advertised one, try re-reading the image with this option turned on.

Do not blindly turn this option on as it will most likely create sub optimal or corrupted ISO images, especially if you plan to use the image for error correction data generation.

--internal-rereads n

internal read attempts for defective CD media sectors (default: -1)

The drive firmware usually retries unreadable sectors a few times before giving up and returning a read error. It is more efficient to set this to 0 or 1 and manage read attempts through the --read-attempts parameter. Most drives ignore this setting anyways. Use -1 to leave the drive at its default setting.

Prints information about the currently inserted medium.

Marks missing sectors in a manner which is compatible with dvdisaster 0.70 or older.

The default marking method is recommended for dvdisaster 0.72 and later versions. However images marked with the current method can not be processed with older dvdisaster versions as missing sectors would not be recognized in the image.

Do not process the same image with different settings for this option.

--prefetch-sectors n

number of sectors to preload during RS03 de-/encoding (default: 32)

Using a value of n uses approx. n MiB of RAM.

--raw-mode n

selects raw reading mode for CD media (default: 20)

The recommended mode is 20, which makes the drive apply its built-in error correction to the best possible extent before transferring a defective sector. However some drives can only read defective sectors using mode 21, skipping the last stage of the internal error correction and returning the uncorrected sector instead.

--read-attempts n-m
attempts n upto m reads of a defective sector.
--read-medium n
read the whole medium up to n times.
performs read in raw mode if possible.
--resource-file n
Specifies the path to the configuration file (default: $HOME/.dvdisaster)
--speed-warning n
print warning if speed changes by more than n percent.
--spinup-delay n
wait n seconds for drive to spin up.

See Also

Documentation DVDISASTER is documented by its own manual, installed in /usr/share/doc/dvdisaster/html


DVDISASTER was written by Carsten Gnoerlich <carsten@dvdisaster.com>.

This manual page was written by Daniel Baumann <daniel.baumann@panthera-systems.net>, for the Debian project (but may be used by others). Since version 0.70 it is maintained by Carsten Gnoerlich.


protection for optical media 0.79.5 2015-12-16