Azure Windows apagado de vm está atascado en "Reiniciar", "Apagar" o "Detener servicios"

En este artículo se proporcionan pasos para resolver los problemas de los mensajes "Reiniciar", "Apagar" o "Detener servicios" que puede encontrar al reiniciar una máquina virtual (VM) de Windows en Microsoft Azure.

Síntomas

Cuando usas diagnósticos de arranque para ver la captura de pantalla de la máquina virtual, es posible que veas que la captura de pantalla muestra el mensaje "Reiniciar", "Apagar" o "Detener servicios".

Captura de pantalla de las pantallas Reiniciar, Apagar y Detener servicios.

Causa

Windows el proceso de apagado para realizar operaciones de mantenimiento del sistema y procesar cambios como actualizaciones, roles y características. No se recomienda interrumpir este proceso crítico hasta que se complete. Según el número de actualizaciones o cambios y el tamaño de la máquina virtual, el proceso puede tardar mucho tiempo. Si el proceso se detiene, es posible que el sistema operativo se vuelva dañado. Solo interrumpa el proceso si tarda demasiado tiempo.

Solución

Recopilar un volcado de memoria de proceso

  1. Descargue la herramienta Procdump en un disco de datos nuevo o existente, que se adjunta a una máquina virtual en funcionamiento de la misma región.

  2. Desasoye el disco que contiene los archivos necesarios de la máquina virtual en funcionamiento y adjunte el disco a la máquina virtual rota. Llamamos a este disco el disco utilidad.

Use serial console para completar los siguientes pasos:

  1. Abra un PowerShell administrativo y compruebe el servicio que deja de responder al detenerse.

    Get-Service | Where-Object {$_.Status -eq "STOP_PENDING"}
    
  2. En un CMD administrativo, obtenga el PID del servicio que no responde.

    tasklist /svc | findstr /i <STOPING SERVICE>
    
  3. Obtener una muestra de volcado de memoria del proceso no responde <STOPPING SERVICE>.

    procdump.exe -s 5 -n 3 -ma <PID>
    
  4. Ahora, elimina el proceso no responde para desbloquear el proceso de apagado.

    taskkill /PID <PID> /t /f
    

Una vez que el sistema operativo se inicia de nuevo, si se inicia normalmente, solo asegúrate de que la coherencia del sistema operativo sea correcta. Si se notifican daños, ejecute el siguiente comando hasta que el disco esté libre de daños:

dism /online /cleanup-image /restorehealth

Si no puede recopilar un volcado de memoria de proceso o este problema es recursivo y necesita un análisis de causa raíz, continúe con la recopilación de un volcado de memoria del sistema operativo a continuación, continúe con la apertura de una solicitud de soporte técnico.

Recopilación de un volcado de memoria del sistema operativo

Si el problema no se soluciona después de esperar a que se hayan procesado los cambios, deberá recopilar un archivo de volcado de memoria y ponerse en contacto con el soporte técnico. Para recopilar el archivo de volcado de memoria, siga estos pasos:

Conecte el disco del sistema operativo a una máquina virtual de recuperación.

  1. Tome una instantánea del disco del sistema operativo de la máquina virtual afectada como copia de seguridad. Para obtener más información, consulte Instantánea de un disco.

  2. Conecte el disco del sistema operativo a una máquina virtual de recuperación.

  3. Escritorio remoto a la máquina virtual de recuperación.

  4. Si el disco del sistema operativo está cifrado, debe desactivar el cifrado antes de pasar al siguiente paso. Para más información, consulte Descifrado del disco de sistema cifrado en la máquina virtual que no arranca.

Busque el archivo de volcado de memoria y envíe una incidencia de soporte técnico.

  1. En la máquina virtual de recuperación, vaya a la carpeta de Windows en el disco del sistema operativo conectado. Si la letra de unidad que se asigna al disco del sistema operativo conectado es F, deberá ir a F:\Windows.

  2. Busque el archivo memory.dmp y, a continuación, envíe una incidencia de soporte técnico con el archivo de volcado de memoria.

Si no encuentra el archivo de volcado de memoria, vaya el paso siguiente para habilitar el registro de volcado de memoria y Serial Console.

Habilitación del registro de volcado de memoria y Serial Console

Para habilitar el registro de volcado de memoria y Serial Console, ejecute el siguiente script.

  1. Abra la sesión de símbolo del sistema con privilegios elevados (Ejecutar como administrador).

  2. Ejecute el siguiente script:

    En este script, se supone que la letra de unidad asignada al disco del sistema operativo adjunto es F. Reemplázcala por el valor adecuado en la máquina virtual.

    reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM
    
    REM Enable Serial Console
    bcdedit /store F:\boot\bcd /set {bootmgr} displaybootmenu yes
    bcdedit /store F:\boot\bcd /set {bootmgr} timeout 5
    bcdedit /store F:\boot\bcd /set {bootmgr} bootems yes
    bcdedit /store F:\boot\bcd /ems {<BOOT LOADER IDENTIFIER>} ON
    bcdedit /store F:\boot\bcd /emssettings EMSPORT:1 EMSBAUDRATE:115200
    
    REM Suggested configuration to enable OS Dump
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v NMICrashDump /t REG_DWORD /d 1 /f
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v CrashDumpEnabled /t REG_DWORD /d 1 /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "%SystemRoot%\MEMORY.DMP" /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v NMICrashDump / t REG_DWORD /d 1 /f
    
    reg unload HKLM\BROKENSYSTEM
    
  3. Compruebe que hay suficiente espacio en el disco para asignar tanta memoria como la RAM, que depende del tamaño que seleccione para esta máquina virtual.

  4. Si no hay suficiente espacio o la máquina virtual es grande (serie G, GS o E), puede cambiar la ubicación donde se creará este archivo y hacer referencia a él a cualquier otro disco de datos, que esté conectado a la máquina virtual. Para cambiar la ubicación, debe cambiar la siguiente clave:

    reg load HKLM\BROKENSYSTEM F:\windows\system32\config\SYSTEM
    
    REG ADD "HKLM\BROKENSYSTEM\ControlSet001\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "<DRIVE LETTER OF YOUR DATA DISK>:\MEMORY.DMP" /f
    REG ADD "HKLM\BROKENSYSTEM\ControlSet002\Control\CrashControl" /v DumpFile /t REG_EXPAND_SZ /d "<DRIVE LETTER OF YOUR DATA DISK>:\MEMORY.DMP" /f
    
    reg unload HKLM\BROKENSYSTEM
    
  5. Desasoye el disco del sistema operativo y vuelva a conectar el disco del sistema operativo a la máquina virtual afectada.

  6. Inicie la máquina virtual y acceda a la consola serie.

  7. Seleccione Enviar interrupción no enmascarable (NMI) para desencadenar el volcado de memoria.

    Captura de pantalla del botón Enviar interrupción no enmascarable (NMI) en la barra de botones de la ventana Consola serie.

  8. Vuelva a conectar el disco del sistema operativo a una máquina virtual de recuperación y recopile el archivo de volcado.

Consultar al soporte técnico de Microsoft

Después de recopilar el archivo de volcado, póngase en contacto con el soporte técnico de Microsoft para determinar la causa raíz.