GNU/Linux >> Tutoriales Linux >  >> Linux

Interpretando el error de entrada/salida dd

  • Está utilizando los 512 bytes predeterminados dd tamaño de bloque. Mejoraría significativamente el rendimiento utilizando un tamaño de bloque más grande, digamos 128k o incluso 1m .

  • Hay dos salidas porque está ejecutando dos dd comandos, 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? Usa lvdisplay para 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

Linux
  1. ¿Cómo funcionan la entrada de teclado y la salida de texto?

  2. Error SFTP Mensaje recibido demasiado largo

  3. Error de entrada/salida gcsfuse

  4. Cómo redirigir la salida del programa como su entrada

  5. error de entrada/salida de ubuntu

Explicación de la redirección de entrada y salida en Linux

Explicado:entrada, salida y redirección de errores en Linux

Shell Scripting Parte 4:entrada, salida y redirección

Interpretando la salida de cat/proc/cpuinfo

¿Cómo interpretar y corregir un error de entrada/salida en Linux?

¿Cómo puedo ordenar la salida du -h por tamaño?