Линуксячая dd_rescue умеет читать не зацикливаясь

Линуксячая dd_rescue умеет читать не зацикливаясь на i/o errors заполняя нулями сбойные блоки, умеет реверсивное чтение. Правда там многое будет зависеть от логики микропрограммы самой "читалки":)
Есть еще ddrescue, но с нею я дел не имел.