DVDISASTER(1)

πŸ“¦
version 0.79.10 Β· 6 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

okay bestie, welcome to dvdisaster(1) β€” protection for optical media πŸ’– this whole page is giving "save your precious discs from the void" and I'm lowkey obsessed. no cap.

πŸ’– NAME πŸ’–

dvdisaster β€” data loss/scratch/aging protection for optical media ✨

✨ SYNOPSIS ✨

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] [--no-
progress] [--old-ds-marker] [--prefetch-sectors n] [--raw-mode n]
[--read-attempts n-m] [--read-medium n] [--read-raw] [--regtest]
[--resource-file n] [--speed-warning n] [--spinup-delay n] [--version]

🌸 DESCRIPTION 🌸

so basically, 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. periodt. πŸ’…

πŸŽ€ TYPICAL USAGE πŸŽ€

  • dvdisaster -d /dev/hdc -s β€” scans the medium in drive /dev/hdc for errors. like a little health check for your disc 🩺✨
  • dvdisaster -d /dev/hdc -i medium.iso -r β€” reads an image from drive /dev/hdc into the file medium.iso. it's giving backup main character energy πŸ’ΎπŸ‘‘
  • 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. she's quiet about it, no drama πŸ™ˆ
  • 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. so if your CD is being extra, try this combo πŸ”₯
  • 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. it's literally smart enough to know when to stop, iconic 🧠✨
  • dvdisaster -i medium.iso -e corr.ecc -c β€” creates an error correction file corr.ecc for the image medium.iso. making a lil safety net, we love to see it πŸ•ΈοΈπŸ’–
  • 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. yes bestie, no space, that's not a typo, it's the vibe πŸ’…
  • dvdisaster -i medium.iso -e corr.ecc -f β€” repairs the image file medium.iso using the error correction file corr.ecc. glow-up time for your broken image πŸ”§βœ¨
  • dvdisaster -i medium.iso -e corr.ecc -t β€” verifies the image medium.iso with information from the error correction file corr.ecc. trust but verify, periodt βœ…
NOTE: Omit the -e corr.ecc options when working with augmented images in the examples above. 🫢

πŸ”§ OPTIONS πŸ”§

okay bestie, here's the menu β€” and yes, you gotta pick at least one action. At least one action must be specified, that's not a vibe suggestion, that's a rule. πŸ’…

🎬 Action selection

  • -r, --read β€” reads the medium image straight to hard disc. Want just a slice? Use -rn-m to read a certain sector range, like -r100-200. 🍰
  • -c, --create β€” makes the .ecc information for the medium image. ✨
  • -f, --fix β€” tries to fix the medium image using the .ecc information. it's giving repair era 🩹
  • -s, --scan β€” scans the medium for read errors. πŸ”
  • -t, --test, -tq, --test=q β€” tests the integrity of the .iso and .ecc files. When the "q" option is given, only information which can be gathered without fully scanning the files gets output. lowkey lazy mode but make it efficient 😌
  • -u, --unlink β€” deletes .iso files (when the other actions complete). bye babe πŸ‘‹

πŸ’Ύ Drive and file specification

  • -d, --device device β€” read from the given device (default: /dev/cdrom).
  • -p, --prefix prefix β€” prefix of the .iso/.ecc file (default: medium.*).
  • -i, --image imagefile β€” name of the image file (default: medium.iso).
  • -e, --ecc eccfile β€” name of the parity file (default: medium.ecc).
  • -o, --ecc-target file|image β€” says whether RS03 should create error correction files or augmented images (default: image).

πŸŽ›οΈ Tweaking options

⚠️ bestie. read the manual before using these. that's not me being dramatic, the original literally says see manual before using! β€” so like, go read it. fr fr.
  • -a, --assume method1,method2,... β€” assumes 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. The 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 BDXL3 augments image suitable for three layered BDXL 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. the format said no πŸ’€
  • -m, --method n β€” lists/selects error correction methods (default: RS01). Possible values are RS01 and RS02.
  • -v, --verbose n% β€” more diagnostic messages. she's chatty πŸ’¬
  • -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. ✨
  • --adaptive-read β€” use optimized strategy for reading damaged media.
  • --auto-suffix β€” automatically add .iso and .ecc file suffixes. so convenient πŸŽ€
  • --cache-size n β€” image cache size in MiB during -c mode (default: 32MiB).
  • --dao β€” 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 up to 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 β€” eject medium after successful read. dramatic exit, love that πŸ’…
  • --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. Useful for processing images which have been created by other tools. For example, ddrescue fills unreadable sectors with zeros; therefore --fill-unreadable=0 should be used.
🚨 Please note: Sparse files can not be processed with dvdisaster.
  • --ignore-fatal-sense β€” continue reading after potentially fatal error condition. brave. risky. iconic. πŸ™ˆ
  • --ignore-iso-size β€” 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.

  • --medium-info β€” prints information about the currently inserted medium. πŸ‘€
  • --no-progress β€” suppresses the progress percentage indicator.
  • --old-ds-marker β€” 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 up to m reads of a defective sector.
  • --read-medium n β€” read the whole medium up to n times.
  • --read-raw β€” performs read in raw mode if possible.
  • --regtest β€” modifies some outputs for better processing with the regression test scripts. πŸ€–
  • --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. give her a sec, she's waking up β˜•
  • --version β€” print version number and some configuration information. πŸ’–

πŸ‘€ SEE ALSO πŸ‘€

Documentation β€” DVDISASTER is documented by its own manual, installed in /usr/share/doc/dvdisaster/manual.pdf. go read it bestie, it's right there 🫢


πŸ‘‘ AUTHOR πŸ‘‘

DVDISASTER was written by Carsten Gnoerlich <carsten@dvdisaster.org>. Since version 0.79.7 it is maintained by the dvdisaster development team <support@dvdisaster.org>.

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 was updated by Carsten Gnoerlich and is currently maintained by the dvdisaster development team.


and that's the whole page, babes πŸ’– this lil write-up is version 0.79.7, dated 2018-05-14, and it's the DVDISASTER(1) manual β€” go back up to part 1 if you skipped it, no skipping βœ¨πŸŽ€πŸ¦‹