Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

When I was using DOS and Windows I've seen quite a selection of tools to check optical disks for readability and benchmark an optical drive itself. Most of them were even visualising the results in form of a pretty chart.

Are there any such for GNU/Linux OSes?

I'd prefer to have a full-featured visual GUI tool, but for the particular case I've got now, I just need to check if my CD drive can read every byte of a particular heavily-scratched CD-RW disk.

share|improve this question
add comment

5 Answers

There is also the command-line GDDRescue (GNU Data Rescue) which seems to be very flexible.

This review of several tools for recovering data from scratched CD/DVDs, including GDDRescue. I had much better experience with GDDRescue than with readcd: using mainly default configs, readcd stumbled on a badly scratched DVD; while ddrescue after some 72h of work nicely outputted a shiny .iso in which the read errors were minimized. As its man page states, ddrescue "tr[ied] hard to rescue data in case of read errors" and succeeded.

share|improve this answer
add comment

Command-line, there are readom (from cdrkit, a fork of cdrtools) and readcd (from Joerg Schilling's original cdrtools). Both can check for C2 errors.

There is also cdck, which will generate a text file that can be fed to gnuplot to get graphs.

share|improve this answer
add comment

For a low-level check, I found qpxtool. With my drive (which, to be fair, is not on the supported devices list), the results didn't make sense, but maybe you will have better luck.

share|improve this answer
add comment

I've used dvdisaster to help me recover data from a few DVD and CD-R coasters I burned. It's a GTK application, and probably available as a package on your favorite Linux distribution.

It has a nice graphical display showing which sectors are good and bad. It also keeps various statistics while reading your media.

share|improve this answer
add comment

To simply see if a drive can be read, you can use dd(1). This will read in the contents of the CDROM and will ignore/discard the data (note that the CDROM device may have another name on your system):

 dd if=/dev/cdrom of=/dev/null

It is also possible to compare this to an ISO image:

dd if=/dev/cdrom | md5sum - /path/to/file.iso

This will print a checksum for the CD and for the ISO file. If the checksums match, the CD contents match the ISO image.

share|improve this answer
    
k3b is a graphical CD burning utility with built-in image verification and other neat features. –  ewindisch Jan 12 '11 at 22:51
    
There's no need for dd here. cat /dev/cdrom and md5sum /dev/cdrom /path/to/file.iso will work just as well. –  Gilles Feb 12 '11 at 22:06
1  
'cat /dev/cdrom' might work, but you then have to pipe the output via your shell to discard it. I don't think this is really a better solution than using dd which is entirely self-contained. Using 'dd' will also provide errors, statistics, and other useful information that 'cat' will not. –  ewindisch Feb 18 '11 at 0:16
    
You're right that md5sum can do the comparison on the file itself. For simple comparisons, it can be a better solution. However, it can be useful to throw 'pv' in the middle there, or to script around 'kill -USR1' to provide statistics. Remember that we're talking about relatively slow media such as CDs/DVDs. Besides, as silly of a reason as it might be, using 'dd' provided symmetry to the other example. –  ewindisch Feb 18 '11 at 0:23
    
When running md5sum on either the image from the CD or that on the hard disk one should consider the possibility of having trailing zeroes at the end of the .iso file. See this answer for more details. –  Francesco Turco Sep 15 '12 at 9:55
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.