Compartilhar via


A VM do Windows não pode inicializar devido ao Windows Boot Manager

Aplica-se a: ✔️ VMs do Windows

Este artigo fornece etapas para resolver problemas em que o Windows Boot Manager impede a inicialização de uma VM (máquina virtual) do Azure.

Sintoma

A VM está travada aguardando um prompt do usuário e não inicializa, a menos que seja instruída manualmente.

Ao usar Diagnóstico de inicialização para visualizar a captura de tela da VM, você verá que a captura de tela exibe o Windows Boot Manager com a mensagem Escolha um sistema operacional para iniciar ou pressione TAB para selecionar uma ferramenta:.

A tela do Windows Boot Manager indica Escolha um sistema operacional para iniciar ou pressione TAB para selecionar uma ferramenta.

Motivo

O erro ocorre devido a um sinalizador BCD displaybootmenu no Windows Boot Manager. Quando o sinalizador está ativado, o Gerenciador de Inicialização do Windows solicita ao usuário, durante o processo de inicialização, que selecione qual carregador deseja executar, causando um atraso na inicialização. No Azure, esse recurso pode aumentar o tempo necessário para inicializar uma VM.

Solução

Dica

Se você tiver um backup recente da VM, tente restaurar a VM do backup para corrigir o problema de inicialização.

Visão geral do processo:

  1. Configure para um tempo de inicialização mais rápido usando o console serial.
  2. Crie e acesse uma VM de reparo.
  3. Configure para um tempo de inicialização mais rápido em uma VM de reparo.
  4. Recomendado: antes de reconstruir a VM, ative o console serial e a coleta de despejo de memória.
  5. Recrie a VM.

Configure para um tempo de inicialização mais rápido usando o console serial

Se você tiver acesso ao console serial, há duas maneiras de obter tempos de inicialização mais rápidos. Diminua o tempo de espera do displaybootmenu ou remova o sinalizador completamente.

  1. Siga as instruções para acessar o Azure Serial Console for Windows para obter acesso ao console baseado em texto.

    Observação

    Se você não conseguir acessar o console serial, pule para Criar e acessar uma VM de reparo.

  2. Opção A: reduzir o tempo de espera

    a. O tempo de espera é definido em 30 segundos por padrão, mas pode ser alterado para um tempo mais rápido (por exemplo, 5 segundos).

    b. Use o seguinte comando no console serial para ajustar o valor do tempo limite:

    bcdedit /set {bootmgr} timeout 5

  3. Opção B: remova o sinalizador BCD

    a. Para impedir completamente o prompt Exibir menu de inicialização, digite o seguinte comando:

    bcdedit /deletevalue {bootmgr} displaybootmenu

    Observação

    Se você não conseguiu usar o console serial para configurar um tempo de inicialização mais rápido nas etapas acima, continue com as etapas a seguir. Agora você estará solucionando problemas no modo off-line para resolver esse problema.

Criar e acessar uma VM de reparo

  1. Use as etapas 1 a 3 dos Comandos de reparo da VM para preparar uma VM de reparo.
  2. Use a conexão de área de trabalho remota para conectar-se à VM de reparo.

Configurar para um tempo de inicialização mais rápido em uma VM de reparo

  1. Abra um prompt de comando com privilégios elevados.

  2. Digite o seguinte para habilitar DisplayBootMenu:

    Use este comando para VMs de geração 1:

    bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /set {bootmgr} displaybootmenu yes

    Use este comando para VMs de Geração 2:

    bcdedit /store <VOLUME LETTER OF EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /set {bootmgr} displaybootmenu yes

    Substitua quaisquer símbolos de maior ou menor que, bem como o texto dentro deles, por exemplo "< texto aqui>".

  3. Altere o valor do tempo limite para 5 segundos:

    Use este comando para VMs de geração 1:

    bcdedit /store <VOLUME LETTER WHERE THE BCD FOLDER IS>:\boot\bcd /set {bootmgr} timeout 5

    Use este comando para VMs de Geração 2:

    bcdedit /store <VOLUME LETTER OF EFI SYSTEM PARTITION>:EFI\Microsoft\boot\bcd /set {bootmgr} timeout 5

    Substitua quaisquer símbolos de maior ou menor que, bem como o texto dentro deles, por exemplo "< texto aqui>".

Para habilitar a coleta de despejo de memória e o Console Serial, siga estas etapas:

  1. Abra uma sessão de prompt de comando elevado como administrador.

  2. Execute os seguintes comandos BCDEdit usando as opções /ems e /emssettings:

    Ative o Console Serial:

    bcdedit /store <volume-letter-containing-the-bcd-folder>:\boot\bcd /ems {<boot-loader-identifier>} ON
    bcdedit /store <volume-letter-containing-the-bcd-folder>:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
    
  3. Verifique se o espaço livre no disco do sistema operacional é maior que o tamanho da memória (RAM) na VM.

    Se não houver espaço suficiente no disco do sistema operacional, altere o local onde o arquivo de despejo de memória será criado e indique esse local para qualquer disco de dados anexado à VM que tenha espaço livre suficiente. Para alterar o local, substitua %SystemRoot% pela letra da unidade do disco de dados, como F:, nos comandos a seguir.

    Para habilitar o arquivo de despejo do sistema operacional, execute os seguintes comandos load, add e unload para implementar a configuração sugerida usando a ferramenta reg:

    Carregue o Hive de Registro do disco do sistema operacional quebrado:

    reg load HKLM\<broken-system> <volume-letter-of-broken-os-disk>:\windows\system32\config\SYSTEM
    

    Ativar no ControlSet001:

    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    reg add "HKLM\<broken-system>\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    

    Ativar no ControlSet002:

    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    reg add "HKLM\<broken-system>\ControlSet002\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    

    Descarregue o disco quebrado do sistema operacional:

    reg unload HKLM\<broken-system>
    

Recrie a VM original

Use a etapa 5 dos Comandos de reparo da VM para remontar a VM.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.