Automatically migrated from Gitolite
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Sven Slootweg 981e171998 License information 10 years ago
.gitignore .gitignore created by brackets-git extension 10 years ago License information 10 years ago Initial commit 10 years ago


A small utility for making archival copies of CDs and DVDs under Linux. It runs in a terminal, and is meant for batch operation. Enter a disc name, pop in a disc, wait, take out the disc, rinse repeat. The script will continue asking for new discs until you hit ctrl+C.

There's a lot of duct tape in here, but it generally works. You've been warned.

Pull requests welcome, but please keep in mind that the purpose of this script is archival-quality copies where possible.

Supported disc types

  • Data CD-ROM
  • Mixed-content CD-ROM (eg. data + audio)
  • Audio-DVD
  • Video-DVD
  • Data DVD-ROM

Unsupported disc types

  • Audio-CD (use a secure ripper such as Rubyripper for this!)
  • Bluray
  • HD-DVD
  • Other non-CD/DVD disc types


You must have the following installed:

  • Python
  • cdrdao
  • ddrescue (not dd_rescue!)
  • UDisks (shipped by most distributions)
  • eject (shipped by most distributions)
  • udev (available in recent Linux kernels)


python DEVICE TARGET [--ddrescue]

  • DEVICE: The source device to image from. This will be something like /dev/sr0 or /dev/cdrom.
  • TARGET: The target directory to place images in. Each image will be named according to the name you enter for that disc.
  • --ddrescue: Optional flag to force the script to use ddrescue, even for (potential mixed-content) CD-ROMs. Useful for recovering damaged CD-ROMs. This flag must always be after the device and target!


WTFPL, of course. Or CC0 if you really can't handle the word 'fuck'.


This is duct tape. It ties together a bunch of existing utilities to automate your imaging. There is no guarantee that it'll work, or even that it'll produce valid images (although it will certainly try). Check the integrity of your images, if you care about your data!

The script is quite noisy; it doesn't try to understand output from utilities, and just passes it through wholesale. All messages originating from the script itself are prefixed with ##.

Don't be alarmed if you get mounting/unmounting/eject failures; to avoid race conditions, the script is quite aggressive in making sure everything is unmounted/ejected when necessary. If you get errors, that usually just means that the disc was already unmounted or ejected.