ddrescue: reintentar los bloques fallidos después de la primera ejecución

1

Hice una copia de seguridad de un disco duro defectuoso con ddrescue. El comando que utilicé fue

# ddrescue -vv -d -J /dev/sda /mnt/rescue/winxp.img winxp.map

El programa se completó con alrededor de 60 errores. Quería volver a intentar sólo los bloques fallidos. Encontré esta sección en la página del manual:

-m file
--domain-mapfile=file
    Restrict the rescue domain to the blocks marked as finished in the
    mapfile file. This is useful for merging partially recovered images of 
    backups, or if the destination drive fails during the rescue. Use '-' 
    as file to read the domain mapfile from standard input. Specialized 
    tools like ddrutility or partclone can produce a domain mapfile 
    listing all the used blocks in a partition, making the rescue more
    efficient.
-M
--retrim
    Mark all failed blocks inside the rescue domain as non-trimmed before
    beginning the rescue. The effect is similar to '--retry-passes=1', but
    the bad sectors are tried in a different order, making perhaps
    possible to rescue some of them.

El siguiente comando que emití fue

# ddrescue -vv -d -M -m winxp.map /dev/sda /mnt/rescue/winxp.img winxp.2.map

Pensé que esto solo reintentaría los bloques fallidos anteriormente. Sin embargo, pareció comenzar de nuevo en todo el proceso y tratar de rescatar todo el disco.

¿Hay una manera de volver a intentar los bloques fallidos y, si se realiza correctamente, guardarlos en la imagen anterior?

nautical
fuente

Respuestas:

2

Necesitas usar el mismo archivo de mapa cada vez: aquí es donde se registran las regiones que se han intentado y si tuvieron éxito o no.

Por lo general, no es necesario cambiar el comando de ejecución a ejecución, simplemente volver a emitirlo hará que vuelva a intentar las regiones fallidas (nuevamente).


Utilizando -m será (como lo indica el manual) " Restringir el dominio de rescate a los bloques. marcado como terminado en el archivo mapfile. "- es decir, solo intente leer los bloques exitosos.

Nuevamente, como lo indica el manual, esto es útil junto con otras utilidades para reducir la cantidad de datos leídos y, potencialmente, reducir el tiempo de ejecución y la cantidad de errores encontrados.

Attie
fuente
1
Funcionó. Recientemente estuve probando otra unidad con badblocks, que solo registra los bloques fallidos. Supongo que estaba atrapado en esa línea de pensamiento y entendí terminado como bloques defectuosos a los que se han aplicado todas las medidas de rescate (probadas, recortadas y raspadas). De todos modos, tardó algunas horas en terminar pero recuperó el 100% del disco. Gracias.
nautical