
Я использовал ddrescue
yesterday hopely, чтобы получить копию 1:1 и сохранить ее как образ на новом диске. Предположим, я читаю в обратном направлении, потому что я знал, что в начале неисправного диска есть плохой кластер, т. е. с -R
switch, из man-страницы:
-R --reverse
Изменить направление всех проходов (копирование, обрезка, очистка и повторная попытка). Каждый проход, который обычно выполняется вперед, теперь будет выполняться назад, и наоборот. '
--reverse
' не изменяет размер блоков, копируемых во время каждой фазы, а только порядок, в котором они выполняются.
Конечно, раньше мне mapfile
удавалось перезапустить процесс.
Плюс я использовал прямой доступ. Не все приводы должны его поддерживать, но мой поддерживает.
Полная командная строка, которую я использовал, выглядит следующим образом:
ddrescue -d -R /dev/sdb baddrive.ddrescue.img baddrive.ddrescue.log
Результат — 1 ошибка размером 4096 байт.
Соответствующая часть следующего mapfile
:
# current_pos current_status
0x1375BCE00 +
# pos size status
0x00000000 0x1375BC000 +
0x1375BC000 0x00001000 -
0x1375BD000 0xE7A97F9000 +
Вопрос
Можно ли повторить попытку для плохого кластера примерно 100 раз, чтобы убедиться, что он полностью мертв?
решение1
Да, это возможно.
Вам необходимо изменить mapfile
строку:
0x1375BC000 0x00001000 -
чтобы в конце был вопросительный знак, например:
0x1375BC000 0x00001000 ?
Теперь вы готовы перезапустить процесс восстановления, вам просто нужно добавить опцию повтора:
-r n --retry-passes=n
Выйти после указанного количества повторных проходов. По умолчанию 0. -1 означает бесконечность. Каждый плохой сектор проверяется только один раз за каждый проход. Чтобы повторить плохие сектора, обнаруженные в предыдущем запуске, необходимо указать ненулевое количество повторных проходов.