Supongamos que tenemos una máquina con GNU/Linux y queremos convertirla en una maquina virtual, para lograr esto, lo que debemos hacer es trasladar el contenido del disco duro a una imagen alojada en un equipo remoto, para luego poder utilizar dicha imagen con algún hipervisor como KVM o Virtualbox.
Antes de realizar el procedimiento debemos asegurarnos de tener las siguientes herramientas:
- Un LiveCD que contenga los siguientes programas: dd, netcat, bzip2.
- Una máquina adicional con GNU/Linux instalado y las siguientes herramientas: dd, netcat, virtualbox o kvm, bzip2.
Para comenzar iniciamos con un LiveCD el equipo que deseamos clonar (en adelante lo llamaremos equipo A) y montamos el disco a clonar, luego abrimos una terminal como root, nos desplazamos a la raíz del disco y ejecutamos el siguiente comando.
# dd if=/dev/zero of=0bits bs=20M; rm 0bits
Este comando llena con ceros el espacio marcado como vacío en el disco, esto hará mas rápido el proceso de compresión de los datos durante la transmisión. Luego de realizar esto vamos al equipo donde almacenaremos la imagen (en adelante lo llamaremos equipo B) y ejecutamos lo siguiente.
# nc -l 12345|bzip2 -d|dd bs=16M of=/tmp/imagen.raw
Este comando le indica a netcat que debe escuchar en el puerto 12345 y que el tráfico entrante debe descomprimirse con bzip2 y luego volcarlo en el archivo imagen.raw con el comando dd.
Ahora regresamos al equipo A y hacemos lo siguiente (suponiendo que el disco que queremos clonar sea /dev/sda y la ip del equipo B sea 192.168.1.1).
# dd bs=16M if=/dev/sda|bzip2 -c|nc 192.168.1.1 12345
Esto inicia la transferencia de la información desde el equipo A hacia el equipo B, como se puede observar la transmisión se hace en bloques de 16 Mb que se comprimirán antes de enviarlos a B mediante netcat. La duración de este proceso dependerá del tamaño del disco que se quiere clonar, lo cual puede variar de pocos minutos a varias horas.
Hago la acotación de que durante este proceso no se mostrará ninguna información de progreso, solo devolverá el prompt al finalizar.
Luego de finalizado el proceso, podemos comprobar que toda la información se encuentra dentro de la imagen mediante los siguientes comandos.
# mkdir -p /tmp/prueba # mount -o loop /tmp/imagen.raw /tmp/prueba # cd /tmp/prueba # ls # cd .. # umount /tmp/prueba
Bueno, ya tenemos nuestra imagen con la totalidad de la información del disco duro del equipo A, ahora debemos convertirla al formato de disco del hipervisor que vamos a utilizar y luego la compactaremos para hacerla más manejable.
En el caso de Virtualbox el procedimiento es el siguiente.
$ VBoxManage convertfromraw imagen.raw --format vdi imagen.vdi $ VBoxManage modifyhd --compact imagen.vdi
Y en el caso de KVM este es el procedimiento.
$ qemu-img convert -f raw -O qcow2 imagen.raw imagen.qcow2 $ qemu-img convert -c -O qcow2 imagen.qcow2 imagen2.qcow2
Este procedimiento puede tomar bastante tiempo pero a la final nos permitirá tener un mayor control de nuestra información y ser mas eficientes con el uso de nuestros recursos, siendo esta la meta de todo administrador de sistemas.
Espero que esta información les sea útil, saludos…
Archivado en: Uncategorized Tagged: clonar, disco, kvm, netcat, virtualbox, virtualizacion
