Why didn’t I know about this before?
I’ve started making the extra content CDs that used to be handled by the office. They were doing disk copy using Roxio and constantly rebooting when the CDR drive died and took windows with it.
The first thing I did was try to rip the master CDs into ISO images using dd, but the MD5 values never matched and the size of the ISO would vary. Google turned up this site [troubleshooters.com] and an article by Steve Litt that explains the best way to handle failed dd copies. He wrote a script called rawread that I borrowed from to make my copies.
The first step is to call isoinfo:
isoinfo -d -i /dev/cdrom
Grab the Logical Block Size and the Volume size and feed it to dd. The Logical Block size is almost always 2048:
dd if=/dev/cdrom of=gold_master_disk1.iso bs=2048 count=[insert Volume Size here]
That way dd only tries to copy the ISO data, and not the whole CD. In my case each CD was only ~50MB so it cut down a lot of time. And no more “Input/Output error” from dd after running for several minutes.