Accurate ISO files from CDs

It's quite common to want to make a mountable ISO file from a CD so that you don't have to deal with the hassle of the physical disks. I do this a lot for CDs that come with hardware (e.g. motherboard driver CDs). It's certainly more convenient than having to locate that elusive disk when you're struggling with an old motherboard or sound card.

There is a lot of information given in the references below about the choices behind the best technique. Here, I summarise the a reliable technique for producing verifiable copies.

The technique

Begin by finding out the blocksize and count for your source disk:

james@eastlight:~> isoinfo -d -i /dev/cdrom
CD-ROM is in ISO 9660 format
System id: 
Volume id: DEFAULT
Volume set id: 
Publisher id: 
Data preparer id: 
Application id: NERO BURNING ROM
Copyright File id: 
Abstract File id: 
Bibliographic File id: 
Volume set size is: 1
Volume set sequence number is: 1
Logical block size is: 2048 This is the blocksize (bs)
Volume size is: 98891 This is the count
NO Joliet present
NO Rock Ridge present

If you happen to be using Mageia/Mandriva, isoinfo is found in the cdrkit-isotools package.

Next, copy the image from the CD to the hard drive using the pre-determined parameters. if = input file and of = output file:

james@eastlight:~> dd if=/dev/cdrom bs=2048 count=98891 of=~/output.iso
98891+0 records in
98891+0 records out
202528768 bytes (203 MB) copied, 75.1607 s, 2.7 MB/s

Finally, compare the md5sum of both the original disk and the iso file to ensure an accurate copy:

james@eastlight:~> dd if=/dev/cdrom bs=2048 count=98891 | md5sum
c14949f4c02633651da7febac335d7f8  -
james@eastlight:~> cat ~/output.iso | md5sum
c14949f4c02633651da7febac335d7f8  - A match so a good copy

If you ever need to produce a physical CD from your image in future, any good CD burning program should be able to do the task.

A complete description of the process
Detailed information on how to perform coasterless CD burning on linux

First published on 27th January 2013 and last modified on 30th January 2013.