Saltar al contenido

¿Por qué dd tarda demasiado?

Presta atención ya que en esta reseña vas a encontrar el hallazgo que buscas.Este artículo fue analizado por nuestros especialistas para asegurar la calidad y exactitud de nuestro post.

Solución:

dd tiene muchas (extrañas) opciones, ver dd(1).

Debe indicar explícitamente el tamaño del búfer, así que intente

dd if=/dev/sda of=/dev/sdb bs=16M

IIRC, el tamaño de búfer predeterminado es de solo 512 bytes. El comando anterior lo establece en 16 megabytes. Podrías probar algo más pequeño (por ejemplo, bs=1M) pero debería usar más que el predeterminado (especialmente en hardware de disco reciente con sectores de 4 Kbytes, es decir, formato avanzado). Recomiendo ingenuamente alguna potencia de dos que sea al menos un megabyte.

Con el tamaño de búfer predeterminado de 512 bytes, supongo (pero podría estar muy equivocado) que el hardware requiere que el kernel transfiera 4K por cada bloque de 512 bytes.

Con respecto a rdsk, las páginas man de sd(4) dicen:

En este momento, solo se proporcionan dispositivos de bloque. Los dispositivos sin procesar aún no se han implementado.

El aumento del tamaño del búfer de dd le dará más rendimiento para las operaciones de lectura y escritura. Ahora todos los discos tienen búfer de lectura/escritura de hardware. Pero si aumenta el tamaño del búfer de dd más que el búfer de hardware, su rendimiento disminuirá porque dd leerá desde el primer disco al búfer cuando el segundo disco habrá escrito todo desde su propio búfer de hardware. necesitas establecer bs Opción de comando dd cada vez valor diferente para diferentes dispositivos.

Años atrás en Unix-land dd era la forma requerida para copiar un dispositivo de bloque. Aunque eso se ha llevado adelante como conocimiento de culto de carga (en sistemas basados ​​​​en Linux, al menos) cat es casi siempre más rápido que dd.

Sin embargo, incluso en la historia, un tamaño de bloque decente ayudó a reducir la cantidad de llamadas al sistema (lentas), dado que cada llamada al sistema desencadenaba una operación de E/S. El tamaño de bloque predeterminado es de 512 bytes (un sector de disco). La recopilación de varios bloques de disco en una sola lectura también era, y es, aceptable. Este ejemplo utiliza un tamaño de bloque de 32 MB:

dd bs=$((512*2048*32)) if=/dev/source of=/dev/target

Sin embargo, en los sistemas actuales basados ​​en Linux, los discos se pueden copiar de manera más eficiente con un simple cat

cat /dev/source >/dev/target

(Como se indica en los comentarios sobre su pregunta pv puede ser sustituido por cat y le dará una indicación del progreso y el rendimiento.)

En general, dd puede evitarse en favor de algunas alternativas. Hay varias buenas razones para usar GNU ddrescue en lugar de. En Ubuntu, puedes instalarlo con:

sudo apt-get install gddrescue

y simplemente ddrescue usar. Tenga en cuenta que, a diferencia del nombre del paquete, el ejecutable no tener la inicial g.

Usarlo es tan simple como:

ddrescue inputFile outputFile logFile

El archivo de registro (con el nombre que elija) le permite pausar/detener y reiniciar, sin rehacer el trabajo anterior, lo cual es útil cuando se realizan clonaciones grandes o recuperación de discos. De forma predeterminada, muestra el progreso, la velocidad de copia actual, la velocidad de copia promedio y la cantidad de bloques defectuosos encontrados.

Utiliza valores predeterminados razonables para el tamaño del bloque, por lo que la velocidad de copia siempre es tan rápida como el dispositivo puede manejar, al menos en mi experiencia (he clonado muchos cientos de unidades con él, todos los tamaños y tipos).

A menudo, las unidades que comienzan a fallar tienen problemas de velocidad, como parches ocasionales de lentitud, velocidad promedio baja, pausas prolongadas repentinas (sectores defectuosos) o restablecimientos completos (errores superficiales graves). ddrescue puede ayudarlo a identificar todo lo anterior y reiniciar su clon (siempre que haya especificado un archivo de registro) incluso si su unidad se está reiniciando sola.

Sección de Reseñas y Valoraciones

Recuerda que te concedemos interpretar si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *