Conversión virtualbox

Este tutorial pretende demostrar la forma de conversión de formato qcow2 a vdi y viceversa.

El formato de imagen qcow (QEMU Copy-On-Write) es uno de los formatos de imagen de disco apoyado por el emulador QEMU. Es una representación de un dispositivo del tamaño de bloque fijo en un archivo.

Los archivos que contienen la extensión de archivo vdi son los más comúnmente utilizados para la aplicación Oracle VM VirtualBox virtualización de escritorio.

Los archivos VDI que son utilizados por este software son archivos virtuales de disco que se pueden montar como un disco duro separado en Windows, Mac y Unix operativos.

Estos archivos pueden permitir a los usuarios ejecutar aplicaciones escritas para sistemas operativos diferentes utilizando un solo disco duro.

Para la conversión, es necesario utilizar un interprete de órdenes, más conocido como Terminal, Simbolo del Sistema o Shell. Además tener instalada la aplicación qemu. Esta aplicación puede ser descargada gratuitamente para cada Sistema Operativo.

Conversión de qcow2 a vdi
Abrimos la Terminal y seguimos los siguientes pasos:

1. El primer paso es convertir el archivo qcow2 a un formato RAW que entonces la utilidad VBoxManage puede convertir al formato VDI.

Para ello, dentro de la terminal nos dirigimos hasta el directorio donde se encuentra el archivo que queremos convertir. Para este ejemplo, el nombre del archivo es 'prueba.qcow2', que se encuentre dentro de la carpeta 'Prueba'.



Una vez dentro, ejecutamos la siguiente linea:

qemu-img convert -f qcow2 prueba.qcow2 -O raw prueba_raw.img



'prueba_raw.img' es el nombre con el cual guardaremos el nuevo formato. Con este comando, estamos convirtiendo el .qcow2 a .img.



2. El segundo paso es convertir, mediante la herramienta de línea de comandos de VirtualBox, en un formato VDI que se puede ejecutar con VirtualBox.

Entonces ejecutamos la siguiente linea, siempre desde el directorio en donde se encuentra el .img a convertir:

VBoxManage convertfromraw --format VDI prueba_raw.img prueba_vdi.vdi



'prueba_vdi.vdi' representa el nombre con el cual guardamos el nuevo formato.

Y, de esta forma, tenemos convertido el formato a .vdi



Conversión de vdi a qcow2
Esta conversión es semejante a todo lo expuesto anteriormente, sólo que a la inversa.

1. En primer lugar debemos convertir el .vdi a .img.

Para este ejemplo, llamaremos a nuestro formato vdi 'prueba_vdi.vdi'.

Entonces, introducimos la siguiente linea(siempre desde el directorio donde se encuentra nuestro archivo):

VBoxManage clonehd --format RAW prueba_vdi.vdi prueba2_img.img



'prueba2_img.img' es el nombre con el cual guardamos el archivo .img.

2. El segundo paso, finalmente es convertir el .img al formato .qcow2.

Para ello, escribimos la linea:

qemu-img convert -f raw prueba2_img.img -O qcow2 prueba2.qcow



Y de esta forma convertimos el .vdi a .qcow2.



Observaciones para ejecutar VMs nativas de VirtualBox en cualquier hypervisor VMWare
Para poder virtualizar una VM creada con VirtualBox en algún hipervisor de la familia VMWare es necesario exportarla en formato .ova y luego importarla con el hipervisor VMWare elegido. Éste proceso se suele llevar a cabo sin inconvenientes pero en ciertas ocasiones pueden surgir problemas de compatibilidad dependientes de la versión del VMWare y VirtualBox utilizados.

Uno de los errores que pueden surgir durante el proceso de importación de una VM exportada desde VirtualBox en el formato .ova es el siguiente

This OVF package requires unsupported hardware. Details: Line 33: Unsupported hardware family 'virtualbox-2.2'.

En éste caso la solución consiste en editar las líneas que causan conflictos en el archivo OVF que está dentro del archivo .ova, para ello es necesario seguir los siguientes pasos:


 * 1) Extraer los archivos .ovf y .vmdk del archivo .ova con 7zip o alguna otra herramienta de compresión ya que el archivo .ova es simplemente un archivo TAR.
 * 2) Editar el archivo .ovf (que es un simple XML) y cambiar las siguientes líneas:

virtualbox-2.2

por

vmx-07

y también cambiar

 0 sataController0 SATA Controller sataController0 5 AHCI</rasd:ResourceSubType> <rasd:ResourceType>20</rasd:ResourceType> </Item>

por

<Item> 0</rasd:Address> SCSIController</rasd:Caption> SCSI Controller</rasd:Description> SCSIController</rasd:ElementName> 5</rasd:InstanceID> <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType> <rasd:ResourceType>6</rasd:ResourceType> </Item>

Con esto será suficiente y solo hará falta volver a intentar la importación desde el VMWare pero ésta vez seleccionando el archivo .ovf en vez del .ova. Para que ésto no falle los archivos .vmdk y .ovf deberán estar en el mismo directorio.

Si vuelven a surgir errores es posible que la VM original haya tenido algún adaptador de sonido u otro hardware que no es soportado en VMWare, en éste caso solo será necesario eliminar la porción de código correspondiente al hardware no soportado del XML, normalmente cada porción de código que se encuentra dentro de los tags <Item></Item> corresponde a un componente de hardware de la VM.