En el desarrollo web actual (2016), se hace necesario trabajar con un entorno de desarrollo unificado, por tal razón soluciones que incluyan maquinas virtual (VM) como Oracle VM virtualBox integrado con Vagrant son muy populares. Sin embargo, a veces se originan problemas, eso me sucedió hace poco tiempo con un mensaje de error en Vagrant del tipo:
The guest machine entered an invalid state while waiting for it
to boot. Valid states are 'starting, running'. The machine is in the
'poweroff' state. Please verify everything is configured
properly ...
Un problema se origina en VirtualBox, en las computadoras con Microsoft Windows, en mi caso Windows 7 donde aparecia el mensaje: “E_FAIL (0x80004005)” y no permite arrancar la máquina virtual. Ahora veremos cómo se resuelve este problema.
Mensajes de Error
El mensaje de error completo entregado desde la consola por Vagrant era:
The guest machine entered an invalid state while waiting for it
to boot. Valid states are 'starting, running'. The machine is in the
'poweroff' state. Please verify everything is configured
properly and try again.
If the provider you're using has a GUI that comes with it,
it is often helpful to open that and watch the machine, since the
GUI often has more helpful error messages than Vagrant can retrieve.
For example, if you're using VirtualBox, run `vagrant up` while the
VirtualBox GUI is open.
Y el mensaje de error de VirtualBox en windows, se leia “Fallo al abrir una sesión para la máquina virtual…” o en inglés “Failed to open a session …”,con el detalle:
Código Resultado:
E_FAIL (0x80004005)
Componente:
Machine
Si además revisamos el archivo log de la maquina virtual o el historial de eventos, para disponer de una información más detallada (que en este caso no ayudaba) el problema se inicia con:
ntopendirectoryobject failed on \driver: 0xc0000022
Aunque el mensaje anterior va a depender de la versión de VirtualBox, en este caso se trataba de la versión 5.0.14 para Windows.
Solución
El problema no es de Vagrant sino que se origina en VirtualBox.
Después de darle muchas vueltas al problema, en donde encontré muchas sugerencias que no funcionaron, sugerencias del tipo: “Desmontar la unidad de CD de la máquina virtual (VM)…” o “Use Universal Theme Patcher…”, incluso algunos sugerían que era un problema con el antivirus Avira.
Ninguna de ellas resolvieron el problema, aunque la solución era simple y proviene desde el mismo fabricante de virtualBox. La solución es:
Desinstale la versión de virtualBox que da el problema, e instale virtualBox versión 4.3.12.
Procedimiento para la instalación de VirtualBox 4.3.12
Primero hay que desinstalar la versión de virtualBox que está dando el problema, para tal efecto se debe eliminar todos los archivos de las maquinas virtuales creadas, esto se hace desde el propio virtualBox y luego desinstalar virtualBox.
En seguida se debe descargar la versión de virtualBox 4.3.12, esta se encuentra en las versiones anteriores de virtualBox en la propia página web del fabricante, la descargar para Windows se hace desde: http://download.virtualbox.org/virtualbox/4.3.12/VirtualBox-4.3.12-93733-Win.exe
Haciendo la anterior queda solucionado el error E_FAIL 0x80004005 de virtualBox en Windows y ahora VirtualBox permite arrancar la máquina virtual (VM).
Enlaces
- Descargar Vagrant: https://www.vagrantup.com/downloads.html
- Descargar versiones antiguas de virtualBox: https://www.virtualbox.org/wiki/Download_Old_Builds
- Solución del fabricante para el problema de virtualesBox en máquinas Windows, Ticket #13187: https://www.virtualbox.org/ticket/13187?cversion=2&cnum_hist=23