Create an ISO Image from a source CD or DVD under Linux
This brief article will describe the creation of a proper ISO image from a CD or DVD.
If an ISO image has been created with the help of the dd (diskdump) command from a CD or DVD then the ISO file created thereby may have an MD5 checksum, which is different than the original ISO file that was used for burning the source CD or DVD. A pair of zero data blocks at the end of the CD or DVD are responsible for this. Such an ISO image can be used without any problems, however testing the MD checksum against the source disk cannot be done (the download servers that provide ISO image for Linux, for example, typically also provide MD5 checksums for testing).
Using the following procedure, exactly the same ISO image that was used for burning the CD or DVD can be read from a CD or DVD:
1. Reading the block size and the volume size:
[[email protected] ~]# isoinfo -d -i /dev/cdrom | grep -i -E 'block size|volume size' Logical block size is: 2048 Volume size is: 327867
2. Running dd with the parameters for block size and volume size:
[[email protected] ~]# dd if=/dev/cdrom of=test.iso bs=<block size from above> count=<volume size from above>
Note: When reading the ISO image, the following command can be used in a second console for viewing the current progress status (requires root rights):
killall -USR1 dd
With the of watch, this call can also be executed each second:
watch -n 1 killall -USR1 dd
Thereby, dd will display the progress status as follows:
[email protected]:~/Downloads/isos$ dd if=/dev/sr0 of=cdimage.iso bs=10M 1+0 records in 0+0 records out 0 bytes (0 B) copied, 10.2447 s, 0.0 kB/s 2+0 records in 1+0 records out 10485760 bytes (10 MB) copied, 16.3769 s, 640 kB/s 3+0 records in 2+0 records out 20971520 bytes (21 MB) copied, 22.3123 s, 940 kB/s 5+0 records in 4+0 records out 41943040 bytes (42 MB) copied, 33.6603 s, 1.2 MB/s