If you’ve been around for a while, taking in the wonders of “personal computing” as it happened, then you’ll probably also have collected lots of disks with bits on them over the years. It started with floppies, from 8” to 3.5”, and then moved quickly to CD-ROMs and data DVD’s.
Piles of them. Boxes and boxes. As part of some magazine, or even being a magazine.
Here at JeeLabs there were over 500 of them, and that was after a large cleaning session about a decade ago! Plus 200 more, with personal backups burned onto them. Innumerable copies of copies in some cases, but what’s the point of trying to sort it all out if you’re not going to need it (or even miss it) in the long run?
One way to deal with this - in a very packrat-like “never throw anything away!” fashion - is to copy all those disks to a hard disk as “.iso” files. Which can then easily be mounted when needed, or used to re-create the original CD or DVD, even.
As it so happens, CD/DVD drives are becoming rare at JeeLabs, though.
But not to worry, this very first Mac Mini from 2005 was still sitting around, an old PowerPC G4 with 512 MB RAM and an 80 GB HD - unused, collected from someone who has moved on since:
A perfect CD/DVD ripper. It now runs the latest Debian 8.2 (for 32-bit PPC) and is in fact quite usable in today’s terms, with WiFi and wired ethernet both working fine - great for SSH use!
The reason for doing this is ddrescue, a wonderful tool which reads in CDs and DVDs while trying very hard to keep going despite any disk I/O errors. At the end, a log file can be saved, which describes exactly which parts are fine and which failed. Command-line use is trivial:
ddrescue -b2048 /dev/cdrom d333.iso d333.log
Here is an example log file with some read errors:
# Rescue Logfile. Created by GNU ddrescue version 1.19
# Command line: ddrescue -b2048 /dev/cdrom d333.iso d333.log
# Start time: 2016-01-05 01:07:28
# Current time: 2016-01-05 01:17:15
# Scraping failed blocks... (forwards)
# current_pos current_status
0x206D4800 /
# pos size status
0x00000000 0x1FDA0000 +
0x1FDA0000 0x00934800 -
0x206D4800 0x00CC8000 /
0x2139C800 0x00000800 -
0x2139D000 0x05A3D000 +
This first Mac Mini has only 2 USB ports (which were relatively new in 2005), but it does include a FireWire-400 port, and even a modem! - BBS anyone? - hmm, too retro, let’s not go there…
The rest is pretty straightforward: add 2 large USB drives, one as main work disk, the other as backup (to be stored off-line elsewhere). And then just rip away - it takes about 4 minutes to read a CD-ROM and 15 minutes to read a single-layer DVD.
Unless there are read errors, that is. Then, reading an entire disk can easily take up to an hour (or even longer with DVDs), as the drive retries and then ddrecue
itself also retries. It’s quite clever, reading from the other direction (i.e. a different head motion) and reading increasingly smaller pieces to attempt to salvage as much as possible. And it can be interrupted / restarted.
Hopefully, this total re-rip of all the disks to a modern 2.5” 500G HD will last a long time. The backup HD is an old noisy 3.5” 500G HD, but that’s ok, it’s only meant to be used as last resort.
About 5% of the CD-ROMs had read errors. Many of them are around 10 years old. The lesson? Never use those gold-with-blue-green CD-ROMs again! Around 8 of 10 failed disks were of that kind. And when they failed, there were non-recoverable read errors in many places on the disk!
All the private backup disks will be cut in two, with each half disposed of as house waste at different times (CD/DVD garbage is not collected separately in the Netherlands, alas).
And that’s basically it. With 80% of those magazine CDs discarded right away, the remaining CDs and DVDs have now almost completely been transferred, and are ready for disposal. The result: about 450 GB of data, served via Samba on the network, with a backup disk kept off-site in case this server disk ever starts behaving badly (as all disks do, eventually). Goodbye CDs!