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
.