The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

CD Longevity, Lack Thereof

Remember when they said CDs would last for a hundred years?

Some years back, a bit o’ PC shuffling around here spat out a 60 GB hard drive and brought the Big Box of CDs up from the fireproof safe at the same time. A little mental math: hey, why not?

Turns out that all 130+ of my “purchased” CDs, mostly with Windows programs & device drivers, add up to 42 GB of ISO images. Creating ISOs is trivial with Linux:

dd if=/dev/cdrecorder of=image.iso

and you’re done. Depending on your system, you’ll get faster transfer with a bigger blocksize: bs=1M is more than enough.

I used the two upstairs PCs as readers, with the hard drive installed in the milling-machine PC downstairs. It took the better part of a day to think up file names and feed CDs into the slots. Typical speeds were 3 MB/s, dropping dramatically with read retries: a minute or two or three per CD. The average CD is half-full.

I wrote a trivial script to do the tedious work: loaded the CD, issued the dd command, computed MD5 checksums on the raw CD data and the stored file, and ejected the CD. The checksums always matched except when the disc had read errors, but gave me confidence I wasn’t losing any bits along the way, because the CD got read twice and any marginal sectors that were fixed-in-error would pop out.

One CD was completely unreadable because of a nasty scratch. Another, never used, turned out to be cracked in the sealed envelope.

What’s scary is the number of previously good, visibly undamaged, used-once-or-twice CDs that couldn’t be read in at least one drive. I don’t abuse the things and I -know- some of these haven’t seen the light of day more than once or twice.

Dozens (I lost count) weren’t readable in at least one drive and many weren’t readable in three drives. If you happened to have two of those drives in your one-and-only PC you’d be sunk without a trace.

I had a visibly undamaged CD that couldn’t be read in any of the four drives, although rubbing it down with toothpaste (got nothing to lose!) persuaded it to play in the CD burner. Perhaps a minute scratch? Dunno, but if that CD was damaged, then you can’t even look at ’em without damaging the things.

The most reliable drive was a CD-only burner. The DVD-ROM and DVD-burner drives could read most discs, but fell flat on others. There’s no obvious difference between a DVD+(only) burner and the DVD+/- burners.

Bottom line: maybe a quarter of those spendy pressed commercial CDs on your shelf won’t work when you really need to reinstall those programs. Should you happen to do an installation that doesn’t read the part of the CD with rotten bits, then you’ll never notice. I was copying the entire bit stream off the disc, so every single sector had to pass muster. How lucky do you feel?

If you think you’ll ever need ’em again, get ’em on a hard drive now. Then you can burn ’em as needed. Oh, yeah, put the serial number right in the file name, too, it’ll come in handy.

Hundred years, ptui!

Back then I didn’t know about GNU ddrescue. Now, I do. Life is good. Well, better.

Update: Nowadays, I keep everything on a 500 GB drive in the file server, which does a daily backup to a 500 GB external drive. Once a month, more or less, I dump the contents of the daily backup drive to a similar drive that lives in the fireproof safe.

Tip: mounting an ISO is easier than finding & mounting the CD. They’re served up over an NFS share mounted locally at /mnt/diskimages, so it goes a little something like this:

mount -o loop,ro /mnt/diskimages/ISOs/name-of-CD.iso /mnt/loop/

and away you go. The ro option keeps you from screwing things up with an inadvertent write.

That doesn’t work in Windows, more’s the pity, but you can find GUI utilities that more-or-less do the same thing from a SAMBA share. Not that I care all that much.