El objetivo de esta entrada es testear como puedo clonar discos duros, ya sea para guardar copias de seguridad y poder restaurar el sistema completo en otro disco duro, como intentar virtualizar un linux para meterlo dentro de una maquina virtual.
1. COPIADO DE VM A VM
La primera prueba consiste en crear la maquina virtual 1 (VM1) con:
/dev/sda1: /boot
/dev/sda5: /
/dev/sda6: /var
/dev/sda7: swap
La maquina virtual 2 (VM2) la creo con un disco mas grande pero sin particionar.
1. Arrancar VM1 con systemrescuecd
2. copiar el mbr: dd if=/dev/sda of=sda.mbr count=1 bs=512
3. copiar tabla de particiones: sfdisk -d /dev/sda > sda.pt
4. con partimage creo una imagen de cada partición excepto de la swap
Ahora viene la restauración
1. Arrancar VM2 con systemrescuecd
2. recuperar mbr: dd if=sda.mbr of=/dev/sda
3. recuperar tabla de particiones: sfdisk /dev/sda < sda.pt
4. ya tenemos particiones por lo que recuperamos las imagenes con partimage
5. creamos la particion swap: mkswap /dev/sda7
Reinicio porque ya deberia funcionar, pero no funciona, parece como si el grub no estuviera instalado.
1. Arrancamos VM2 con systemrescuecd
2. montamos la estructura del disco:
mount /dev/sda5 /mnt/custom
mount /dev/sda1 /mnt/custom/boot
mount /dev/sda6 /mnt/custom/var
mount -o bind /dev /mnt/custom/dev
mount -o bind /proc /mnt/custom/proc
mount -o bind /sys /mnt/custom/sys
3. Reinstalamos grub desde el chroot del disco:
chroot /mnt/custom /usr/sbin/grub-install /dev/sda
funciona!
Notas: supongo que al tener que reinstalar grub, no haría falta copiar la mbr
Y supongo también que las particiones se podrian crear a mano sin tener que usar sfdisk
Una vez funciona, se puede intentar hacer mas grandes las particiones via gparted, por ejemplo
2. CLONANDO DISCO DURO Y PONERLO EN HARDWARE DIFERENTE
Aqui la prueba ha sido copiar un disco duro de una maquina linux física y restaurarlo en el disco duro de una máquina virtual. Con clonezilla ha sido facilote :) yuhuuuuu
3. CLONADO DE DISCO DURO COPIANDO A PIÑON
La idea de este tipo de clonado es copiar el contenido del sistema de archivos de una máquina física en linux a otra máquina, por ejemplo virtual, sin tener que detener la máquina física. Por ejemplo, virtualizar un servidor linux sin tener que pararlo y además sin necesidad que las particiones de la máq. virtual sean igual o superiores de la máq. real ya que copiamos los archivos directamente :).
En la maq. virtual:
Et vuala!!!! furula nen
Otra cosa que podemos hacer una vez tenemos arrancada la máq. virtual és:
1. COPIADO DE VM A VM
La primera prueba consiste en crear la maquina virtual 1 (VM1) con:
/dev/sda1: /boot
/dev/sda5: /
/dev/sda6: /var
/dev/sda7: swap
La maquina virtual 2 (VM2) la creo con un disco mas grande pero sin particionar.
1. Arrancar VM1 con systemrescuecd
2. copiar el mbr: dd if=/dev/sda of=sda.mbr count=1 bs=512
3. copiar tabla de particiones: sfdisk -d /dev/sda > sda.pt
4. con partimage creo una imagen de cada partición excepto de la swap
Ahora viene la restauración
1. Arrancar VM2 con systemrescuecd
2. recuperar mbr: dd if=sda.mbr of=/dev/sda
3. recuperar tabla de particiones: sfdisk /dev/sda < sda.pt
4. ya tenemos particiones por lo que recuperamos las imagenes con partimage
5. creamos la particion swap: mkswap /dev/sda7
Reinicio porque ya deberia funcionar, pero no funciona, parece como si el grub no estuviera instalado.
1. Arrancamos VM2 con systemrescuecd
2. montamos la estructura del disco:
mount /dev/sda5 /mnt/custom
mount /dev/sda1 /mnt/custom/boot
mount /dev/sda6 /mnt/custom/var
mount -o bind /dev /mnt/custom/dev
mount -o bind /proc /mnt/custom/proc
mount -o bind /sys /mnt/custom/sys
3. Reinstalamos grub desde el chroot del disco:
chroot /mnt/custom /usr/sbin/grub-install /dev/sda
funciona!
Notas: supongo que al tener que reinstalar grub, no haría falta copiar la mbr
Y supongo también que las particiones se podrian crear a mano sin tener que usar sfdisk
Una vez funciona, se puede intentar hacer mas grandes las particiones via gparted, por ejemplo
2. CLONANDO DISCO DURO Y PONERLO EN HARDWARE DIFERENTE
Aqui la prueba ha sido copiar un disco duro de una maquina linux física y restaurarlo en el disco duro de una máquina virtual. Con clonezilla ha sido facilote :) yuhuuuuu
- Arrancar con clonezilla la máquina física
- copiar las PARTICIONES en alguún sitio (yo he usado un servidor smb de la red)
- anotar las tabla de particiones.
- Arrancar máquina virtual con el clonezilla
- intentar restaurar las particiones, me dice que el disco duro no tiene particiones y no puede
- crear particiones en el disco virtual de tamaño y orden igual que la máquina física
- volver a intentar restaurar las particiones, ahora se queja de que el disco tiene ya particiones y que lo voy a perder todo (wtf!!!), en fin, que le dices que si y las restaura
- Reiniciar máquina virtual, no arranca, cosa de la boot supongo.
- Reiniciamos la máquina virtual con systemrescuecd y hacemos el mismo procedimiento del apartado anterior para instalar grub
- Reiniciamos máquina virtual y furula, pero hay algun problemilla con fstab, dice que no encuentra algun UUID (concretamente la swap), nada, le doy a SKIP (o podriamos arrancar la maquina con otra live cd) para recrear la swap y arreglar al fstab/swap
- Reiniciamos máquina virtual y furula al 100% aunque hay cosas que no van, por ejemplo en la máquina física la eth1 y en la maq. virtual es la eth0 y cositas así..
3. CLONADO DE DISCO DURO COPIANDO A PIÑON
La idea de este tipo de clonado es copiar el contenido del sistema de archivos de una máquina física en linux a otra máquina, por ejemplo virtual, sin tener que detener la máquina física. Por ejemplo, virtualizar un servidor linux sin tener que pararlo y además sin necesidad que las particiones de la máq. virtual sean igual o superiores de la máq. real ya que copiamos los archivos directamente :).
- Crear maq. virtual
- Crear tabla de particiones del disco virtual
- Crear particiones de tamaño suficiente para albergar los datos (o como si quieres solo 1 particion donde meterlo todo)
- mkdir /mnt/kk
- mount /
/mnt/kk -o bind - cd /mnt/kk
- tar -czpf - . | pv -b -t -a | nc
ip_maq_virt 7777 - Repetir para cada partición
En la maq. virtual:
- Arrancar con systemrescuecd
- crear sistema de archivos en las particiones, ej: mkfs.ext4 /dev/sda1
- creamos la swap: mkswap /dev/sda7 (por ejemplo)
- montamos la particion: mount /dev/sda1 /mnt/custom
- cd /mnt/custom
- nc -l -p 7777 | tar -xzpsf -
- Repetir para el copiado de cada partición
- montamos de nuevo la particion root en /mnt/custom
- cd /mnt/custom/etc
- ejecutamos blkid para ver los UUID de las particiones
- modificamos /mnt/custom/etc/fstab los UUID correspondientes a cada partición.
- montamos la particion boot
- vamos a /.../grub/grub.cfg y revisamos que las UUID que tiene grub apunten a los UUID correctos de nuestras nuevas particiones. Aquí va bien conocer las UUID que había en la máq. origen y sus correspondientes UUID en la maq destino, así hacer un buscar-reemplazar de UUID y lishto.
Et vuala!!!! furula nen
Otra cosa que podemos hacer una vez tenemos arrancada la máq. virtual és:
- grub-mkconfig > /boot/grub/grub.cfg
- grub-install /dev/sda
Comentarios
Funciona con servidores físicos con discos en RAID?
No lo se, me imagino que si ya que copio los datos de las particiones y despues reconstruyes la boot del disco final aunque de debería probar ya que seguramente salen sorpresitas.
Además, la reconstrucción del boot depende de la distro que hayas instalado/copiado, en este caso a sido un mero grub-install, pero podria no serlo.
Otra dificultad añadida seria que como cambia el hardware (el original tiene raid y la virtual no) haya que tocar algo. Esta es la 2a prueba del post (que aun no he realizado).
yeyeah