¿Cómo reanudar el proceso ddrescue?

9

Tengo que recuperar mi USB HD de 1TB. Estoy usando ddrescuepara lograr esto. ¿Hay alguna manera de que pueda reanudar ddrescueuna vez que lo inicie?

Estoy usando el comando:

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

Respuestas:

14

Se puede reanudar ddrescue , pero requiere un archivo de registro para poder hacerlo. El archivo de registro registrará el progreso que ddrescue ha realizado hasta ahora, y al reiniciar ddrescue leerá el archivo de registro y comenzará donde lo dejó.

El archivo de registro sería el tercer parámetro:

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

Si ya ha comenzado una ejecución de ddrescue sin un archivo de registro y la cancela, la próxima vez que se ejecute ddrescue, comenzará al principio ya que no tiene registro de lo que ya se ha recuperado.

Nota : ddrescue y dd_rescue son programas diferentes.

shf301
fuente
1
Entonces, si comencé inicialmente con un archivo de registro y volveré a ejecutar el mismo comando, ¿se reanudará automáticamente desde la última posición de registro? / edit: comienza desde la última posición.
Qwerty
6

Incluso si olvidó especificar un archivo de registro, puede haber esperanza:

Modo de generación

Entonces no leyó el tutorial y comenzó a ddrescue sin un archivo de registro. Ahora, dos días después, su computadora se bloqueó y no puede saber cuántos datos ddrescue logró guardar. Y lo que es peor, no puedes reanudar el rescate; tienes que reiniciarlo desde el principio.

O tal vez comenzó a copiar una unidad dd conv=noerror,syncy ahora se encuentra en la misma situación descrita anteriormente. En este caso, tenga en cuenta que no puede usar una copia hecha por dd a menos que se invoque con el syncargumento de conversión.

No te desesperes (todavía). Ddrescue puede en algunos casos generar un archivo de registro aproximado, a partir del archivo de entrada y la copia (parcial), que es casi tan bueno como un archivo de registro exacto. Hace esto simplemente asumiendo que los sectores que contienen todos los ceros no fueron rescatados.

Sin embargo, si el destino de la copia era una unidad o una partición (o no se solicitó un archivo y truncamiento regular existente), lo más probable es que deba reiniciar ddrescue desde el principio. (Esta vez con un archivo de registro, por supuesto). La razón es que los datos antiguos pueden estar presentes en la unidad que aún no se han sobrescrito y, por lo tanto, pueden no probarse pero no son cero.

Por ejemplo, si primero probó uno de estos comandos:

ddrescue infile outfile

o

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

Puede generar un archivo de registro aproximado con este comando:

ddrescue --generate-mode infile outfile logfile
Miles Wolbe
fuente
¿Se está rescatando el disco y se archivan los datos de rescate?
Bastión
3

Como han dicho otros, siempre debe especificar un archivo de registro como el tercer parámetro, que permitirá reanudar. Como no lo hiciste, eso no te ayudará aquí. Si sabe aproximadamente a qué punto llegó el proceso, puede usar los parámetros --input-positiony --output-positionpara comenzar desde ese punto (asegúrese de establecer ambos parámetros en el mismo valor, de lo contrario la salida se dañará).

mgorven
fuente
2

Como no especificó un archivo de registro como tercer parámetro, no se puede reanudar automáticamente. Puede crear un archivo de registro a mano si conoce los sectores ya rescatados, la sintaxis es fácil. Simplemente inicie otro rescate ficticio a otro archivo mientras especifica un registro y deje que lea diferentes áreas. Luego edite el registro para representar las áreas ya rescatadas en su primer archivo. Ahora vuelva a ejecutar su comando anterior pero dé el nombre del archivo de registro como el tercer parámetro. ddrescue se reanudará en el primer sector no probado.

Gurken Papst
fuente
2

Según https://wiki.archlinux.org/index.php/Disk_cloning , parece que con el conv=noerror,syncinterruptor, ddde hecho, agrega ceros al final de un bloque, no exactamente donde ocurrieron los errores de lectura. Esto es contrario a la información en la respuesta de Miles Wolbe del 2013-08-29.

Por ejemplo, si hay una secuencia correcta 198123283y hay un error de lectura en el medio, escribirá 198283000, no 198000283.

Entonces, en caso de que haya errores de lectura, el método propuesto no será preciso: habrá áreas que habrían sido legibles y que terminarían llenas de ceros, pero se considerarían "rescatadas".

Por cierto, es una buena práctica comenzar tal intento de recuperación llenando el disco de destino con ceros (o al menos el espacio libre, que se puede hacer con WinHex, por ejemplo).

GabrielB
fuente
Hola GabrielB, bienvenido a Super User. He editado su respuesta, pero no estoy seguro de que sea suficiente para estar solo, ¿tal vez podría editarlo más para incluir una pequeña sección que también aborde la pregunta original?
bertieb
Si recuerdo correctamente, quería comentar la respuesta de Miles Wolbe pero no podía como miembro nuevo, así que tuve que publicar una nueva respuesta. Si es posible, siéntase libre de mover la publicación anterior donde debería aparecer y eliminar esta.
GabrielB