Compartir a través de


Solucionar problemas de hibernación en máquinas virtuales Windows

La hibernación de una máquina virtual permite conservar el estado de la máquina virtual en el disco del sistema operativo. En este artículo se describe cómo solucionar problemas con la característica de hibernación en Windows, problemas al crear máquinas virtuales Windows habilitadas para la hibernación y problemas con la hibernación de una máquina virtual Windows.

Para ver la guía general de solución de problemas de hibernación, consulte Solucionar problemas de hibernación en Azure.

No se puede hibernar una máquina virtual Windows

Si no puede hibernar una máquina virtual, compruebe primero si la hibernación está habilitada en la máquina virtual.

Si la hibernación está habilitada en la máquina virtual, compruebe si la hibernación está habilitada correctamente en el sistema operativo invitado. Puede comprobar el estado de la extensión Hibernación para ver si la extensión pudo configurar correctamente el sistema operativo invitado para la hibernación.

Captura de pantalla del estado y mensaje de estado informando de que el aprovisionamiento se realizó correctamente para una máquina virtual Windows.

La vista de instancia de máquina virtual tendría la salida final de la extensión:

"extensions": [
    {
      "name": "AzureHibernateExtension",
      "type": "Microsoft.CPlat.Core.WindowsHibernateExtension",
      "typeHandlerVersion": "1.0.2",
      "statuses": [
        {
          "code": "ProvisioningState/succeeded",
          "level": "Info",
          "displayStatus": "Provisioning succeeded",
          "message": "Enabling hibernate succeeded. Response from the powercfg command: \tThe hiberfile size has been set to: 17178693632 bytes.\r\n"
        }
      ]
    },

Además, confirme que la hibernación está habilitada como estado de suspensión dentro del invitado. La salida esperada del invitado debe tener este aspecto.

C:\Users\vmadmin>powercfg /a
    The following sleep states are available on this system:
        Hibernate
        Fast Startup

    The following sleep states are not available on this system:
        Standby (S1)
            The system firmware does not support this standby state.

        Standby (S2)
            The system firmware does not support this standby state.

        Standby (S3)
            The system firmware does not support this standby state.

        Standby (S0 Low Power Idle)
            The system firmware does not support this standby state.

        Hybrid Sleep
            Standby (S3) isn't available.


Si Hibernar no aparece como un estado de suspensión admitido, debe haber un motivo asociado a ello que debe ayudar a determinar por qué no se admite la hibernación. Esto ocurre si la hibernación de invitado no está configurada para la máquina virtual.

C:\Users\vmadmin>powercfg /a
    The following sleep states are not available on this system:
        Standby (S1)
            The system firmware does not support this standby state.

        Standby (S2)
            The system firmware does not support this standby state.

        Standby (S3)
            The system firmware does not support this standby state.

        Hibernate
            Hibernation hasn't been enabled.

        Standby (S0 Low Power Idle)
            The system firmware does not support this standby state.

        Hybrid Sleep
        Standby (S3) is not available.
            Hibernation is not available.

        Fast Startup
            Hibernation is not available.

Si la extensión o el estado de suspensión del invitado notifican un error, tendría que actualizar las configuraciones del invitado según las descripciones de los errores para resolver el problema. Después de corregir todos los problemas, puede comprobar que la hibernación se ha habilitado correctamente dentro del invitado ejecutando el comando "powercfg /a", que debe devolver Hibernar como uno de los estados de suspensión. Compruebe también que AzureHibernateExtension vuelva a un estado Correcto. Si la extensión todavía está en un estado con errores, actualice el estado de la extensión desencadenando volver a aplicar la API de máquina virtual.

Nota:

Si la extensión permanece en un estado con errores, no puede hibernar la máquina virtual.

Problemas habituales en los que se produce un error en la extensión.

Problema Acción
El archivo de página está en disco temporal. Muévalo al disco del sistema operativo para habilitar la hibernación. Mueva el archivo de página a la unidad C: y desencadene volver a aplicar en la máquina virtual para volver a ejecutar la extensión.
Windows no pudo configurar la hibernación debido a un espacio insuficiente para el archivo hiberfile. Asegúrese de que la unidad C: tiene suficiente espacio. Puede intentar expandir el disco del sistema operativo, el tamaño de la partición C: para solucionar este problema. Una vez que tenga espacio suficiente, desencadene la operación Volver a aplicar para que la extensión pueda volver a intentar habilitar la hibernación en el invitado y se realice correctamente.
Mensaje de error de extensión: "Un dispositivo conectado al sistema no funciona" Asegúrese de que la unidad C: tiene suficiente espacio. Puede intentar expandir el disco del sistema operativo, el tamaño de la partición C: para solucionar este problema. Una vez que tenga espacio suficiente, desencadene la operación Volver a aplicar para que la extensión pueda volver a intentar habilitar la hibernación en el invitado y se realice correctamente.
La hibernación ya no se admite después de habilitar la seguridad basada en virtualización (VBS) dentro del invitado. Habilite la virtualización en el invitado para obtener funcionalidades de VBS junto con la capacidad de hibernar al invitado. Habilite la virtualización en el sistema operativo invitado.
Error al habilitar hibernación. Respuesta del comando powercfg. Código de salida: 1. Mensaje de error: Error de hibernación con el siguiente error: No se admite la solicitud. Los siguientes elementos impiden la hibernación en este sistema. La configuración actual de Device Guard deshabilita la hibernación. Un componente interno del sistema deshabilitó la hibernación. Hipervisor Habilite la virtualización en el invitado para obtener funcionalidades de VBS junto con la capacidad de hibernar al invitado. Para habilitar la virtualización en el invitado, consulte este documento.

Las máquinas virtuales Windows invitadas no pueden hibernar

Si una operación de hibernación se realiza correctamente, se ven los siguientes eventos en el invitado:

Guest responds to the hibernate operation (note that the following event is logged on the guest on resume)

    Log Name:      System
    Source:        Kernel-Power
    Event ID:      42
    Level:         Information
    Description:
    The system is entering sleep

Si el invitado no puede hibernar, faltan todos o algunos de estos eventos. Problemas comunes:

Problema Acción
El invitado no puede hibernar porque el servicio de apagado del invitado de Hyper-V está deshabilitado. Para comprobarlo, ejecute sc query vmicshutdown. Asegúrese de que el servicio de apagado de invitado de Hyper-V no esté deshabilitado. La habilitación de este servicio debe resolver el problema.
El invitado no puede hibernar porque Power Service está deshabilitado. Para comprobarlo, ejecute sc query power. Asegúrese de que Power Service no está deshabilitado. Habilitar este servicio debe resolver el problema.
El invitado no puede hibernar porque la HVCI (integridad de memoria) está habilitada. Si la integridad de memoria está habilitada en el invitado y está intentando hibernar la máquina virtual, asegúrese de que el invitado ejecuta la compilación mínima del sistema operativo necesaria para admitir la hibernación con integridad de memoria.

Win 11 22H2: compilación mínima del sistema operativo: 22621.2134
Win 11 21H1: compilación mínima del sistema operativo: 22000.2295
Win 10 22H2: compilación mínima del sistema operativo: 19045.3324

Registros necesarios para solucionar problemas:

Si encuentra un problema fuera de estos escenarios conocidos, los registros siguientes pueden ayudar a Azure a solucionar el problema:

  • Registros de eventos relevantes en el invitado: Microsoft-Windows-Kernel-Power, Microsoft-Windows-Kernel-General, Microsoft-Windows-Kernel-Boot.
  • Durante una comprobación de errores, un volcado de memoria de invitado es útil.

No se puede reanudar una máquina virtual Windows

Al iniciar una máquina virtual desde un estado de hibernación, puede usar la vista de instancia de máquina virtual para obtener más detalles sobre si el invitado se reanudó correctamente desde su estado de hibernación anterior o si no se pudo reanudar y, en su lugar, hizo un arranque en frío.

Salida de la vista de la instancia de máquina virtual cuando el invitado se reanuda correctamente:

{
  "computerName": "myVM",
  "osName": "Windows 11 Enterprise",
  "osVersion": "10.0.22000.1817",
  "vmAgent": {
    "vmAgentVersion": "2.7.41491.1083",
    "statuses": [
      {
        "code": "ProvisioningState/succeeded",
        "level": "Info",
        "displayStatus": "Ready",
        "message": "GuestAgent is running and processing the extensions.",
        "time": "2023-04-25T04:41:17.296+00:00"
      }
    ],
    "extensionHandlers": [
      {
        "type": "Microsoft.CPlat.Core.RunCommandWindows",
        "typeHandlerVersion": "1.1.15",
        "status": {
          "code": "ProvisioningState/succeeded",
          "level": "Info",
          "displayStatus": "Ready"
        }
      },
      {
        "type": "Microsoft.CPlat.Core.WindowsHibernateExtension",
        "typeHandlerVersion": "1.0.3",
        "status": {
          "code": "ProvisioningState/succeeded",
          "level": "Info",
          "displayStatus": "Ready"
        }
      }
    ]
  },  
  "extensions": [
    {
      "name": "AzureHibernateExtension",
      "type": "Microsoft.CPlat.Core.WindowsHibernateExtension",
      "typeHandlerVersion": "1.0.3",
      "substatuses": [
        {
          "code": "ComponentStatus/VMBootState/Resume/succeeded",
          "level": "Info",
          "displayStatus": "Provisioning succeeded",
          "message": "Last guest resume was successful."
        }
      ],
      "statuses": [
        {
          "code": "ProvisioningState/succeeded",
          "level": "Info",
          "displayStatus": "Provisioning succeeded",
          "message": "Enabling hibernate succeeded. Response from the powercfg command: \tThe hiberfile size has been set to: XX bytes.\r\n"
        }
      ]
    }
  ],
  "statuses": [
    {
      "code": "ProvisioningState/succeeded",
      "level": "Info",
      "displayStatus": "Provisioning succeeded",
      "time": "2023-04-25T04:41:17.8996086+00:00"
    },
    {
      "code": "PowerState/running",
      "level": "Info",
      "displayStatus": "VM running"
    }
  ]
}


Si el invitado de Windows no puede reanudarse desde su estado anterior y se arranca en frío, la respuesta de la vista de instancia de la máquina virtual es:

  "extensions": [
    {
      "name": "AzureHibernateExtension",
      "type": "Microsoft.CPlat.Core.WindowsHibernateExtension",
      "typeHandlerVersion": "1.0.3",
      "substatuses": [
        {
          "code": "ComponentStatus/VMBootState/Start/succeeded",
          "level": "Info",
          "displayStatus": "Provisioning succeeded",
          "message": "VM booted."
        }
      ],
      "statuses": [
        {
          "code": "ProvisioningState/succeeded",
          "level": "Info",
          "displayStatus": "Provisioning succeeded",
          "message": "Enabling hibernate succeeded. Response from the powercfg command: \tThe hiberfile size has been set to: XX bytes.\r\n"
        }
      ]
    }
  ],
  "statuses": [
    {
      "code": "ProvisioningState/succeeded",
      "level": "Info",
      "displayStatus": "Provisioning succeeded",
      "time": "2023-04-19T17:18:18.7774088+00:00"
    },
    {
      "code": "PowerState/running",
      "level": "Info",
      "displayStatus": "VM running"
    }
  ]
}

Eventos de invitado de Windows durante la reanudación

Si un invitado se reanuda correctamente, están disponibles los siguientes eventos de invitado:

Log Name:      System
    Source:        Kernel-Power
    Event ID:      107
    Level:         Information
    Description:
    The system has resumed from sleep. 

Si el invitado no se reanuda, faltan todos o algunos de estos eventos. Para solucionar los problemas por los que el invitado no se pudo reanudar, se necesitan los registros siguientes:

  • Registros de eventos en el invitado: Microsoft-Windows-Kernel-Power, Microsoft-Windows-Kernel-General, Microsoft-Windows-Kernel-Boot.
  • En la comprobación de errores, se necesita un volcado de memoria de invitado.