ddrescue --generate-mode создал файл карты для возобновления, но отсутствуют необрезанные блоки?

ddrescue --generate-mode создал файл карты для возобновления, но отсутствуют необрезанные блоки?

Я запустил ddrescue, чтобы восстановить неисправный диск WD на 2 ТБ с моего NAS. Хотя я указал файл журнала, к сожалению, я запустил Ubuntu в пробном режиме с загрузочного флэш-накопителя и не записал файл журнала на отдельно смонтированный диск, поэтому, когда питание отключилось примерно на 11%, я обнаружил, что потерял файл журнала.

В главе 14 руководства режим генерации выглядел так, как будто он может работать, поэтому я запустил:

ddrescue --generate-mode infile outfile mapfile

Диск, на который я выполняю восстановление, совершенно новый, поэтому я надеялся, что он сработает, поскольку на нем не было старых данных.

Теперь я использую Ubuntu, установленную на SSD, поэтому я использовал сгенерированный файл карты, чтобы снова запустить ddrescue с помощью:

ddrescue -f -n -r1 /dev/sda /dev/sdb /tmp/ddrescue.log

Похоже, это сработало по большей части, поскольку процесс восстановления перезапустился около отметки 11,5%, прямо там, где он остановился. Однако меня беспокоит то, что до сбоя ddrescue обнаружил одну ошибку чтения и показал около 20 МБ необрезанных блоков, но при запуске процесса с новым mapfile было отмечено 0 ошибок чтения и 0 необрезанных блоков. Теперь, после 8 часов работы, он показывает 2 ошибки и 29696 Б необрезанных блоков, но я предполагаю, что это новые ошибки чтения, потому что ddrescue не смотрит на старые части данных, которые уже были отмечены как восстановленные.

Обнаружит ли ddrescue исходную ошибку чтения при последующем проходе, или она исчезнет навсегда, и единственный способ найти и повторить эти блоки — начать все заново с новым mapfile?

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

Спасибо за любую помощь по этому вопросу.

решение1

О --generate-mode:

Ddrescue может в некоторых случаях генерировать приблизительный mapfile, из infileи (частичную) копию в outfile, которая почти так же хороша, как точная mapfile. Он делает это, просто предполагая, что сектора, содержащие все нули, не были спасены.

(источник)

В первой попытке сектор целевого диска, соответствующий ошибочному сектору исходного диска, не был записан. Аналогично, секторы, соответствующие всему, что было пропущено, не были записаны. Предполагая, что целевой диск возвращает все нули из секторов, в которые еще не была сделана запись, последний ddrescue --generate-modeклассифицировал все эти фрагменты как «не спасенные».

--generate-modeне может определить, заполнен ли сектор нулями, поскольку он соответствует неиспытанному сектору исходного диска, необрезанному, невычищенному или плохому сектору; или здоровому сектору, который был скопирован, но случайно содержал все нули. Все, что он знает, это то, что если есть сектор, заполненный нулями, то, outfileвозможно, он не был прочитан, в то время какможет бытьего можно прочитать. --generate-modeпросто классифицирует такой сектор как неиспользованный при создании приблизительного mapfile, поэтому будущее ddrescue, которое фактически использует , mapfileпопытается (или повторит) прочитать сектор.

Ultimate ddrescueможет перечитывать некоторые сектора без необходимости; сектора, которые были прочитаны, но случайно содержали все нули и поэтому выглядели --generate-modeкак неиспытанные сектора. Обычно это незначительное неудобство, если таковое имеется.

Вам не нужно перезапускать с нуля, если только на целевом диске не было ненулевых секторов при запуске. Такие сектора будут считать, что --generate-modeони спасенные данные, даже если это не так. Вы верите, что ваш целевой диск (как совершенно новый диск) содержит только нули. Если вы верите, то вам не нужно перезапускать с нуля.

Если ваши убеждения верны, ошибочный сектор с первой попытки был классифицирован --generate-modeкак «не спасенный», и ваш конечный (все еще работающий) ddrescueлибо попытался, либо собирается попытаться прочитать его снова.

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