
Estoy intentando crear una imagen de un disco duro usando dd, lo que genera errores de E/S. Como resultado, agregué el parámetro 'noerror', pero me gustaría realizar un seguimiento de los errores para intentar la recuperación.
Mi intento actual es el siguiente:
sudo dd if=/dev/sdb bs=1M conv=sync,noerror of=output.img 2>&1 | tee output.log
Con esto, se crean tanto Output.img como Output.log, pero ambos tienen un tamaño de 0 bytes y, al finalizar el dd, no se envía ninguna salida al terminal.
Preferiría probar dd con la opción 'noerror' antes que herramientas como ddrescue porque estoy más familiarizado con dd.
Además, esta unidad contiene una única partición NTFS, por lo que se agradecerían sugerencias sobre cómo recuperar una partición NTFS a la que le faltan bits (la unidad tiene 500 GB y el primer error que encontré fue de alrededor de 30 GB).
¡Gracias!
Respuesta1
Le recomiendo encarecidamente que utiliceddrescue
- No evites una herramienta que sea adecuada para el trabajo, manejarla no es difícil y te ahorrarás estrés.
La invocación es simple:
Primer intento:
-p
- preasignar espacio-b 4M
- utilice un tamaño de sector grande para mayor velocidad
ddrescue -p -b 4M ${SRC_DISK} ${DST_IMAGE} ${DST_LOGFILE}
Ejecuciones posteriores: (a diferencia de dd
, puede ejecutarlo varias veces y continuará donde lo dejó, consultando el archivo de registro)
-b 512
- utilice un tamaño de sector más pequeño para intentar llenar los vacíos-r 10
- utilizar múltiples pases de reintento
ddrescue -b 512 -r 10 ${SRC_DISK} ${DST_IMAGE} ${DST_LOGFILE}
Las secciones con errores de lectura contendrán (de forma predeterminada) ceros y terminará con un archivo de registro similar al siguiente:
# pos size status
0x00000000 0x00014E00 +
0x00014E00 0x00000200 -
0x00015000 0x00005800 +
0x0001A800 0x00000200 -
0x0001AA00 0x00028000 +
0x00042A00 0x00000200 -
0x00042C00 0x00125400 +
Las líneas marcadas +
son regiones que no tienen errores, las líneas marcadas -
son regiones con errores.
Es posible que deba considerar algunas de las siguientes opciones, según la naturaleza de sus errores de lectura:
-d, --direct
use direct disc access for input file
-K, --skip-size=<min>[,<max>]
initial size to skip on read error [64 KiB]
-M, --retrim
mark all failed blocks as non-trimmed
-O, --reopen-on-error
reopen input file after every read error
-r, --retry-passes=<n>
exit after <n> retry passes (-1=infinity) [0]
-R, --reverse
reverse the direction of all passes
En respuesta directa a su pregunta:
- Probablemente esté teniendo un problema de almacenamiento en búfer... probablemente verá aparecer muchas líneas a la vez y luego nada otra vez; mire
unbuffer
sudo
Es posible que esté solicitando una contraseña, pero redirigió la solicitud... por lo que no sucede nada.