dd if=/dev/sdb of=/dev/zero bs=512 count=1 skip=551563 should succeed because block 551563 has no problem. But it fails because ehci_hcd insists on reading blocks 551560 through 551567, and block 551562 does have a problem. Some years ago similar problems in linux-ide and libata were fixed. ehci_hcd would also benefit from fixing. ehci_hcd has further problems. After failing to read block 551562, it tries to reassign device addresses on the USB bus, fails repeatedly, and gives up. Unplugging and replugging the USB cable fixes this, so that block numbers far enough away from bad blocks can be read again. I think that unplugging should not be necessary. (Of course I should have been outputting to /dev/null instead of /dev/zero but that should not matter.) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html