Что за диск? что в смарте? sudo smartctl -x /dev/sdX
Выше верно советовали ddrescue -- она входит в пакет gddrescue, алгоритм такой, указывйте ей устройство источник, устройство приемник, лог-файл. например. sudo ddrescue -d -f --block-size=4096 /dev/sda /dev/sdb ~/copying.log
Когда с драйвом будут проблемы, можно процесс прекратить и запускать ddrescue заново с ключом --retrim, если драйв отвалился совсем и лог весь забился ошибками. чтоб не забивался, можно добавить ключик --max-error-rate=, например, 100000. А состояние копирования пишется в этот лог. Перетыкаете диск, запускаете заново с тем же файликом лога, оно продолжает с места, где прекратилось. Ключ --retrim как раз для случая повторных запусков. и да, плюс ddrescue -- она ничего не затирает, пытается читать всё, что можно.