GNU/Linux >> Tutoriales Linux >  >> Linux

Copia Dd completa de disco duro a disco duro?

PREGUNTA ORIGINAL:

Si tengo 2 discos duros idénticos con las siguientes características:

  • SATA 6,0 Gb/s
  • 5400 rpm
  • 3 TB

¿Cuánto tiempo debería tardar en completarse una copia completa de dd?

Hasta ahora ha estado funcionando durante 5 horas y sigue funcionando...

Estoy usando Linux Ubuntu 12.04 de 64 bits y el comando que estoy usando es:

dd if=/dev/sdb of=/dev/sdc

ACTUALIZACIÓN:1

Ahora puedo ver el progreso y han pasado más de 6 horas para copiar 430 GB. El disco duro es de 3TB…

¿No hay una forma más rápida de hacerlo?

ACTUALIZACIÓN:2

Esto parece mucho mejor que antes (Gracias a Groxxda por las sugerencias):

sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K

ETA es de aproximadamente 9 horas para 3 TB, mientras que antes alcanzaba los 430 GB después de 6 horas, por lo que supongo que habría tomado alrededor de 36 horas con el comando anterior.

Respuesta aceptada:

dd era útil en los viejos tiempos cuando la gente usaba cintas (cuando el tamaño de los bloques importaba) y cuando herramientas más simples como cat podría no ser binario seguro.

Actualmente, dd if=/dev/sdb of=/dev/sdc es una forma complicada, propensa a errores y lenta de escribir cat /dev/sdb >/dev/sdc . Mientras que dd aún útil para algunas tareas relativamente raras, es mucho menos útil de lo que la cantidad de tutoriales que lo mencionan le harían creer. No hay magia en dd , toda la magia está en /dev/sdb .

Su nuevo comando sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K vuelve a ser innecesariamente lento y complicado. Los datos se leen 128kB a la vez (que es mejor que el dd predeterminado de 512B, pero no tan bueno como valores aún mayores). Luego pasa por dos conductos antes de escribirse.

Usa el cat más simple y rápido dominio. (En algunos puntos de referencia que hice hace un par de años bajo Linux, cat fue más rápido que cp para una copia entre diferentes discos, y cp fue más rápido que dd con cualquier tamaño de bloque; dd con un tamaño de bloque grande fue un poco más rápido al copiar en el mismo disco).

cat /dev/sdb >/dev/sdc

Si desea ejecutar este comando en sudo , debe realizar la redirección como root:

sudo sh -c 'cat /dev/sdb >/dev/sdc'

Si desea un informe de progreso, dado que está utilizando Linux, puede obtener uno fácilmente anotando el PID del cat proceso (digamos 1234) y mirando la posición de su descriptor de archivo de entrada (o salida).

# cat /proc/1234/fdinfo/0
pos:    64155648 
flags:  0100000

Si desea un informe de progreso y su variante de Unix no proporciona una manera fácil de llegar a las posiciones de un descriptor de archivo, puede instalar y usar pv en lugar de cat .


Linux
  1. ¿Cómo copiar archivos de Wine a Desktop?

  2. ¿Cómo copio texto de mi xterm sin un mouse?

  3. Cómo copiar una tabla de una base de datos mysql a otra base de datos mysql

  4. Nombre completo del proceso de task_struct

  5. Importación de PostgreSQL CSV desde la línea de comando

Copie un archivo a varios directorios desde la línea de comandos en Linux

Si puedo, ¿cómo instalar Ubuntu desde Ubuntu?

¿Cómo copiar archivos de dockerfile a host?

Cómo copiar texto de menos

Estado de aumento de VMware desde el huésped interno

¿Cómo puedo migrar una instalación de Linux de HDD a SSD?