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.

Clonar un disco duro .vdi de Virtual Box

Si bien cuando estudiaba hacíamos los clonados de disco en VirtualBox tal como se harían en una máquina real, tirando del Clonezilla, existe una forma más práctica de lograrlo.

En Windows la cosa es lanzar una consola de comandos (cmd) y situarnos en la carpeta en la que hubiéramos instalado VirtualBox. Una vez allí basta con usar el siguiente comando:

VBoxManage.exe clonehd ../rutadeldisclonar.vdi ../rutadelresultado.vdi 

Obviamente tenéis que cambiar ../rutadeldisclonar.vdi por la ruta real del disco .vdi que queréis clonar, y tres cuartos de lo mismo con ../rutadelresultado.vdi que es donde se creará el nuevo archivo.

En el caso de Linux la cosa es prácticamente igual: lanzáis el terminal, os ubicáis en la carpeta donde se instaló el VirtualBox y desde allí lanzáis

sudo VBoxManage clonehd ../rutadeldisclonar.vdi ../rutadelresultado.vdi 

Como antes, cambiando las rutas fictias por las que correspondan. Y listo, disco virtual clonado por si se os corrompe el que está en uso.