I have a DVD that I can't rip or copy using regular commands. If I try to copy it it will first copy at normal speed, but then slow down and take a very long while to do seemingly nothing.

Right now I'm trying to extract whatever data there is using dd to make a .iso-image of it. I use the following command:

dd if=/dev/sr0 of=image.iso bs=2048 conv=noerror,notrunc iflag=nonblock

noerror: continue after read errors

notrunc: do not truncate the output file

nonblock: use non-blocking I/O

Now the extraction has come to the difficult part and I get messages like the one below all the time:

dd: error reading ‘/dev/sr0’: Input/output error 
486221+0 records in
486221+0 records out
995780608 bytes (996 MB) copied, 76031,9 s, 13,1 kB/s

It ticks up a few bytes for each minute. As you can see this has been going on for a while now ...

So my question is: What is my computer doing now? The drive slowed down, but is still able to extract some data (the byte counts increases)? Does the lower speed make it easier to read the data, or is the drive just trying to read the same data over and over until it gets some of it? What is happening? :)


The latter.

IME with CDs, some failed reads can be fixed by reducing drive speed. However the drive didn't know that (just what speed is "supposed" to be safe for a given disc. Literally - the highest speeds are limited by the material strength of the disc). Secondly, the lowest speed will be 1x, which is still orders of magnitude above 13 kB/s.

In addition, if you look at your kernel log with dmesg, I think you may see retry messages from the kernel. (But I think it's mostly the drive, and the kernel doesn't retry that many times).

AFAIK the inability to control the drive retries better is a firmware limitation, which has been exploited by "copy protection" schemes.


When a disk read error occurs, there's usually some kind of reset process. For mechanical devices, that means moving the moving parts to a default position then moving them back into place. If the problem was with mechanical adjustment, this can sometimes make the device readable again because the read head gets positioned correctly the second time. Even if the problem is reproducible, the mechanical reset may be necessary because the read error caused the moving parts not to be in their proper place. Moving those parts takes time.

You can see the resets in the kernel logs (run dmesg; see How can I find out what the entries in dmesg means? for an example).


It's trying to read your DVD but it sounds like your disc is so damaged that it can't. Is your disc in poor shape? Lots of scratches?

You can salvage it if you buff it with car wax like you would a car. It takes the scratches right off so your optical reader can read the info on it and you should be able to dump the info with dd like you're doing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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