Tengo que recuperar mi disco duro USB de 1TB. Estoy usando ddrescue
para lograr esto. ¿Hay alguna forma de reanudarlo ddrescue
una vez que lo inicie?
Estoy usando el comando:
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image
Respuesta1
ddrescatese puede reanudar, pero requiere un archivo de registro para poder hacerlo. El archivo de registro registrará el progreso que ddrescue ha realizado hasta el momento, y al reiniciar ddrescue se 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 inició una ejecución de ddrescue sin un archivo de registro y la cancela, la próxima vez que se ejecute ddrescue, comenzará desde el principio ya que no tiene registro de lo que ya se ha recuperado.
Respuesta2
Incluso si olvidó especificar un archivo de registro, puede haber esperanza:
Entonces no leíste el tutorial e iniciaste ddrescue sin un archivo de registro. Ahora, dos días después, su computadora falló y no puede saber cuántos datos logró guardar ddrescue. Y peor aún, no se puede retomar 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 utilizar una copia realizada por dd a menos que haya sido invocada con el sync
argumento de conversión.
No te desesperes (todavía). En algunos casos, Ddrescue puede 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. Lo hace simplemente asumiendo que los sectores que contienen todos ceros no fueron rescatados.
Sin embargo, si el destino de la copia era una unidad o una partición (o un archivo normal existente y no se solicitó el truncamiento), lo más probable es que necesite reiniciar ddrescue desde el principio. (Esta vez con un archivo de registro, por supuesto). La razón es que pueden haber datos antiguos en la unidad que aún no se han sobrescrito y, por lo tanto, es posible que no se hayan probado pero no sean cero.
Por ejemplo, si probó por primera vez 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
Respuesta3
Como han dicho otros, siempre debes especificar un archivo de registro como tercer parámetro, lo que permitirá reanudar. Como no hiciste eso, 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á).
Respuesta4
Porhttps://wiki.archlinux.org/index.php/Disk_cloningparece que con el conv=noerror,sync
cambio, dd
de hecho agrega cerosal finalde un bloque, no exactamente donde ocurrieron los errores de lectura. Esto contradice la información contenida en la respuesta de Miles Wolbe del 29 de agosto de 2013.
Por ejemplo, si hay una secuencia correcta 198123283
y hay un error de lectura en el medio, se escribirá 198283000
, no 198000283
.
Entonces, en caso de que realmente hubiera errores de lectura, el método propuesto no será exacto: habrá áreas que habrían sido legibles y terminarán llenas de ceros, pero se considerarán "rescatadas".
Por cierto, es una buena práctica comenzar un intento de recuperación llenando la unidad de destino con ceros (o al menos el espacio libre, lo que se puede hacer con WinHex, por ejemplo).