Datos personales

jueves, 23 de septiembre de 2010

De VMware Workstation 7 a Virtualbox OSE

Resumen


Intentando importar en Virtualbox OSE una máquina virtual VMware Workstation 7 me he encontrado con una serie de problemas en la definición del hardware virtual.

Escenario


Sistema origen:
  • Host: Debian 5.0.6 (Lenny) / VMware Workstation 7.1.1  build-282343
  • VM: Windows XP SP3 (virtualHW.version = "7")
Sistema destino:
  • Host: Ubuntu 10.04 / VirtualBox OSE 3.1.6 r59338

Pasos


De forma esquemática, se trata de hacer lo siguiente:
  1. Desinstalar VMware tools (tampoco hay problema por suprimirlas una vez tienes la VM corriendo en Virtualbox).
  2. Exportar la VM empleando la herramienta ovftool (http://www.vmware.com/support/developer/ovf/)
  3. Ajustar el hardware virtual (detalles más abajo)
  4. Importar la VM en Virtualbox
  5. Instalar las "guest additions" de Virtualbox.

Conversión a OVF

Ejecutamos:

/usr/lib/vmware/ovftool/ovftool /camino/a/VM/WinXP-SP3Pro.vmx /tmp/WinXP-SP3Pro.ovf


Problemas encontrados

"Unkown resource type"


El primer error aparece en este pantallazo:


Parece ser que no le gustaba la tarjeta de sonido. La he eliminado del hardware virtual editando el fichero .ovf para suprimir esta sección:


<Item ovf:required="false">
<rasd:AddressOnParent>3</rasd:AddressOnParent>
<rasd:AutomaticAllocation>false</rasd:AutomaticAllocation>
<rasd:Description>Sound Card</rasd:Description>
<rasd:ElementName>sound</rasd:ElementName>
<rasd:InstanceID>11</rasd:InstanceID>
<rasd:ResourceSubType>
vmware.soundcard.ensoniq1371
</rasd:ResourceSubType>
<rasd:ResourceType>1</rasd:ResourceType>
</Item>


Múltiples controladoras de disco


Por alguna razón, la máquina exportada incluía varias controladoras de disco IDE y parece ser que Virtualbox no soporta este tipo de configuración hardware.

Para solucionarlo hay que eliminar una de ellas, asegurándose de que no quede ningún dispositivo IDE huérfano.

En mi caso, he eliminado la controladora con el número de instancia 5:


<Item>
<rasd:Address>1</rasd:Address>
<rasd:Description>IDE Controller</rasd:Description>
<rasd:ElementName>ideController1</rasd:ElementName>
<rasd:InstanceID>5</rasd:InstanceID>
<rasd:ResourceType>5</rasd:ResourceType>
</Item>


Por lo tanto, será necesario cambiar el "Parent" de los dispositivos de la instancia 5. En mi caso, sólo había un CDROM:


<Item>
...
<rasd:ElementName>cdrom1</rasd:ElementName>
<rasd:InstanceID>9</rasd:InstanceID>
-<rasd:Parent>5</rasd:Parent>
+<rasd:Parent>6</rasd:Parent>
<rasd:ResourceType>15</rasd:ResourceType>
...
</Item>


Ajustes en el "manifest" de la VM


Existe un fichero con la extensión .mf que almacena las sumas SHA-1 del fichero .ovf y del fichero que contiene el disco virtual.

Al haber modificado el fichero .ovf es necesario recalcular la suma y corregirla en el fichero .mf. Esto no presenta mayor problema ya que en cualquier distribución GNU encontrarás un paquete con la utilidad apropiada.