Respuestas:
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.
Incluso si olvidó especificar un archivo de registro, puede haber esperanza:
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,sync
y 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 sync
argumento 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
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-position
y --output-position
para comenzar desde ese punto (asegúrese de establecer ambos parámetros en el mismo valor, de lo contrario la salida se dañará).
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.
Según https://wiki.archlinux.org/index.php/Disk_cloning , parece que con el conv=noerror,sync
interruptor, dd
de 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 198123283
y 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).