Partager via


Résolution des problèmes de mise en veille prolongée sur les machines virtuelles Windows

Mettre en veille prolongée une machine virtuelle permet de faire persister l’état de cette dernière sur le disque du système d’exploitation. Cet article explique comment résoudre les problèmes liés à la fonctionnalité de mise en veille prolongée dans Windows, les problèmes de création de machines virtuelles Windows activées pour la mise en veille prolongée et les problèmes liés à la mise en veille prolongée d'une machine virtuelle Windows.

Pour afficher le guide général de résolution des problèmes de mise en veille prolongée, consultez Résoudre les problèmes de mise en veille prolongée dans Azure.

Impossible de mettre en veille prolongée une machine virtuelle Windows

Si vous ne parvenez pas à mettre en veille prolongée une machine virtuelle, vérifiez d'abord si l'option en question est activée.

Si la mise en veille prolongée est activée sur la machine virtuelle, vérifiez si la mise en veille prolongée est correctement activée dans le système d’exploitation invité. Vous pouvez vérifier l'état de l'extension de mise en veille prolongée pour voir si l'extension a réussi à configurer le SE invité pour la mise en veille prolongée.

Capture d'écran du rapport d'état et de message d'état sur lequel l'approvisionnement a réussi pour une machine virtuelle Windows.

La vue d’instance de machine virtuelle aurait la sortie finale de l’extension :

"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"
        }
      ]
    },

En outre, vérifiez que la veille prolongée est activée en tant qu’état de veille à l’intérieur de l’invité. La sortie attendue pour l’invité doit ressembler à ceci.

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 l'état de veille prolongée n'est pas répertorié comme état de veille prolongée pris en charge, il doit y avoir une raison associée, ce qui doit vous permettre de déterminer pourquoi la mise en veille prolongée n'est pas prise en charge. Ceci se produit si la mise en veille prolongée de l'invité n'est pas configurée pour la machine virtuelle.

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 l’extension ou l’état de veille de l’invité signale une erreur, vous devez mettre à jour les configurations de l’invité conformément aux descriptions des erreurs pour résoudre le problème. Après avoir résolu tous les problèmes, vous pouvez vérifier que la mise en veille prolongée a été activée correctement à l’intérieur de l’invité en exécutant la commande « powercfg /a », qui devrait indiquer la mise en veille prolongée comme l’un des états de sommeil. Vérifiez également que l’extension AzureHibernateExtension retourne à l’état Terminé. Si l’extension est toujours dans un état d’échec, mettez à jour l’état de l’extension en déclenchant l’API de réapplication de la machine virtuelle.

Remarque

Si l'extension reste dans un état d'échec, vous ne pouvez pas mettre en veille prolongée la machine virtuelle.

Problèmes courants liés à l'échec de l'extension

Problème Action
Le fichier de page se trouve dans le disque temporaire. Déplacez-le vers le disque du système d’exploitation pour activer la mise en veille prolongée. Déplacer le fichier de page vers le lecteur C et déclencher une nouvelle application sur la machine virtuelle pour réexécuter l’extension
Windows n’a pas pu configurer la mise en veille prolongée en raison d’un espace insuffisant pour le fichier hiberfile. Assurez-vous que le disque C dispose d’assez d’espace. Vous pouvez essayer de développer votre disque de système d’exploitation, votre taille de partition du disque C pour résoudre ce problème. Une fois que vous disposez de suffisamment d’espace, déclenchez l’opération Reapply afin que l’extension puisse réessayer l’activation de la mise en veille en prolongée dans l’invité et que l’opération se termine.
Message d'erreur d'extension : « Un appareil attaché au système ne fonctionne pas » Assurez-vous que le disque C dispose d’assez d’espace. Vous pouvez essayer de développer votre disque de système d’exploitation, votre taille de partition du disque C pour résoudre ce problème. Une fois que vous disposez de suffisamment d’espace, déclenchez l’opération Reapply afin que l’extension puisse réessayer l’activation de la mise en veille en prolongée dans l’invité et que l’opération se termine.
La mise en veille prolongée n’est plus prise en charge après l’activation de la sécurité basée sur la virtualisation (VBS) à l’intérieur de l’invité. Activez la virtualisation dans l’invité pour obtenir des fonctionnalités VBS, ainsi que la possibilité de mettre en veille prolongée l’invité. Activez la virtualisation dans le système d’exploitation invité.
Échec de l’activation de la mise en veille prolongée. Réponse de la commande powercfg. Code de sortie : 1. Message d’erreur : échec de la mise en veille prolongée avec le message d’erreur suivant : « La requête n’est pas prise en charge ». Les éléments suivants empêchent la mise en veille prolongée sur ce système. La configuration actuelle de Device Guard désactive la mise en veille prolongée. Un composant système interne a désactivé la mise en veille prolongée. Hyperviseur Activez la virtualisation dans l’invité pour obtenir des fonctionnalités VBS, ainsi que la possibilité de mettre en veille prolongée l’invité. Pour activer la virtualisation dans l’invité, reportez-vous à ce document

Les machines virtuelles Windows invitées ne peuvent pas mettre en veille prolongée

Si une opération de mise en veille prolongée réussit, les événements suivants sont affichés dans l’invité :

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 l’invité ne parvient pas à mettre en veille prolongée, tous ou certains de ces événements sont manquants. Problèmes couramment observés :

Problème Action
L’invité ne parvient pas à mettre en veille prolongée, car le service d’arrêt invité Hyper-V est désactivé. Vous pouvez vérifier cela en exécutant sc query vmicshutdown. Vérifiez que le service d’arrêt invité Hyper-V n’est pas désactivé. L’activation de ce service doit résoudre le problème.
L’invité ne parvient pas à mettre en veille prolongée, car Power Service est désactivé. Vous pouvez vérifier cela en exécutant lsc query power. Vérifiez que Power Service n’est pas désactivé. L’activation de ce service doit résoudre le problème.
L’invité ne parvient pas à mettre en veille prolongée, car l’intégrité de la mémoire (HVCI) est activée. Si l'intégrité de la mémoire est activée dans l'invité et que vous essayez de mettre en veille prolongée la machine virtuelle, vérifiez que votre invité exécute la build minimale du système d'exploitation nécessaire pour prendre en charge la mise en veille prolongée avec l'intégrité de la mémoire.

Win 11 22H2 – Build minimale du système d’exploitation – 22621.2134
Win 11 21H1 – Build minimale du système d’exploitation – 22000.2295
Win 10 22H2 – Build minimale du système d’exploitation – 19045.3324

Journaux nécessaires à la résolution des problèmes :

Si vous rencontrez un problème en dehors de ces scénarios connus, les journaux suivants peuvent aider Azure à résoudre le problème :

  • Journaux d'événements pertinents sur l'invité : Microsoft-Windows-Kernel-Power, Microsoft-Windows-Kernel-General, Microsoft-Windows-Kernel-Boot.
  • Lors de la vérification des bogues, une image mémoire après incident invitée est utile.

Impossible de reprendre une machine virtuelle Windows

Lorsque vous démarrez une machine virtuelle à partir d'un état de veille prolongée, vous pouvez utiliser la vue de l'instance de la machine virtuelle pour savoir si l'invité a bien repris à partir de son état de veille prolongée ou s'il n'a pas réussi à reprendre et a effectué un démarrage à froid.

Sortie de la vue de l’instance de machine virtuelle lorsque l’invité reprend correctement :

{
  "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 l’invité Windows ne parvient pas à reprendre à partir de son état précédent et des démarrages à froid, la réponse de la vue de l’instance de machine virtuelle est la suivante :

  "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"
    }
  ]
}

Événements invités Windows lors de la reprise

Si un invité reprend correctement, les événements invités suivants sont disponibles :

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

Si l’invité ne parvient pas à reprendre, tous ou certains de ces événements sont manquants. Pour résoudre les problèmes de reprise de l’invité, les journaux suivants sont nécessaires :

  • Journaux d’événements sur l’invité : Microsoft-Windows-Kernel-Power, Microsoft-Windows-Kernel-General, Microsoft-Windows-Kernel-Boot.
  • Lors de la vérification des bogues, une image mémoire est nécessaire.