Como clonar un disco linux al vuelo sin ninguna aplicación

Esta semana, debido a una cadena de catastrofes, me he visto obligado a instalar tres linux en tres ordenadores, dos de ellos para mis hijas.
Cuando hago esto siempre uso la misma filosofía, me preparo uno con todo lo necesario y luego lo clono todas las veces que se requiera.
En linux, esto es posible, ya que la gran mayoría de drivers se autoconfiguran.

Con la tecnica que os pondré, la copia es muy rápida, y la fragmentación queda reseteada.
A diferencia de las tecnicas tradicionales de clonado que usan la copia sector a sector, por ejemplo con el comando dd, nosotros copiaremos solo los ficheros existentes, por lo que la copia será extremadamente rapida.
Además la copia es online, es decir no hace falta arrancar con un sistema especial como con la mayoría de aplicaciones de clonado. En nuestro caso el sistema a copiar es el que está montado y usandose.

Pasos a seguir:

(entorno: Ordenador con Ubuntu, que es el que copiaremos a otro disco duro.
El sistema tiene el disco como /dev/sda y las copias se haran en un disco duro con adaptador usb, que el sistema ve en /dev/sdb.
En nuestro caso el disco principal tiene una partición primaria ext4 con todo el ubuntu en /dev/sda1 y una partición swap de 4gigs en /dev/sda5)




Lo primero es ponerse como root: ->sudo bash
Copiamos la tabla de particiones del disco principal al disco que tenemos pinchado en el usb.
->sgdisk -R=/dev/sdb /dev/sda

Creamos el sistema de ficheros en las particiones copiadas
->mkfs.ext4 /dev/sdb1
->mkswap /dev/sdb5


Ahora montaremos el disco duro usb y copiamos todos los datos de la partición primaria al disco duro destino.
El parametro x del cp, hace que solo copie los datos de la partición, con lo que no hay que preocuparse de si tenemos discos montados en el sistema principal, ya que no los copiará.
->cd /mnt
->mkdir kk
->mount /dev/sdb1 kk
->cp -ax / kk


Una vez acabado, pasamos a poner el arranque al disco.
Por seguridad con el grub siempre creo una cárcel chroot y entro en ella para no tener sustos.
Para ello, antes montamos los sistemas necesarios para nuestro chroot.
Este paso no es necesario si con el grub se usan los parametros –boot-directory, pero considero que así evitamos riesgos innecesarios.

->cd /mnt/kk
->mount -t proc proc proc/
->mount -t sysfs sys sys/
->mount -t bind /dev dev/
->chroot kk


Ahora con un editor cualquiera cambiamos todas las referencias de nuestro disco duro maestro y las cambiamos por la referencia del disco duro usb.
Esto solo es necesario hacerlo en los ficheros /etc/fstab y /boot/grub/grub.cfg de nuestro chroot.

OJO!!!! no cambiar los ficheros del disco duro original!!
Para saber nuestros id de bloque, la instrucción es:

->blkid

Finalmente en el chroot, ejecutar:

grub-install –force /dev/sdb

El force no recuerdo haberlo utilizado nunca, pero en esta ocasión el sistema me ha obligado a ponerlo por que se quejaba de la bios uefi.

El disco duro ya está copiado y listo para ser usado en el nuevo ordenador.
by

Leave a Reply