VirtualBox E_FAIL (0x80004005)

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