dd if=blah of=blah conv=noerror seems to be doing the trick, though it's not looking good. Tons of I/O errors still, and no actual data being copied.