Как скопировать диск с нечитаемыми секторами?

Как скопировать диск с нечитаемыми секторами?

Я хочу клонировать весь диск побайтно, что-то вроде

dd if=/dev/$SRC of=/dev/$DST bs=65536 count=$count

Для этой работы существуют более совершенные инструменты, которые понимают файловую систему (Windows) и работают быстрее (мне все равно), но они дают сбой из-за нечитаемых секторов на старом исходном диске.

На самом деле есть один недействительный блок, который мне нужно пропустить. Поэтому я подумал об использовании ddнескольких времен, например

dd if=/dev/$SRC of=/dev/$DST bs=65536 count=...
dd if=/dev/zero of=/dev/$DST bs=65536 count=... skip=... seek=...
dd if=/dev/$SRC of=/dev/$DST bs=65536 count=... skip=... seek=...

с заменой данных сломанного сектора нулями. Это допустимый подход? Я нашел этовопросчто меня сбивает с толку.

решение1

Не изобретайте велосипед. Используйтеddrescue.

GNU ddrescue — это инструмент восстановления данных. Он копирует данные из одного файла или блочного устройства (жесткий диск, cdrom и т. д.) на другое, пытаясь сначала восстановить хорошие части в случае ошибок чтения.

Не доверяй dd conv=sync,noerror, если вы действительно не знаете, как это работает.

Связанный контент