Como solucionar problemas de VMs do Windows


Neste documento, descrevemos os métodos e as ferramentas disponíveis para resolver os seguintes problemas de inicialização da instância da máquina virtual (VM, na sigla em inglês) do Windows no Compute Engine:

  • Não é possível se conectar à VM usando RDP, e a solução de problemas não foi bem-sucedida para resolver sua conexão.

  • A tela de login não apareceu em uma captura de tela da VM, e parece que a VM não está progredindo ou realizando uma atualização.

  • Você encontrou uma VM com erro de tela azul, congelada ou com um comportamento errôneo em operação normal.

Se você tiver problemas para se conectar a VMs do Windows, consulte Solução de problemas do RDP.

Antes de começar

  • Leia Solução de problemas avançados da Microsoft para problemas de inicialização do Windows para informações sobre como solucionar problemas no processo de inicialização do Windows.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

Usar o menu "Opções avançadas de inicialização"

Se o Windows não for iniciado corretamente, use o menu "Opções avançadas de inicialização" para acessar o modo de segurança ou concluir um reparo on-line do sistema operacional. Para mais informações, consulte Opções avançadas de inicialização.

Para entrar no menu Opções avançadas de inicialização na VM do Windows, conclua o procedimento a seguir:

  1. Ative um dispositivo de exibição para a VM, caso ainda não tenha feito isso.
  2. Conecte-se ao console serial interativo da VM.

  3. Reinicie a VM usando um dos seguintes métodos:

    Console

    1. No console do Google Cloud, acesse a página Instâncias de VMs.

      Acessar instâncias de VM

    2. Clique no nome da VM que você quer reiniciar. A página de detalhes da instância de VM será aberta.

    3. Clique no botão Redefinir para reinicializar a VM.

    gcloud

    Use o comando gcloud compute instances reset para reinicializar a VM:

    gcloud compute instances reset VM_NAME --zone=ZONE --project=PROJECT_ID
    

    Substitua:

    • PROJECT_ID: o ID do projeto que contém a VM.
    • ZONE: o nome da zona em que a VM está localizada
    • VM_NAME: O nome da VM.

    Prompt de comando

    Enquanto estiver conectado ao console serial interativo, abra uma sessão do prompt de comando e execute o seguinte comando. Para mais informações sobre como abrir uma sessão do Prompt de Comando, consulte Como abrir o prompt de comando no Windows SAC.

    shutdown /r /t 0
    

    O menu do Gerenciador de inicialização do Windows é aberto:

    Menu do Gerenciador de inicialização do Windows

  4. Antes que a contagem regressiva expire, conclua estas etapas:

    1. Verifique se o console serial interativo é a janela ativa.

    2. Pressione a tecla Esc no teclado.

    3. Pressione a tecla de número 8 no teclado.

    O menu de Opções avançadas de inicialização é aberto:

    Menu de
Opções avançadas de inicialização

  5. Use as teclas de seta no teclado para selecionar uma opção e abra-a pressionando a tecla Enter.

Como ativar o menu do Gerenciador de inicialização do Windows

É possível configurar o menu do Gerenciador de inicialização do Windows para ser exibido quando uma instância de VM do Windows estiver sendo reinicializada. Para ativar o menu do Gerenciador de inicialização do Windows, faça o seguinte:

Conecte-se à VM e abra um prompt de comando com acesso administrativo. Se você não conseguir se conectar à VM, adicione as etapas subsequentes como valores a um script de inicialização windows-startup-script-cmd ou windows-startup-script-ps1 em vez de executá-los diretamente

Prompt de comando

  1. Para ativar o menu do Gerenciador de inicialização do Windows na inicialização e adicionar um tempo limite de 15 segundos, execute os seguintes comandos:

    bcdedit /set {bootmgr} displaybootmenu yes
    
    bcdedit /set {bootmgr} timeout 15
    
  2. Para reinicializar a VM e exibir o menu do gerenciador de inicialização do Windows no console serial, use o seguinte comando:

    shutdown -r -t 0
    

PowerShell

  1. Para ativar o menu do Gerenciador de inicialização do Windows na inicialização e adicionar um tempo limite de 15 segundos, execute os seguintes comandos:

    bcdedit /set '{bootmgr}' displaybootmenu yes
    
    
    bcdedit /set '{bootmgr}' timeout 15
    
  2. Para reinicializar a VM e exibir o menu do gerenciador de inicialização do Windows no console serial, use o seguinte comando:

    shutdown -r -t 0
    

Como concluir um reparo off-line

Se a VM não for iniciada corretamente e o menu de inicialização avançado não resolver o problema, execute um reparo off-line usando uma instância de VM funcional do Windows para recuperação com um snapshot do disco de inicialização da VM com problema. Usar um snapshot fornece uma cópia de backup que pode ser modificada sem alterar o estado da VM original.

  1. Crie um snapshot do disco de inicialização da VM com problemas.

  2. Crie um disco usando esse snapshot.

  3. Crie uma VM com um disco adicional que não seja de inicialização usando o disco recém-criado. Sua VM de recuperação precisa atender a estes critérios:

    • A VM de recuperação precisa estar na mesma zona que o disco criado.
    • A VM de recuperação também precisa usar uma imagem do Windows Server.
    • A imagem de origem do disco de inicialização da VM de recuperação precisa ser diferente da imagem de origem do disco de inicialização da VM com problema.
  4. Agora é possível usar as ferramentas e os utilitários do Windows para tentar um reparo off-line no disco anexado adicional. Consulte a documentação a seguir para detalhes sobre como concluir um reparo off-line da VM:

  5. Se o reparo off-line for concluído com sucesso, atualize o disco de inicialização da VM com problema para ser o disco de inicialização recém-reparado.

  6. Opcional: exclua os recursos adicionais depois que não forem mais necessários:

Como solucionar problemas de tela azul

O sistema operacional Windows pode apresentar um código de parada ou um erro na tela azul, também conhecido como Tela Azul da Morte. Se uma VM apresentar um erro de tela azul, ela será interrompida e precisará ser reiniciada antes de retomar as operações normais.

Se você acredita que ocorreu um erro de tela azul, confirme isso identificando a presença de erros usando um ou mais dos seguintes métodos:

Porta serial 1

  1. No Console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique no nome da VM com os registros que você quer ver. A página de detalhes da instância de VM será aberta.

  3. Em Registros, clique em Porta serial 1.

  4. Um despejo de rastreamento de pilha semelhante ao seguinte confirma um erro de tela azul:

    ntoskrnl.exe [0xFFFFF802C9606000, 0xFFFFF802C9E23000]
    netbios.sys [0xFFFFF80E98430000, 0xFFFFF80E98442000]
    volmgr.sys [0xFFFFF80E97E40000, 0xFFFFF80E97E58000]
    NTFS.sys [0xFFFFF80E98060000, 0xFFFFF80E98293000]
    crashdmp.sys [0xFFFFF80E986C0000, 0xFFFFF80E986D9000]
    pvpanic.sys [0xFFFFF80E99030000, 0xFFFFF80E9903C000]
    myfault.sys [0xFFFFF80E9A570000, 0xFFFFF80E9A578000]
    Dumping stack trace:
    0xFFFFF80E990317C7 (pvpanic.sys+0x17C7)
    0xFFFFF80E990316D3 (pvpanic.sys+0x16D3)
    0xFFFFF802C97D9681 (ntoskrnl.exe+0x1D3681)
    0xFFFFF802C97D8A1F (ntoskrnl.exe+0x1D2A1F)
    0xFFFFF802C97633F4 (ntoskrnl.exe+0x15D3F4)
    0xFFFFF802C9773329 (ntoskrnl.exe+0x16D329)
    0xFFFFF802C976F152 (ntoskrnl.exe+0x169152)
    0xFFFFF80E9A572794 (myfault.sys+0x2794)
    Current Process: notmyfault64.e
    

Porta serial 2

  1. No Console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique no nome da VM com os registros que você quer ver. A página de detalhes da instância de VM será aberta.

  3. Em Registros, expanda Mais e clique em Porta serial 2 (console).

  4. Revise a porta serial da instância e procure a saída semelhante a esta:

    !SAC>
    Your PC ran into a problem and needs to restart.
    If you call a support person, give them this info:
    UNEXPECTED_KERNEL_MODE_TRAP
    
    myfault.sys
    
    0x0000000000000008
    0xFFFFC6812AB94F70
    0xFFFFC6812E38EFF0
    0xFFFFF80E9A572794
    
    We're just collecting some error info, and then we'll restart for you.
    100% complete
    

Prompt de comando

  1. Conecte-se à instância e abra um prompt de comando com acesso administrativo.

  2. Para exibir o evento de tela azul mais recente, execute o seguinte comando:

    wevtutil qe System "/q:*[System [(EventID=1001)]]" /rd:True /c:1 /f:Text
    
  3. Analise o resultado, que será semelhante a este:

    Event[0]:
      Log Name: System
      Source: Microsoft-Windows-WER-SystemErrorReporting
      Date: 2021-04-14T08:53:52.933
      Event ID: 1001
      Task: N/A
      Level: Error
      Opcode: N/A
      Keyword: Classic
      User: N/A
      User Name: N/A
      Computer: WINDOWS
      Description:
    The computer has rebooted from a bugcheck.  The bugcheck was: 0x1000007f (0x
    0000000000000008, 0xffffc6812ab94f70, 0xffffc6812e38eff0, 0xfffff80e9a572794
    ). A dump was saved in: C:\Windows\Minidump\041421-12656-01.dmp. Report Id:
    a5710c98-a577-4b3e-a3c9-2fc0aa4e5d83.
    

Para informações sobre como personalizar consultas wetutil, consulte wevtutil.

Snapshot do disco

Se a VM não estiver mais em operação ou os outros métodos tiverem falhado. É possível inspecionar o disco de inicialização da VM com suspeita de tela azul com uma VM secundária. Usar um snapshot fornece uma cópia de backup que pode ser modificada sem alterar o estado da VM original.

  1. Crie um snapshot do disco de inicialização da VM suspeita de tela azul.

  2. Crie um disco usando esse snapshot.

  3. Crie uma VM com um disco adicional que não seja de inicialização, usando o disco recém-criado da VM suspeita. A VM de recuperação precisa atender a estes critérios:

    • A VM de recuperação precisa estar na mesma zona que o disco criado.
    • A VM de recuperação também precisa usar uma imagem do Windows Server.
    • A imagem de origem do disco de inicialização da VM de recuperação precisa ser diferente da imagem de origem do disco de inicialização da VM com problema.
  4. Procure o disco adicional e localize os seguintes arquivos:

    %SystemRoot%\Memory.dmp
    %SystemRoot%\Minidump\DATE-TIME-NUM.dmp
    

    A data e a hora do arquivo podem ajudar a correlacionar se a instância suspeita apresentou um erro de tela azul. Esses arquivos também podem ser usados para análise e diagnóstico.

  5. Opcional: exclua os recursos adicionais depois que não forem mais necessários:

Depois de receber as informações de erro de tela azul e, opcionalmente, acesso ao arquivo de despejo de memória, siga as etapas de diagnóstico e recomendações da Microsoft:

Problemas de licenciamento

Os sistemas operacionais Windows renovam as licenças a cada sete dias, conectando-se ao servidor do serviço de gerenciamento de chaves (KMS, na sigla em inglês). Se você receber mensagens sobre a expiração da licença ou outros problemas relacionados a licenças nas VMs do Windows, faça o seguinte:

  1. Confirme se a rede VPC da VM do Windows está configurada para permitir a comunicação com o KMS.

  2. Confirme se o Windows Firewall permite conexões de saída com o servidor KMS:

    • Endereço IP: 35.190.247.13
    • Porta: 1688
    • Protocolo: TCP

    Para mais informações sobre como configurar regras de firewall avançadas do Windows, consulte Criar uma regra de porta de saída.

  3. Teste a conexão com o servidor KMS executando o seguinte comando:

    powershell.exe Test-NetConnection 35.190.247.13 -Port 1688
    
  4. Execute os seguintes comandos para confirmar o estado atual da licença, definir o endereço IP do servidor do KMS e forçar uma ativação:

    cscript \windows\system32\slmgr.vbs /dlv
    
    cscript \windows\system32\slmgr.vbs /skms 35.190.247.13:1688
    
    cscript \windows\system32\slmgr.vbs /ato
    

Como solucionar problemas do console serial interativo

  1. Verifique se você atende ao pré-requisito para acessar o console serial.

  2. Ative os Serviços de gerenciamento de emergência. Se o EMS estiver desativado, o console serial não receberá entradas de teclado, mas apresentará apenas uma tela em branco com um cursor piscando.

    Prompt de comando

    1. Conecte-se à VM usando o RDP e abra Command Prompt como administrador. Se não for possível usar o RDP, adicione as etapas seguintes como valores à chave de inicialização windows-startup-script-cmd.

    2. Defina as configurações globais de redirecionamento do EMS para usar COM2, uma taxa de Baud de 115.200, e ative o EMS.

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. Reinicie a VM para aplicar a configuração atualizada. Se você estiver usando um script de metadados, não adicione o comando de desligamento.

      shutdown -r -t 0
      

    PowerShell

    1. Conecte-se pelo RDP e abra Powershell como administrador. Se não for possível usar o RDP, adicione as etapas seguintes como valores à chave de inicialização windows-startup-script-ps1.

    2. Defina as configurações globais de redirecionamento do EMS para usar COM2, uma taxa de Baud de 115.200, e ative o EMS.

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. Reinicie a VM para aplicar a configuração atualizada. Se você estiver usando um script de metadados, não adicione o comando de desligamento.

      shutdown -r -t 0
      

A seguir