DDRESCUE - Как повторить первый проход (пока не делайте обратного)?

Я провел ddrescue в течение нескольких дней и выздоровел около 60G. Он замедлился до ползания и имел ипос около 90 млн. Я начал снова, добавив -a100000, и он получил еще 35G всего за 3 часа. Началась обратная фаза, и теперь она производила много шума и читала очень мало данных (время с момента последнего чтения составляло до 2 минут), поэтому я остановил его.

Это была оригинальная команда: ddrescue -n -f /dev/sda /dev/sdc /home/B/Desktop/rescue.log (sdc - совершенно новый диск.)

Я заметил, что с -a100000 он пропускал большие части диска. Я хочу вернуться к первому проходу снова, на этот раз с, возможно, -a50000, и поставить максимум на то, сколько он может пропустить. Я очень обеспокоен чрезмерным шумом в задней части диска (492M) в обратном направлении. Это поврежденный диск - диск сломался, когда ноутбук уронили во время работы. Такого шума раньше не было.

(Опция -a заставляет его двигаться дальше, когда скорость чтения падает ниже x байт / с.)

Я не понимаю, что должна делать опция -i. Звучит так, как будто должно быть там, где начинается, но на странице руководства явно сказано, что это не так. ("Это не та точка, с которой ddrescue начинает копировать".) Но это не говорит, по крайней мере мне, о том, что он делает. (Gnu.org...ddrescue_manual.html)

Как мне начать первый проход заново, с начала диска (где, в любом случае, важная вещь), проходя через изначально пропущенные части, в направлении вперед? Мне нужно начать примерно с 90M, потому что он выполнил первую часть без опции -a, поэтому не пропустил ее. (Я, вероятно, буду использовать -a50000 с максимальным значением, если у кого-то нет лучшей идеи. Я хочу получить большую часть того, что я могу, до того, как диск выйдет из строя.)

ОБНОВИТЬ

Я попытался добавить -i73GiB, но он начал двигаться вперед примерно с 480 000 МБ, где и прекратилось обратное. Я остановил это.

Я попытался добавить -i73GiB и -A, но это сделало то же самое, -A не дало эффекта. Я остановил это снова.

(-A: "Пометить все необрезанные и не очищенные блоки внутри спасательного домена как непробованные перед началом спасения".)

Я не вижу других вариантов, чтобы попробовать.

1 ответ

Решение

Я использую следующие две опции, чтобы указать часть диска для спасения. В обратном режиме ddrescue начинается с {начальная позиция} + {размер} (если все еще находится внутри привода). Таким образом, вы можете определить интервал.

Увидеть info ddrescue,

'-i BYTES'
'--input-position=BYTES'
     Starting position of the rescue domain in INFILE, in bytes.
     Defaults to 0. This is not the point from which ddrescue starts
     copying.  (For example, if you pass the '--reverse' option to
     ddrescue, it starts copying from the end of the rescue domain). In
     fill mode it refers to a position in the INFILE of the original
     rescue run. See the chapter Fill mode (*note Fill mode::) for
     details.

'-s BYTES'
'--size=BYTES'
     Maximum size of the rescue domain, in bytes. It limits the amount
     of input data to be copied. If ddrescue can't determine the size
     of the input file, you may need to specify it with this option.
     Note that this option does not specify the size of the resulting
     OUTFILE. For example, the following command creates an OUTFILE 300
     bytes long, but only writes data on the last 200 bytes:

          ddrescue -i 100 -s 200 infile outfile mapfile

Таким образом, вы можете избежать частей привода, которые серьезно повреждены. Я использовал этот метод недавно, чтобы спасти DVD-видео с двух сильно поцарапанных дисков.

Другие вопросы по тегам