Comment désactiver une machine virtuelle Hyper-V bloquée en mode démarrage/arrêt

Hyper-V est une plateforme de virtualisation matérielle bien connue, très prisée car il s’agit de l’hyperviseur natif de Windows. La virtualisation offre de nombreux avantages et l’exécution de machines virtuelles est pratique. Cependant, des erreurs peuvent survenir. Il peut arriver que vous obteniez l’erreur « Hyper-V n’a pas pu changer d’état » et que la machine virtuelle reste bloquée lorsque vous essayez de l’allumer ou de l’éteindre. Dans ce cas, les boutons de démarrage, d’arrêt et de réinitialisation ne fonctionnent pas pour la machine virtuelle.

Vous ne pouvez pas modifier les paramètres de la machine virtuelle ni l’utiliser tant que ce problème n’est pas résolu. Si vous cherchez déjà comment désactiver Hyper-V ou Comment désinstaller Hyper-V, ne vous précipitez pas. Cet article de blog explique les raisons possibles de l’erreur « Hyper-V n’a pas pu changer d’état » et les méthodes pour résoudre ce problème.

NAKIVO pour la sauvegarde Hyper-V

NAKIVO pour la sauvegarde Hyper-V

Sauvegardes sans agent et cohérentes avec les applications pour Hyper-V. Protection contre les ransomwares, amorçage instantané des machines virtuelles à partir de la sauvegarde, prise en charge d'autres plateformes virtuelles et physiques, et bien plus encore.

Explication de l’Erreur

Les boutons démarrer, arrêter, réinitialiser ne sont généralement pas disponibles dans l’interface utilisateur graphique. Si vous essayez de cliquer sur ces boutons, le message d’erreur s’affiche. Le texte complet du message d’erreur « Hyper-V VM bloqué » s’affiche lorsque vous essayez de démarrer ou d’arrêter une machine virtuelle dans Hyper-V :

L’application a rencontré une erreur en essayant de changer l’état de la machine virtuelle.

Nom de la VM a échoué à changer d’état.

L’opération ne peut être exécutée tant que l’objet est dans son état actuel.

Le « Hyper-V n’a pas réussi à changer d’état » peut également contenir cette phrase :

Le statut ne peut être changé.

Les raisons courantes de l’erreur de démarrage/arrêt de la VM sont la défaillance du stockage, une mauvaise configuration réseau, la configuration du routage et de l’accès distant, options d’alimentation de la VM, et des permissions insuffisantes pour accéder aux fichiers de la VM.

Tuer le processus de la VM problématique

Lorsque vous rencontrez une erreur de démarrage/arrêt de la VM, vous ne pouvez pas simplement tuer la VM traditionnellement en terminant le processus de travail de machine virtuelle ( vmwp.exe ), un des services / processus importants d’Hyper-V. Vous devez connaître l’identifiant global unique (GUID) de la VM problématique car plusieurs instances du processus vmwp.exe s’exécutent dans Windows et chaque instance est liée à la VM appropriée. Si vous essayez de deviner le vmwp.exe nécessaire et de tuer chaque instance de vmwp.exe, vous pouvez tuer une VM inconnue à chaque fois, et vous pourriez finir par tuer presque toutes les VMs avant de trouver la bonne.

Méthode 1 : Utilisation des outils GUI natifs

Vous pouvez utiliser l’interface utilisateur graphique (GUI) de Windows et Hyper-V pour identifier le processus vmwp.exe nécessaire et terminer ce processus. Gestionnaire Hyper-V est un outil avec une interface graphique pour la gestion des machines virtuelles dans l’environnement Windows Hyper-V.

Obtenez le GUID de la VM dans Hyper-V Manager. Cliquez-droit sur le nom de votre hôte Hyper-V dans Hyper-V Manager et dans le menu contextuel sélectionnez Hyper-V Settings.

Opening Hyper-V settings for virtual machine management

Dans la fenêtre Paramètres Hyper-V , cliquez sur Machines Virtuelles dans le volet gauche pour trouver le chemin où les fichiers de VM sont situés par défaut sur l’hôte Hyper-V. Dans notre exemple, le chemin est E:VMs.

Checking the default folder to store Hyper-V virtual machines

Lorsque vous connaissez l’emplacement où les fichiers de la VM sont stockés, allez dans ce dossier dans l’Explorateur Windows. Trouvez le sous-dossier où les fichiers de la VM gelée sont localisés. Dans mon cas, le nom de la VM est “Ubuntu Hyper-V”. Ouvrez le VM-Ordner ; vous devriez y trouver un sous-dossier et des fichiers dont le nom, composé de chiffres et de lettres, est assez long. Il s’agit du GUID de la machine virtuelle nécessaire pour identifier le processus vmwp.exe et forcer l’arrêt de la machine virtuelle. Dans mon exemple, le GUID de la machine virtuelle est 3C555937-A999-4542-B77E-FD69488B8579 .

Hyper-V failed to change state - checking the VM GUID to fix the error

Si vous ne parvenez pas à détecter le GUID de la machine virtuelle dans l’interface graphique de Windows et d’Hyper-V, vous pouvez utiliser Process Explorer ou PowerShell (voir les sections ci-dessous).

Une fois que vous avez trouvé l’identifiant, vous pouvez mettre fin à la vmwp exe tâche liée à la machine virtuelle Hyper-V problématique.

Ouvrez le Gestionnaire des tâches de Windows dans le système d’exploitation hôte. Cliquez sur Start > Run ou appuyez sur Win+R, tapez taskmgr et cliquez sur Enter.

Recherchez le processus vmwp.exe avec le GUID requis dans la colonne Nom d’utilisateur . Cliquez avec le bouton droit sur le processus approprié vmwp exe et, dans le menu contextuel, sélectionnez End task pour éteindre la machine virtuelle et obtenir le VM-Stromstatus correct de la machine virtuelle.

Turn off Hyper-V Windows services and restart them to fix the error

Remarque : Vous pouvez cliquer avec le bouton droit sur l’en-tête de la colonne, par exemple Nom d’utilisateur , puis cliquer sur Select Columns. Cochez les cases Command line et Description dans la fenêtre Sélectionner les colonnes de l’outil « Sélectionner les colonnes », puis cliquez sur OK. Vous pourrez alors voir le GUID de la machine virtuelle pour chaque processus vmwp exe dans la colonne Ligne de commande du gestionnaire de tâches.

Ending the vmwp exe service in Windows Task Manager

Méthode 2 : Utilisation de Process Explorer

Vous pouvez identifier l’instance requise du processus vmwp exe liée à la machine virtuelle problématique à l’aide de Process Explorer, un outil gratuit fourni par Microsoft. Télécharger Process Explorer contient des options avancées qui ne sont pas disponibles dans le Gestionnaire de tâches standard disponible sur le site Web de Microsoft. Décompressez les fichiers de Process Explorer dans un dossier de votre choix.

Ouvrez le Gestionnaire Hyper-V, accédez aux paramètres de la machine virtuelle problématique, puis sélectionnez les options du disque dur virtuel. Copiez le chemin d’accès complet du fichier du disque dur virtuel. Dans notre cas, ce chemin est :

« E:VMsUbuntu Hyper-VVirtual Hard DisksUbuntu Hyper-V.vhdx »

Checking the location of VM files

Lancez Process Explorer en exécutant le fichier d’exécution approprié ( procexp64.exe dans notre cas).

Cliquez sur l’icône en forme de jumelles et collez le chemin d’accès au fichier du disque virtuel de la machine virtuelle bloquée dans le champ « Handle » ou « DLL substring » , puis cliquez sur « Search».

L’instance de vmwp.exe recherchée a été trouvée. Cliquez sur vmwp.exe qui a été trouvée dans la fenêtre de recherche et l’instance appropriée du vmwp exe processus est automatiquement sélectionnée dans Process Explorer.

Search for the needed instance of the vmwp exe service in Process Explorer

Cliquez avec le bouton droit sur le processus sélectionné vmwp.exe et, dans le menu contextuel, cliquez sur Kill Process. Killing the vmwp exe process in Process Explorer

Méthode 3 : Utilisation de PowerShell pour arrêter le processus de la machine virtuelle

Ouvrons PowerShell et corrigeons l’erreur. Si vous essayez d’exécuter la commande Stop-VM -Force , vous constaterez que celle-ci ne permet pas d’arrêter la machine virtuelle une fois que celle-ci est bloquée. Utilisez cette commande pour identifier l’identifiant unique de la machine virtuelle :

Get-VM "VM-name" | fl *

Checking the VMID (VM GUID) in PowerShell

Une alternative plus élégante consiste à utiliser ces commandes pour vérifier l’ID :

$VMGUID = (Get-VM "Ubuntu Hyper-V").ID

Get-VM | Select Name, Id

Dans notre cas, nous devons connaître le GUID de la machine virtuelle « Ubuntu Hyper-V » . Le GUID de cette machine virtuelle est enregistré sous le nom de variable $VMGUID dans la mémoire de cette session PowerShell.

Checking the VM GUID in PowerShell

Exécutez ces commandes pour tuer le processus et arrêter la machine virtuelle :

$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})

Stop-Process ($VMWMProc.ProcessId) -Force

Ending the vmwp exe process that makes the VM stuck

Le processus problématique de la machine virtuelle est désormais arrêté et la machine virtuelle est hors tension. Vous pouvez essayer de modifier les paramètres de la machine virtuelle et de la redémarrer.

Autres méthodes pour corriger l’erreur « Hyper-V n’a pas pu changer d’état »

Il peut arriver que vous ayez arrêté le processus bloqué de la machine virtuelle dans Hyper-V, mais que celle-ci ne puisse pas démarrer. Dans ce cas, si vous essayez de démarrer la machine virtuelle, vous pourriez obtenir l’erreur Hyper-V suivante :

Connexion à la machine virtuelle :

Échec de la modification d’état.

Vous trouverez ci-dessous d’autres raisons possibles de l’erreur « Hyper-V n’a pas pu modifier l’état » , des méthodes permettant de résoudre ce problème et la procédure à suivre pour arrêter complètement les VMs Hyper-V après l’apparition de cette erreur.

Paramètres du lecteur DVD

Ouvrez les paramètres de la machine virtuelle et vérifiez les options DVD. Si la machine virtuelle ne parvient pas à accéder à l’image ISO, cette erreur peut se produire. Assurez-vous que le fichier ISO existe et que le chemin d’accès est correctement défini. Vous pouvez également désactiver un lecteur DVD virtuel si celui-ci n’est pas utilisé dans une machine virtuelle.

Erreurs de stockage

Vérifiez s’il y a suffisamment d’espace disque sur le stockage de la machine virtuelle. Si l’espace disque est insuffisant pour stocker les fichiers de la machine virtuelle, la défaillance de stockage peut entraîner le blocage de la machine virtuelle et l’affichage d’une erreur « Hyper-V n’a pas pu changer d’état » . Si la défaillance de la machine virtuelle est due à un manque d’espace de stockage, vous devrez peut-être exécuter ces commandes pour corriger les erreurs de disque au sein des VMs :

sfc /scannow
dism /online /cleanup-image /restorehealth

Si vous ne parvenez pas à démarrer une VM normalement ou si celle-ci est bloquée dans une boucle infinie, insérez une image ISO d’installation de Windows dans un lecteur DVD virtuel, démarrez la VM à partir de cette image ISO (ouvrez le BIOS/UEFI virtuel et sélectionnez le lecteur DVD-ROM comme premier périphérique d’amorçage), sélectionnez Mode de réparation , lancez CMD, puis exécutez la commande suivante : chkdsk /f /r /x c:

Lorsque la vérification du disque est terminée et que les erreurs de disque sont corrigées, redémarrez la VM, démarrez à partir d’un lecteur disque dur virtuel (la VM devrait démarrer maintenant) et exécutez les commandes mentionnées précédemment dans l’OS invité :

sfc /scannow
dism /online /cleanup-image /restorehealth

Vous devrez également vérifier vos disques physiques utilisés pour le stockage Hyper-V sur un hôte Hyper-V.

Erreurs de configuration réseau

Vérifiez les paramètres de l’adaptateur de réseau virtuel de la VM. Si le statut Erreur de configuration de l’adaptateur réseau est affiché pour au moins un adaptateur réseau, vous pourriez avoir des problèmes de démarrage/arrêt de VM dans Hyper-V. Cartes réseau virtuelles doit être connecté à un commutateurs virtuels existant pour un fonctionnement normal. Cette erreur peut être affichée si la configuration réseau a été modifiée ou est devenue corrompue.

Network failure or storage failure can be a reason of errors for Hyper-V VMs

Détection des problèmes dans les journaux

Vérifiez les journaux des événements de Windows et les erreurs liées à Hyper-V. Exécutez compmgmt.msc, puis allez à Event Viewer > Applications and Services Logs > Microsoft > Windows > Hyper-V-Worker. Si vous voyez des messages d’erreur dans les journaux, l’explication de l’erreur peut vous indiquer la source du problème.

Blocage de l’accès par logiciel antivirus

Vérifiez les paramètres de votre logiciel antivirus. L’antivirus ne doit pas bloquer l’accès aux fichiers de la VM Hyper-V. Si l’antivirus bloque l’accès aux fichiers de la VM, ajoutez les dossiers où les fichiers de la VM sont stockés aux exclusions dans les paramètres antivirus. Hyper-V doit avoir un accès complet aux dossiers et fichiers VM.

Options d’alimentation de la VM

Vérifiez les options d’alimentation dans les paramètres du système d’exploitation invité. Le mode veille et l’hibernation doivent être désactivés. Dans l’hôte Windows, ouvrez Control Panel, puis allez à Power Options, et assurez-vous que l’option “Put the computer to sleep” est réglée sur Never. Si Ubuntu Linux est installé comme système d’exploitation invité, utilisez la commande pour désactiver le mode veille :

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

Vérification de VMMS

vmms.exe est un processus utilisé par Hyper-V. Assurez-vous que le Service de Gestion Virtuelle Hyper-V (VMMS), qui est l’un des services Hyper-V importants, fonctionne correctement et que le VMMS ne reste pas bloqué et n’est pas en état de démarrage ou d’arrêt (statut). Le statut du service doit être En cours d’exécution .

The Hyper-V Virtual Machine Management service is running

Le service VMMS est lié au processus vmms.exe .

The vmms.exe process is related to the Virtual Machine Management service in Hyper-V

Désactiver RRAS

Une mauvaise configuration du Service de Routage et Accès Distant (RRAS) peut être une raison pour qu’un VM Hyper-V soit bloqué en raison d’une configuration réseau incorrecte. Essayez de désactiver RRAS dans le serveur Windows fonctionnant comme hôte Hyper-V.

Appuyez sur Win+R pour ouvrir la boîte de dialogue Run.

Tapez services.msc et appuyez sur Enter.

Trouvez le Routing and Remote Access Service dans la fenêtre Services , cliquez droit sur le service et dans le menu contextuel cliquez sur Properties. Dans l’onglet General des propriétés de Routage et Accès à distance dans la fenêtre , cliquez sur Stop et changez le type de démarrage en Disabled.

Redémarrage de la machine hôte Hyper-V

Si aucune des méthodes ci-dessus n’aide, essayez de redémarrer la machine hôte Hyper-V. Si vous avez d’autres hôtes Hyper-V ou un cluster de Haute Disponibilité Hyper-V, vous pouvez migrer les VM en cours d’exécution vers d’autres hôtes puis éteindre l’hôte Hyper-V avec la VM problématique.

Réparation d’une VM Hyper-V bloquée dans l’État Enregistré

Une VM Hyper-V qui se bloque peut se produire non seulement dans l’état de démarrage/arrêt de la VM, mais aussi dans l’état enregistré de la VM. Les symptômes sont similaires et vous ne pouvez pas changer l’état de la VM problématique. Les boutons Démarrer/Arrêter la VM ne fonctionnent pas. Si vous fermez Hyper-V pendant qu’une VM est sauvegardée, vous pouvez avoir la VM Hyper-V bloquée dans l’état enregistré. Cela peut se produire si le processus de sauvegarde est interrompu et qu’une VM est placée dans l’état enregistré. La VM peut être corrompue ou endommagée dans ce cas. Explorons les raisons courantes de cette erreur et les méthodes pour la corriger.

Erreurs de disque

Si un disque avec des fichiers de VM est débranché tandis qu’une VM est en cours d’exécution, l’erreur peut se produire pour une VM et celle-ci est placée dans l’état enregistré. Cette erreur est plus plausible pour les utilisateurs domestiques Hyper-V qui stockent des fichiers de VM sur des disques USB. Toutefois, les administrateurs des organisations doivent savoir que cette erreur peut être causée par des problèmes de stockage. En cas d’espace disque insuffisant, une VM se bloque et peut aussi être mise dans l’état enregistré. Si vous avez configuré une VM pour utiliser un matériel virtuel qui n’est pas supporté par un système d’exploitation invité, la VM peut être bloquée dans l’état enregistré. Ce problème peut survenir si vous créez une nouvelle VM et importez un disque virtuel existant avec le système d’exploitation invité installé. Modifiez les options de la VM, sélectionnez le bon contrôleur de stockage et d’autres options de disque. Lisez la différence entre VMs de génération 1 et VMs de génération 2 pour plus d’informations.

Ressources matérielles insuffisantes

Si vous exécutez plusieurs VM gourmandes en ressources sur un hôte Hyper-V, en cas de mémoire et de performances processeur insuffisantes, une VM peut planter et être placée dans l’état enregistré. Vous devez alors vous efforcer de réparer la VM plantée. Pour éviter ce problème, mettez à niveau votre matériel ou ne faites pas fonctionner plusieurs VM lourdes sur l’hôte avec de faibles performances. Migrez la VM vers un autre hôte Hyper-V si possible.

Permissions de dossier incorrectes

Si les permissions pour les dossiers et les fichiers de VM sont insuffisantes, la VM peut être bloquée dans l’état Enregistré . Ouvrez les propriétés du dossier où les fichiers de la machine virtuelle sont stockés. Vérifiez les onglets Security et Sharing (si une machine virtuelle est dans un dossier partagé sur le stockage partagé). Définissez les permissions à Allow all pour l’utilisateur ou le groupe nécessaire.

Suppression de la machine virtuelle

Ceci est une autre méthode pour résoudre le problème de la machine virtuelle bloquée dans l’état de démarrage/arrêt/économie si d’autres méthodes n’ont pas aidé. Vous ne souhaitez pas perdre vos données et pour cette raison, vous devriez copier les fichiers de disque virtuel vers un emplacement sécurisé. Ensuite, supprimez la machine virtuelle problématique, y compris les fichiers de configuration de la machine virtuelle depuis l’emplacement d’origine (faites un clic droit sur la machine virtuelle et cliquez sur Delete dans Hyper-V Manager). Créez une nouvelle machine virtuelle, copiez les disques virtuels depuis une sauvegarde vers le nouvel emplacement de la machine virtuelle et sélectionnez un disque virtuel existant lors de la création d’une nouvelle machine virtuelle dans Hyper-V.

Une machine virtuelle est bloquée dans le statut “Sauvegarde en cours”

Un autre problème similaire est la machine virtuelle Hyper-V bloquée dans l’état En cours d’exécution avec le statut Sauvegarde en cours . Vous ne pouvez ni démarrer ni arrêter les machines virtuelles dans cet état dans Hyper-V Manager. Redémarrer l’hôte Hyper-V aide généralement à résoudre ce problème, mais le redémarrage n’est pas souhaité car d’autres machines virtuelles tournant sur l’hôte doivent être arrêtées ou migrées.

How to turn off Hyper-V VMs hanging with the backing up status

La cause possible de cette erreur est un problème avec le service Microsoft Hyper-V VSS Writer sur l’hôte Hyper-V.

Ouvrez la ligne de commande (CMD) en tant qu’administrateur et exécutez cette commande pour vérifier le statut des écrivains VSS :

vssadmin list writers

S’il n’y a pas d’erreurs, la sortie pour chaque écrivain VSS est similaire à celle affichée dans la capture d’écran ci-dessous.

Checking VSS writers on a Hyper-V host

Le service d’écriture VSS Microsoft Hyper-V dépend du service parent de gestion des machines virtuelles Hyper-V. Pour cette raison, vous devez redémarrer le service de gestion des machines virtuelles Hyper-V pour redémarrer le service VSS nécessaire et résoudre le problème.

La manière la plus rapide de redémarrer le service de gestion des machines virtuelles Hyper-V est d’ouvrir Services dans Computer Management ou d’exécuter services.msc, de faire un clic droit sur le nom du service et de sélectionner Restart.

Restarting the Hyper-V Virtual Machine Management service

Si l’écrivain Hyper-V VSS est bloqué et ne répond pas, vous devriez manuellement terminer le processus vmms.exe dans le Gestionnaire des tâches. Ouvrez le Gestionnaire des tâches, faites un clic droit sur vmms.exe et sélectionnez End Process Tree dans le menu contextuel.

Ending the vmms.exe process and restarting Virtual Machine Management service

Après avoir terminé le processus vmms.exe , les machines virtuelles devraient disparaître dans Hyper-V Manager. Démarrez le service de gestion des machines virtuelles Hyper-V, et vous devriez voir à nouveau la liste de vos machines virtuelles et le statut de sauvegarde de la machine virtuelle problématique devrait être disparu. Redémarrer ces services Hyper-V devrait résoudre le problème.

Conclusion

L’erreur « Hyper-V failed to change state » est une erreur désagréable pour les utilisateurs et les administrateurs lors de l’utilisation de machines virtuelles. Heureusement, il existe de fortes chances de résoudre l’erreur liée au blocage d’une machine virtuelle Hyper-V lorsque vous ne parvenez pas à arrêter les VMs problématiques. Cet article de blog a examiné les raisons courantes et les méthodes possibles pour résoudre les erreurs « Hyper-V failed to change state » et « failed to restore virtual machine state ».

Sachez que les données des VMs peuvent parfois être corrompues après cette erreur, d’autres erreurs ou après des pannes matérielles. C’est la raison pour laquelle il est recommandé d’effectuer régulièrement des sauvegardes de vos VMs Hyper-V afin d’éviter toute perte de données. Utilisez NAKIVO Backup & Replication pour sauvergarder vos VMs Hyper-V avec des performances optimales et des fonctionnalités permettant de gagner en espace.

Essayez NAKIVO Backup & Replication

Essayez NAKIVO Backup & Replication

Profitez d'un essai gratuit pour découvrir toutes les fonctionnalités de protection des données de la solution. 15 jours gratuits. Aucune restriction en termes de fonctionnalités ou de capacité. Aucune carte bancaire requise.

Les gens qui ont consulté cet article ont également lu