Cómo clonar un disco duro (o SSD) usando Linux


Si necesitas clonar un disco duro completamente, lo más fácil para lograrlo es tomar el LiveCD/LiveUSB de tu distribución linux favorita, bootear desde est@, instalar los paquetes smartmontools, gparted y gnome-system-monitor para después (con ambos discos duros conectados a la PC si vas a hacerlo "al vuelo") hacer lo siguiente:

1) Limpiando el disco duro "virgen"

Para esto abrimos gparted como root y seleccionamos el disco duro nuevo, después nos vamos a Dispositivo>Crear Tabla de particiones, seleccionamos la adecuada para nuestro caso (generalmente msdos y/o gpt) y listo:


2) Chequeo SMART

Ahora nos aseguramos de que el disco duro nuevo esté sano con el siguiente comando:

sudo smartctl --all /dev/sdX

(Donde /dev/sdX sería la ruta de nuestro disco duro "virgen"), Este comando nos debería mostrar el siguiente output en un disco duro nuevo:


3) Clonación

El proceso de clonación es muy sencillo, en una pestaña de nuestra terminal corremos:

sudo dd if=/dev/sdY of=/dev/sdX bs=4M;sync

(Donde /dev/sdY sería la ruta del disco a clonar y /dev/sdX sería la ruta del disco destino)

Y en otra diferente:

watch -n5 'sudo kill -USR1 $(pgrep ^dd)'

Regresamos a la primera pestaña y deberíamos ver el progreso de la clonación con dd en curso:


4) Acelerando las cosas

Para que todo vaya más rápido abrimos gnome-system-monitor como root y le damos la prioridad más alta al proceso dd iniciado por el usuario root (es decir, nuestra clonación en progreso).



NOTA: Si bien pudimos hacer esto con el comando/parámetro "nice" al iniciar dd, por alguna razón noté que (al menos en mi caso) haciéndolo así el proceso no tomaba la prioridad deseada, por eso estoy recurriendo a la interfaz gráfica para esto.

Ahora sólo queda esperar. En mis pruebas la mayoría de discos duros (sin importar el tamaño) ha tardado en clonarse alrededor de 1 hora. Esto es porque, acorde al tamaño, modelo y demás, los discos de mayor tamaño tienden a ser más modernos y se copian a velocidades superiores que los discos de menor tamaño, dejando el tiempo "en tablas" prácticamente para discos de 300GB a 1TB hasta donde pude observar.

5) Verificando las cosas

El mejor "test" que podemos realizar tras una clonación es bootear la máquina desde el disco duro clon para asegurarnos de que todo funcione como se debe y en caso de que sea así, reajustar/reacomodar archivos/particiones y otras cosas si lo llegásemos a requerir; SIN EMBARGO no se te olvide previamente volver a correr un test de S.M.A.R.T desde el entorno live para asegurarte de que el nuevo disco duro (ahora con la data del anterior) quedó en óptimas condiciones para empezar a operar.

Extra: Crear una imagen

Si no puedes hacer el proceso "al vuelo" lo que puedes hacer es crear una imagen de disco directamente con dd (y gzip) para después pasarla al destino final deseado. Este proceso involucra los siguientes comandos:

Creación

dd if=/dev/sda conv=sync bs=4M | gzip -c  > ruta/para/imagen/hdd.img.gz

Restauración

gunzip -c ruta/a/hdd.img.gz | dd of=/dev/sda conv=sync bs=4M

P.D. Sin importar qué método de clonado elijas, recuerda siempre que se puede clonar un disco más pequeño en uno más grande pero mo al revés y de hecho la idea de un "clonado" es usar discos de capacidades iguales de ser posible.