как возобновить процесс ddrescue?

как возобновить процесс ddrescue?

Мне нужно восстановить мой USB HD на 1 ТБ. Я использую ddrescueдля этого. Есть ли способ, которым я могу возобновить работу ddrescueпосле запуска?

Я использую команду:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image

решение1

ddrescueможно возобновить, но для этого требуется файл журнала. Файл журнала будет записывать прогресс, достигнутый ddrescue на данный момент, и перезапуск ddrescue прочитает файл журнала и начнет с того места, где остановился.

Третьим параметром будет файл журнала:

ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log

Если вы уже запустили ddrescue без файла журнала и отменили его, то при следующем запуске ddrescue он начнется с самого начала, поскольку у него нет записи о том, что уже было восстановлено.

Примечание:ddrescueиdd_rescueэто разные программы.

решение2

Даже если вы забыли указать файл журнала, надежда все равно есть:

Режим генерации

Итак, вы не прочитали руководство и запустили ddrescue без файла журнала. Теперь, два дня спустя, ваш компьютер сломался, и вы не можете узнать, сколько данных удалось спасти ddrescue. И что еще хуже, вы не можете возобновить спасение; вам придется перезапустить его с самого начала.

Или, может быть, вы начали копировать диск с помощью dd conv=noerror,syncи теперь находитесь в той же ситуации, что описана выше. В этом случае обратите внимание, что вы не можете использовать копию, сделанную dd, если она не была вызвана с syncаргументом преобразования.

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

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

Например, если вы впервые попробовали одну из этих команд:

ddrescue infile outfile

или

dd if=infile of=outfile conv=noerror,sync

Вы можете сгенерировать приблизительный файл журнала с помощью этой команды:

ddrescue --generate-mode infile outfile logfile

решение3

Как уже говорили другие, вы всегда должны указывать файл журнала в качестве третьего параметра, что позволит продолжить. Поскольку вы этого не сделали, это вам здесь не поможет. Если вы примерно знаете, в какой точке дошел процесс, вы можете использовать параметры --input-positionи --output-position, чтобы начать с этой точки (убедитесь, что оба параметра имеют одинаковое значение, иначе вывод будет поврежден).

решение4

Заhttps://wiki.archlinux.org/index.php/Клонирование_дискакажется, что с conv=noerror,syncпереключателем ddдействительно добавляются нулив концеблока, а не точно, где произошли ошибки чтения. Это противоречит информации в ответе Майлза Вольбе от 29-08-2013.

Например, если последовательность правильная 198123283и в середине есть ошибка чтения, то будет записано 198283000, а не 198000283.

Таким образом, в случае, если действительно возникнут ошибки чтения, предлагаемый метод не будет точным — будут области, которые можно было бы прочитать, но которые в итоге будут заполнены нулями, но при этом будут считаться «спасенными».

Кстати, хорошей практикой будет начать такую ​​попытку восстановления с заполнения целевого диска нулями (или хотя бы свободного места, что можно сделать, например, с помощью WinHex).

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