Convertir un disco físico en un disco virtual

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.

Caso 1

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.

Caso 2

Este caso es mas sencillo ya que la imagen del disco se copiara a una memoria usb, al igual que en el caso anterior necesitaremos lo siguiente:

  • Un LiveCD que contenga los siguientes programas: dd y pv.

Una vez iniciado el LiveCD conectamos la memoria usb y ejecutamos lo siguiente en un terminal como root (suponiendo que el disco que queremos clonar sea /dev/sda).

# dd if=/dev/sda | pv | dd of=/media/memoria-usb/imagen.raw

El comando pv nos permite ver la velocidad y la cantidad de información que ha sido copiada a la memoria usb.

En ambos casos luego de finalizar el procedimiento podemos comprobar que toda la información se encuentra dentro de la imagen mediante los siguientes comandos.

# mkdir -p /tmp/prueba
# mount -o loop /donde-este-la-imagen/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…

4 comentarios en “Convertir un disco físico en un disco virtual

  1. tengo Windows instalado en un disco vdi de forma virtual y querría que ese fuese el disco principal del ordenador huésped, (Windows también).

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.