Я хочу клонировать весь диск побайтно, что-то вроде
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
, если вы действительно не знаете, как это работает.