Solución al error E_FAIL(0x80004005) de Virtual Box

Hoy me encontraba con un problema con VirtualBox, en un equipo no me arrancaba ninguna máquina. Daba igual que fuera una máquina importada desde otro ordenador que que se tratara de una máquina creada desde 0. Al ejecutarla saltaba el error E_FAIL(0x80004005) . Intenté ojear los logs para ver si veía algo claro, pero el tamaño del mismo no lo hacía muy práctico ¿por qué fallaba? Pues no tengo ni idea. ¿Solución? Encontré varias:

Encontré un blog donde se afirma que se arregla desmontando la unidad de cd, pero no me funcionó tras hacerlo.

Encontré otro enlace donde decían que bastaba con ir a C:\Users\COMPUTER_NAME\.VirtualBox\Machines\VM_NAME y allí buscar el archivo VM_NAME.xml-prev para editar su nombre y quitarle el sufijo -prev. Lo probé pero tampoco funcionó.

Finalmente este vídeo me trajo la solución: en lugar de pulsar en la flecha inicio para arrancar la máquina hay que darle al botón que tiene al lado para desplegar el menú y allí elegir Inicio Desacoplable.

¿Por qué funcionó esta y el resto no? Bueno, a estas alturas no conozco todavía la causa del error, pero mirando con detenimiento el mensaje de error veo que en la solución que me funcionó el fallo era en el componente Machine Wrap. Asumo que el código de error puede ser el mismo para diversos componentes y que cada uno tiene una solución. Fíjate en el ejemplo que viene en el blog donde recomiendan desmontar la unidad de cd, podrás ver que el componente que falla simplemente es descrito como Machine mientras que en el que implica modificar el nombre del fichero de configuración xml el fallo era en el componente VirtualBox. Por tanto no hay una única solución a este error, todo depende de qué componente sea el afectado.

Instalando Guest Additions de VirtualBox en Lubuntu 15.10

Primer contacto con una versión 15.10 de Ubuntu: esta mañana he tenido que montar una máquina vitual en el curro para un experimento. Por temas de ligereza ha sido un Lubuntu, la versión con el ligero escritorio LXDE, concretamente la vesión de 32 bits.

Vamos a meternos en harina (en el tema de las guest additions, no era un chiste sobre Albert Rivera) ¿Cómo instalo la Guest Additions?

  • Abrimos un terminal y ejecutamos sudo apt-get install virtualbox-guest-additions-iso
  • Le llevará un ratillo (al menos a mi me lo llevó). Al acabar vamos al menú desplegable de la esquina inferior izquierda, seleccionamos Preferencias y desde allí escogemos Software y Actualizaciones. Os dejo esta imagen ilustrativa:
    Lubuntu software actualizacións
  • Ahora nos queda desmarcar las opciones de usar los controladores de Virtual Box en lugar de los de serie del sistema operativo, tal que así: Software y Actualizaciones

Y tras un reinicio la cosa debería ir ya como la seda.

Software para virtualización (doméstico)

En fin, de nuevo a sugerencia del señor Mozano una entrada sobre virtualización.

¿Por qué virtualizar? Bueno, si tienes un ordenador medianamente potente te habrás pispado de que tienes potencia suficiente para mover varios sistemas operativos. De vez en cuando te puede apetecer probar una beta inestable de una distribución de Linux (para esos días en los que no puedes esperar a ver las novedades), o tener a mano un Windows 98, un XP o hasta un equipo con MS-DOS para trastear con algún programa o juego viejo, que ya no está soportado en las versiones más modernas de Windows (por ejemplo, me pasó con el emulador de Neo Geo NeoRage, que no funcionaba en Windows Vista). O simplemente para realizar experimentos, como ataques contra un servidor. Este software te permite crear un archivo que funcione como disco duro virtual y ejecutar otro sistema operativo en tu ordenador, como un ordenador dentro del tuyo (lo que llamamos máquina virtual).

El software más popular para virtualizar es el siguiente:

  • Virtual Box: Era un programa original de Sun Microsystems que actualmente ha quedado bajo el control de Oracle. Es gratis y tiene versiones para Windows, MacOS, Linux y, como no, Solaris (sólo jodería que siendo un producto de SUN no tuviese versión en su propio sistema operativo). Su gran atractivo son las Guest Additions, que nos permiten muchas chuminadas, como compartir con facilidad archivos y carpetas entra la máquina virtual y la máquina física, usar las ventanas en “modo fluído”, como si el sistema operativo virtualizado fuera un programa en una ventana más. Además, permite clonar discos duros virtuales con gran facilidad y hacer “snapshots” del sistema para deshacer cambios en las pruebas. En mi casa es el que más utilizo.
  • VM Ware: Este software canadiense tiene dos versiones: gratis y de pago (alrededor de 199$), además de otra versión para servidores de la que no hablaremos, ya que no viene al caso. VMWare Player es la versión simple y doméstica, que permite simplemente descargar máquinas y ejecutarlas. La versión de pago, VMWare Workstation añade funcionalidades como una mayor integración entre máquina física y virtual, posibilidad de crear nuestras propias máquinas, creación de snapshots, permite deshacer y repetir cambios, compartir máquinas virtuales en red… Está disponible en Linux y en Windows.
  • Windows Virtual PC: Un limitado producto de Microsoft pero que puede ser muy útil. Sólo disponible para Windows y sólo permite crear máquinas virtuales de Windows. En principio parece un poco chorras la cosa, ok, pero tiene ciertas ventajas. Por ejemplo, pongamos que tienes un Windows 7  y una máquina virtual de Windows XP para usar… el Neo Rage que citaba antes, mismamente. Virtual PC te permitirá instalar Neo Rage en el XP, crear un acceso directo en el escritorio del Windows 7 y ejecutar la aplicación de forma que te parecerá que se ejecuta nativamente (vamos, como si usaras Wine en Linux). Es una opción interesante para usuarios de Windows que quieran usar programas que se han quedado incompatibles con su SO.
  • QEMU: Disponible desde no hace mucho para todas las plataformas (hasta hace un año y pico sólo existía para Linux), es una opción libre y muy potente. La verdad, no he llegado a trabajar con él en profundidad. Permite trabajar sobre todo tipo de arquitecturas (x86, AMD64, Power PC, SPARC… aunque el mejor rendimiento se consigue con una versión aceleraca, kqemu, en arquitectura i386), ser utilizado para proveer hosting virtual, hacer virtualización de escritorio… en él se basa Wine para ejecutar los programas de Windows sobre arquitecturas no Intel. Tengo pendiente profundizar, pero las posibilidades parecen casi infinitas.
  • Parallels: Famoso sobre todo por su versión para MacOS, existe también para Windows y Linux, aunque es menos popular. De pago (79 $), permite emulación de escritorio con una particularidad, cuando se pasa de la máquina física a la virtual fuerza a que el equipo anfitrión  renuncie a parte de su potencia para cederlo a la virtualización.

En resumen ¿Con cual nos  quedamos? A falta de profundizar en QEMU, yo me decanto por Virtual Box. Reconozco que es menos potente que VMWare y menos intuitivo que Parallels, pero incluye muchas variadas y potentes opciones totalmente gratis, es multiplataforma, la curva de aprendizaje no es muy exagerada y permite virtualizar casi cualquier sistema operativo. Para el usuario doméstico, y para las pruebas básicas de un desarrollador, da de sobra. Además, las máquinas virtuales que creas con Virtual Box las puedes ejecutar luego tanto en VMWare como en Parallels, y viceversa, puedes abrir con él un disco duro virtual creado con los otros. Además, desde la inclusión del modo fluído se ha superado su gran handicap frente a sus otros competidores. Si quieres virtualizar sólo para usar programas antiguos en Windows, entonces prueba Virtual PC.

Crear un USB arrancable con un linux usando Lili USB Creator

Lili USB Creator, abreviatura de Linux Live USB Creator, es un software gratuito para Windows que permite crear un usb arrancable de Linux fácilmente, desde un archivo .zip, una imágen .iso, un cd-rom o hasta descargando desde una red.

El primer paso, claro está, es descargar el software desde su página oficial. Una vez instalado necesitas una distribución de Linux (he hecho la prueba con Wifiway, Lubuntu 12.04, Debian 6.0 y Galinux, todos desde .iso menos Galinux, que tenía un cd que me habían regalado cuando empecé el ciclo) y un USB con el tamaño suficiente. La interfaz es muy intuitiva: Selecciona el dispositivo USB, la “fuente” (el archivo donde esté la distribución de Linux), espera mientras comprueba la validez de la misma, tienes la opción de “Tamaño de persistencia” para Virtual Box (que no he podido probar porque en Windows Vista/Windows 7 no va) y, tal vez el punto que requiere una poca de explicación, el paso de las opciones:

  1. Ocultar archivos creados: Bueno, esto requiere poca explicación. Si quieres crearlos como archivos ocultos puedes, si no pues será visibles en Windows.
  2. Formatear dispositivo en FAT32: Borrará los datos que tengas en el pendrive y formateará este como FAT32. Recuerda que el tamaño máximo de archivo en este formato es de 4GB y de volúmen creo que la propia Microsoft no recomienda usarlo en volúmenes mayores de 32 gigas (aunque en teoría podría abrirlos de 2TB). El caso, que si es un pen de 4GB es recomendable, y si es mayor pasad de todo.
  3. Activar Iniciar LinuxLive en Windows: Si seleccionas esta opción te permitirá virtualizar el Linux desde Windows sin necesidad de que instales un software de virtualización en tu equipo. Aunque tiene un poco de trampa, como te explico más abajo.

En fin, tras esto el paso 5: pulsáis el botón de creación y a vivir.

Una vez creado tenéis dos opciones: usarlo como USB arrancable o virtualizar en vuestro Windows (si lo habéis elegido como opción en el punto 3 del paso 4).

Para usarlo como USB arrancable tenéis que entrar en la BIOS, o en equipos más modernos en la selección de arranque (generalmente pulsando F2 o F8 durante la primera fase del arranque, antes de que empiece a cargar el SO), y con el USB puesto elegir Arranque desde USB (obviamente la opción estará en inglés). No todas las placas base que tienen USB te permiten arrancar desde él, así que igual no tienes esta posibilidad.

Una vez arrancado podrás elegir si quieres probarlo en modo Live, para testearlo en tu equipo sin hacer cambios, si quieres ejecutar un test de memoria o si quieres instalarlo como tu nuevo sistema operativo. Bueno, las opciones que tendrías también desde un cd de arranque, vamos.

Si habéis elegido la opción de LinuxLive en Windows debéis entrar en el pen y buscar la carpeta VirtualBox, dentro tendrás dos ejecutables: Virtualize_this_key.exe y VirtualBox.exe. El primero lanza el Linux de golpe, ejecutado a través del Virtual Box y el segundo abre la interfaz completa de Virtual Box. Ya decía arriba que lo de “sin necesidad de tener instalado un software de virtualización” era un poco trampa, porque lo que hace este programa es meterte en el pen una versión portable de Virtual Box con la que trabajar.

En cualquier caso, se trata de una buena herramienta de creación de USB de Linux desde Windows, que merece la oportunidad de que la pruebes.