On Mon, Nov 22, 2010, Loïc Minier wrote:
On Mon, Nov 22, 2010, John Stebbins wrote:
dd exits when it encounters an error. So you have an incomplete ISO. You need to use something like ddrescue with such discs.
Yep; as I noted, I'm using conv=noerror with dd so that it keeps going, writing zeroes in place of the bytes it couldn't read. I believe dd-rescue does the same thing, albeit with retries, but retries wouldn't help anyway.
Well, I was completely wrong in my expectations of dd; if any block fails, it just gives up on the whole block. dd_rescue is different in that it has two configurable block sizes: one as long as everything goes well, and another one to retry failing reads. I was passing bs=100M or something stupidly large to dd, which means that any read error (due to copy-protection mechanisms) caused a 100M hole in the .iso file. With dd_rescue, I'm passing something large as the regular block size and 4096 for the block size of failed reads (found with blockdev --getbsz on the dvd drive). I could copy and play this failing DVD using dd_rescue. Sorry for rejecting your proposal, I was wrong! -- Loïc Minier