Partager via


Réparer une machine virtuelle Windows à l’aide des commandes de réparation de machine virtuelle Azure

Si votre machine virtuelle Windows dans Azure rencontre une erreur de démarrage ou une erreur de disque, il vous faut peut-être réparer le disque hors connexion. Comme exemple courant, citons l’échec de mise à jour d’une application qui empêche le bon démarrage de la machine virtuelle. Cet article explique comment utiliser les commandes de réparation de machine virtuelle Azure pour attacher automatiquement un disque de système d’exploitation endommagé à une autre machine virtuelle Windows pour une réparation hors connexion. À travers cette procédure, le disque du système d’exploitation défectueux est automatiquement déverrouillé sur la deuxième machine virtuelle, appelée machine virtuelle de réparation, si le disque est chiffré avec Azure Disk Encryption. Lorsque le disque défectueux est attaché à la machine virtuelle de réparation, vous pouvez corriger les erreurs, puis reconstruire votre machine virtuelle d’origine avec le disque réparé.

Importante

  • Les scripts de cet article s’appliquent uniquement aux machines virtuelles qui utilisent Azure Resource Manager.
  • Une connectivité sortante à partir de la machine virtuelle (port 443) est nécessaire pour l’exécution du script.
  • Vous ne pouvez exécuter qu’un seul script à la fois.
  • Vous ne pouvez pas annuler un script en cours d’exécution.
  • La durée maximale d’exécution d’un script est de 90 minutes (le script expire après ce délai).
  • Ne modifiez pas les balises créées sur la machine virtuelle de réparation. Ces balises sont nécessaires au bon fonctionnement de la commande de restauration.
  • Pour les machines virtuelles utilisant Azure Disk Encryption, seuls les disques managés chiffrés avec le chiffrement à passe unique (avec ou sans clé KEK) est pris en charge.

Vue d’ensemble du processus de réparation

Vous pouvez désormais utiliser les commandes de réparation de machine virtuelle Azure pour changer le disque de système d’exploitation d’une machine virtuelle. Vous n’avez plus besoin de supprimer et de recréer la machine virtuelle.

Suivez ces étapes pour résoudre le problème de la machine virtuelle :

  1. Lancement d’Azure Cloud Shell
  2. Exécutez az extension add/update.
  3. Exécutez az vm repair create.
  4. Exécutez « az vm repair run » ou effectuez des étapes d’atténuation.
  5. Exécutez az vm repair restore.

Pour afficher toutes les commandes et tous les paramètres de réparation de machine virtuelle disponibles, consultez l’article az vm repair.

Pour exécuter les commandes, vous avez besoin d’un rôle qui peut créer les types de ressources suivants dans l’abonnement :

  • Groupes de ressources
  • Machines virtuelles
  • Balises de ressources
  • Virtual Networks
  • Groupes de sécurité réseau
  • Interfaces réseau
  • Disques
  • Adresses IP publiques (facultatif)

Exemple de processus de réparation

  1. Lancement d’Azure Cloud Shell

    Azure Cloud Shell est un interpréteur de commandes interactif et gratuit que vous pouvez utiliser pour exécuter les étapes de cet article. Il contient des outils Azure courants préinstallés et configurés pour être utilisés avec votre compte. Si vous exécutez un script d’une durée supérieure à 20 minutes (par exemple, le script win-sfc-sf-corruption), vous pouvez envisager d’exécuter les commandes localement. Pour ce faire, Azure CLI version 2.0.67 ou ultérieure est nécessaire. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau votre interface Azure CLI, consultez Installer Azure CLI.

    Pour ouvrir Cloud Shell, sélectionnez Essayer en haut à droite d’un bloc de code. Vous pouvez également ouvrir Cloud Shell dans un onglet de navigateur distinct en accédant à https://shell.azure.com.

    Sélectionnez Copier pour copier les blocs de code, collez-les ensuite dans Cloud Shell, puis sélectionnez Entrée pour exécuter le code.

    Si vous préférez installer et utiliser l’interface de ligne de commande en local, ce démarrage rapide nécessite au minimum la version 2.0.67 d’Azure CLI. Exécutez az --version pour trouver la version. Si vous devez installer ou mettre à niveau votre interface Azure CLI, consultez Installer Azure CLI.

    Si vous devez vous connecter à Cloud Shell avec un compte différent de celui avec lequel vous êtes actuellement connecté au portail Azure, vous pouvez utiliser az loginaz login reference. Pour basculer entre les abonnements associés à votre compte, vous pouvez utiliser az account set --subscriptionaz account set reference.

  2. Si vous utilisez les commandes az vm repair pour la première fois, ajoutez l’extension CLI vm-repair.

    az extension add -n vm-repair
    

    Si vous avez utilisé les commandes az vm repair, appliquez les mises à jour à l’extension vm-repair.

    az extension update -n vm-repair
    
  3. Exécutez az vm repair create. Cette commande permet de créer une copie du disque de système d’exploitation de la machine virtuelle hors service, de créer une machine virtuelle de réparation dans un nouveau groupe de ressources, et d’attacher une copie du disque de système d’exploitation. La machine virtuelle de réparation aura la même taille et sera dans la même région que la machine virtuelle hors service spécifiée. Le groupe de ressources et le nom de la machine virtuelle utilisés au cours des différentes étapes serviront à la machine virtuelle hors service. Si votre machine virtuelle utilise Azure Disk Encryption, utilisez --unlock-encrypted-vm pour déverrouiller le disque chiffré afin qu’il soit accessible quand il est attaché à la machine virtuelle de réparation. Pour plus d’informations, consultez la section Confirmer qu’ADE est activé sur le disque. Si vous devez résoudre les problèmes de votre machine virtuelle dans un environnement Hyper-V imbriqué, utilisez --enable-nested et la machine virtuelle de réparation sera créée avec le rôle Hyper-V activé ainsi qu’avec une machine virtuelle imbriquée à l’aide de la copie du disque de système d’exploitation.

Importante

Les commandes d’exécution et de restauration nécessitent que toutes les entrées soient saisies en utilisant la même casse (majuscules et minuscules) que celle utilisée dans la commande de création. Prenez note des balises sur la machine virtuelle de réparation ou consultez-les pour connaître la casse utilisée.

Exemple de machine virtuelle de réparation

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --verbose

Exemple de machine virtuelle de réparation avec Hyper-V imbriqué

az vm repair create -g MyResourceGroup -n myVM --repair-username username --repair-password 'password!234' --enable-nested --verbose
  1. Exécutez az vm repair run. Cette commande permet d’exécuter le script de réparation spécifié sur le disque attaché via la machine virtuelle de réparation. Si le guide de résolution des problèmes que vous utilisez spécifie un ID d’exécution (paramètre run-id), utilisez-le ici. Sinon, vous pouvez utiliser az vm repair list-scripts pour afficher les scripts de réparation disponibles. Le groupe de ressources et le nom de la machine virtuelle utilisés ici serviront à la machine virtuelle hors service de l’étape 3. Vous trouverez des informations supplémentaires sur les scripts de réparation dans la bibliothèque de scripts de réparation.

    az vm repair run -g MyResourceGroup -n MyVM --run-on-repair --run-id win-hello-world --verbose
    

    Si vous le souhaitez, vous pouvez effectuer toutes les étapes d’atténuation manuelles nécessaires à l’aide de la machine virtuelle de réparation, puis passer à l’étape 5.

  2. Exécutez az vm repair restore. Cette commande permet de remplacer le disque de système d’exploitation réparé par le disque de système d’exploitation d’origine de la machine virtuelle. Le groupe de ressources et le nom de la machine virtuelle utilisés ici serviront à la machine virtuelle hors service de l’étape 3.

    az vm repair restore -g MyResourceGroup -n MyVM --verbose
    

Vérifier et activer les diagnostics de démarrage

L’exemple suivant active l’extension de diagnostic sur la machine virtuelle nommée myVMDeployed, dans le groupe de ressources nommé myResourceGroup :

Azure CLI

az vm boot-diagnostics enable --name myVMDeployed --resource-group myResourceGroup --storage https://mystor.blob.core.windows.net/

Prochaines étapes

Contactez-nous pour obtenir de l’aide

Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.