VirtualBox E_FAIL (0x80004005)
Olá camarada !
Ao iniciar minha VM para iniciar os meus estudos (estou estudando docker atualmente), eu me deparei com um erro ao inicializá-la: E_FAIL (0x80004005)
Não nego que foi um baita susto ! Após o baque inicial, fui tentar o de praxe. Reiniciar a máquina virtual, reiniciar o notebook…mas o resultado foi o mesmo, 🙁
Resolvi então partir para a segunda opção, e fui procurar nos logs da VM. Para quem não sabe onde fica, está no caminho C:/<diretorio das suas VMs>/<nome da sua VM>/Logs
O único arquivo que tinha a data de minha última execução, era o VBoxHardening.log . Abri e fui dar uma vasculhada para verificar se achava algo útil para entender o problema.
A única referência que encontrei, não me dizia muita coisa, apenas que ele executou até certo ponto e simplesmente abortou:
30e4.221c: Terminating the normal way: rcExit=0
57d0.34e0: supR3HardNtChildWaitFor[2]: Quitting: ExitCode=0x0 (rcNtWait=0x0, rcNt1=0x0, rcNt2=0x103, rcNt3=0x103, 24468 ms, the end);
13a0.4794: supR3HardNtChildWaitFor[1]: Quitting: ExitCode=0x0 (rcNtWait=0x0, rcNt1=0x0, rcNt2=0x103, rcNt3=0x103, 24936 ms, the end);
Fui então verificar os logs da minha última operação de desligamento da VM. Primeiro no VBox.log.
03:06:00.359387 GIM: KVM: Resetting MSRs
03:06:00.359458 NEM: Destroying partition 0000000002019d10 with its 4 VCpus…
03:06:00.360583 Changing the VM state from 'DESTROYING' to 'TERMINATED'
03:06:00.361690 Console: Machine state changed to 'PoweredOff'
03:06:00.361840 VBoxHeadless: processEventQueue: VERR_INTERRUPTED, termination requested
03:06:00.869871 VBoxHeadless: exiting
03:06:00.869967 VBoxHeadless: stopping windows message loop
Depois na VboxUI.log
00:00:01.037668 GUI: UIMediumEnumerator: Medium-enumeration started…
00:00:01.057734 GUI: UIFrameBufferPrivate::performResize: Size=640x480, Using fallback buffer since no source bitmap is provided
00:00:01.169079 GUI: UIMachineViewScale::resendSizeHint: Restoring guest size-hint for screen 0 to 800x600
00:00:01.280803 GUI: UIMediumEnumerator: Medium-enumeration finished!
00:00:01.280841 GUI: UIFrameBufferPrivate::performResize: Size=800x600, Using fallback buffer since no source bitmap is provided
00:00:01.282668 GUI: UISession::sltAdditionsChange: GA state really changed, notifying listeners
00:00:01.282717 GUI: UISession::sltAdditionsChange: GA state change event came, notifying listeners
00:00:01.283534 GUI: 2D video acceleration is disabled
00:00:01.283656 GUI: HID LEDs sync is enabled
00:00:01.950419 GUI: UIFrameBufferPrivate::performResize: Size=800x600, Using fallback buffer since no source bitmap is provided
00:00:01.951283 GUI: UIFrameBufferPrivate::performResize: Size=800x600, Using fallback buffer since no source bitmap is provided
00:00:01.960749 GUI: UIMachineLogic: Guest-screen count changed
00:00:08.455718 GUI: UIFrameBufferPrivate::performResize: Size=800x600, Using fallback buffer since no source bitmap is provided
00:00:08.475044 GUI: UIFrameBufferPrivate::performResize: Size=800x600, Using fallback buffer since no source bitmap is provided
00:00:08.476017 GUI: UIMachineLogic: Guest-screen count changed
00:00:40.237087 GUI: UIFrameBufferPrivate::performResize: Size=800x600, Using fallback buffer since no source bitmap is provided
00:00:40.624471 GUI: Request to close Runtime UI because VM is powered off already.
00:00:40.624500 GUI: Passing request to close Runtime UI from machine-logic to UI session.
00:00:40.825993 ERROR [COM]: aRC=E_UNEXPECTED (0x8000ffff) aIID={c0447716-ff5a-4795-b57a-ecd5fffa18a4} aComponent={SessionWrap} aText={The session is not locked (session state: Unlocked)}, preserve=false aResultDetail=0
Ficou claro que algo deu ruim ao finalizar a VM. Infelizmente, isso já estava claro e as informações aqui não foram de muita valia, além do fato de corroborar que realmente algo deu muito errado no encerramento da VM.
Evitando o Mr. Google ao máximo, fui procurar no site oficial do VirtualBox. E lá no fórum encontrei referências ao erro E_FAIL (0x80004005) e um procedimento para sua correção.
Resolvi então testá-lo, já que não estava a fim de perder todo o meu material de estudo. Era um procedimento onde você alterava o arquivo <sua VM>.xml-prev para <sua VM>.xml e salvava o arquivo original. Não FUNCIONOU !
Desisti e fui ao Google. Encontrei várias soluções:
- Desativar o HyperV no Windows: NÃO FUNCIONOU
- Alterar o arquivo <sua VM>.vbox-prev para <sua VM>.vbox: NÃO FUNCIONOU
- Alterar alguns registros no regedit (vai se f…#$%): NÃO FUNCIONOU
Depois de MUITAS HORAS perdidas, resolvi dar um passo atrás e reavaliar. Até que tive uma epifania e resolvi criar uma nova VM, mas utilizando o mesmo disco da VM com erro ! 🙂
Aqui está o pulo do gato ! Utilizei o mesmo disco da máquina com falha !
Olha ela criada abaixo ! 🙂
Refiz as configurações de redes e executei a máquina. Fiquei na expectativa de que tudo desse certo ! 🙂
Olha lá ela na pré-visualização !!!! FUNCIONOU !!!!
Vou ser sincero. Não sei o que ocorre com o VirtualBox quando algo anormal acontece no desligamento da VM. Mas o que ficou claro para mim, é que o problema está na execução em si e não no SO instalado dentro do disco virtual. Estou afirmando apenas neste caso, é claro ! Algo se corrompeu nos arquivos necessários para a execução.
Se você tiver alguma informação adicional, ou quiser relatar algum problema parecido mas com outra solução, basta escrever aqui nos comentários !
Um grande abraço
Referências
Sergio obrigado!
aconteceu o mesmo comigo e o seu artigo ajudou a recuperara minha vm
Fico feliz que ao artigo tenha sido útil Gilson ! 🙂
Amigo, seu procedimento funcionou em um caso e não funcionou em outro. Mas com isso eu consegui um procedimento que funcionou em todos os casos: criei outro “host-only adapter” e associei as VMs (que não estavam conseguindo se conectar ao adaptador antigo) ao novo adaptador. Isso foi suficiente para a VM subir normalmente. Aí apenas removi o adaptador antigo para não ficar com lixo no VirtualBox.
Obrigado!
Arturo, muito obrIgado por compartilhar essa informação conosco ! 🙂
Se acontecer de novo, vou tentar essa solução !
Tentei diversas alternativas também e não obtive êxito, mas ao clonar a máquina simplesmente voltou a funcionar 🙂
Grande alívio!
Olá amigo!
Vc salvou o meu trabalho, tava com muita coisa instalada na maquina virtual, e não precisei refazer tudo do zero, muito agradecido pela dica.
Fico feliz em saber que o artigo ajudou ! 🙂