Note that an attempt to copy the entire disk image using cp may omit the final block if it is an unexpected length; dd will always complete the copy if possible.
Using the dd command allows for a "byte-exact" copy of the specified input. If the dd command is used on a disk rather than the cdrom, it will be able to copy previously deleted files which cannot be seen by the cp command from the filesystem interface. But since you are using /dev/cdrom as the input (which doesn't have the same structure as a disk), there are no previously deleted files on the interface, so the commands should work exactly the same.
For copying CDs then both are fine although I generally expliciatlly set the block size by doing
For other block devices then cp might not work if the block size on the device is unexpected.
From http://en.wikipedia.org/wiki/Dd_(Unix)
Using the dd command allows for a "byte-exact" copy of the specified input. If the dd command is used on a disk rather than the cdrom, it will be able to copy previously deleted files which cannot be seen by the cp command from the filesystem interface. But since you are using /dev/cdrom as the input (which doesn't have the same structure as a disk), there are no previously deleted files on the interface, so the commands should work exactly the same.
for more information: http://en.wikipedia.org/wiki/Dd_(Unix)
There's effectively no difference, some very minor caveats aside.
Both
dd
andcp
will read all blocks from the input source (the/dev/cdrom
block device) and copy the whole CD-ROM to the destination file.dd
is however the "right" way of doing it.