-
Está utilizando los 512 bytes predeterminados
ddtamaño de bloque. Mejoraría significativamente el rendimiento utilizando un tamaño de bloque más grande, digamos128ko incluso1m. -
Hay dos salidas porque está ejecutando dos
ddcomandos, el primero es el lector del dispositivo y muestra un error de E/S. -
Es probable que esté usando LVM dado el nombre del dispositivo que usa:
/dev/Storage/Storage. ¿Está seguro de que se trata de todo el disco y no de un subconjunto? Usalvdisplaypara averiguar qué hay detrás de este nombre de dispositivo.
Busque en los mensajes de registro de su núcleo (dmesg o /var/log/kern.log ) para obtener mensajes más detallados de los controladores SATA, si se trata de un error de hardware. También útil:smartctl -x /dev/sda . Si solo fue un intento de leer más allá del final de una partición o algo así, eso también podría aparecer en el registro del kernel.
Para hacer que dd continúe después de un error de E/S, para leer las partes legibles que siguen al error, use
dd if=... of=... conv=noerror bs=128k # it doesn't get any faster beyond about 128k, because of L2 cache size
(Como se menciona en los comentarios sobre el OP, ddrescue tiene esto y más. conv=noerror se agregó a GNU dd después de ddrescue existió, IIRC.)
Si desea continuar donde lo dejó, puede usar el seek y skip opciones, con conv=notrunc .
Si realmente quiere ver qué tan avanzado está dd, mire la posición del archivo de su stdin:
cat /proc/$(pidof dd)/fdinfo/0 # dd opens its infile as fd #0
(o ls -lh el tamaño del archivo de salida). Me parece una tontería copiar los datos de un disco duro completo 2 veces adicionales canalizándolos a través de algo, como si solo hiciera que su computadora fuera un poco más lenta de lo necesario durante las horas que tomará la copia.
O al menos hacer:
dd if=... conv=noerror bs=128k | pv > Storage.img