Configuration du débogage réseau d’une machine virtuelle - KDNET

Cette rubrique explique comment configurer une connexion de débogage du noyau vers une machine virtuelle Hyper-V (VM).

Configuration de la machine virtuelle Hyper-V

Pour déboguer une machine virtuelle Hyper-V de génération 2 (VM), suivez cette procédure :

1 Créez une VM avec Windows installé

Pour des informations sur comment créer une VM, consultez Créer une machine virtuelle avec Hyper-V.

2. Définissez un commutateur virtuel externe

Pour communiquer avec la VM, un commutateur réseau virtuel externe peut être utilisé. Pour des informations sur comment créer un commutateur réseau externe, veuillez consulter la rubrique Créer un réseau virtuel.

Lorsque le commutateur réseau externe est configuré, les options suivantes doivent être définies.

Option Valeur
Type Connexion Réseau externe
Autoriser le système d’exploitation de gestion à partager cette carte réseau Enabled
ID du réseau local virtuel Désactivé

3. Désactivez le démarrage sécurisé

Pour permettre à l’utilitaire kdnet de mettre à jour les paramètres de démarrage BCDEdit, désactivez temporairement le démarrage sécurisé sur la machine virtuelle en suivant cette procédure :

  1. Chargez le gestionnaire Hyper-V et sélectionnez les propriétés de votre VM.

  2. Sélectionnez les paramètres de Sécurité.

  3. Décochez la case Activer le démarrage sécurisé.

  4. Sélectionnez OK pour enregistrer les paramètres.

Vous pouvez réactiver le démarrage sécurisé une fois que vous avez terminé le débogage et que vous avez désactivé le débogage du noyau sur la VM cible.

4. Installez les outils de débogage pour Windows

Les outils de débogage sont utilisés pour le débogueur et l’utilitaire kdnet et doivent être installés. Pour des informations sur comment télécharger et installer les outils de débogage, consultez Outils de débogage pour Windows.

Configuration du débogage réseau d’une machine virtuelle - KDNET

Enregistrez l’adresse IP de l’hôte

Pour exécuter le débogueur hôte sur le même PC que la machine virtuelle cible, suivez cette procédure :

  1. Dans l’OS de l’ordinateur hôte, ouvrez une fenêtre d’invite de commande et saisissez IPConfig pour afficher la configuration IP.

  2. Dans la sortie de la commande, localisez l’adaptateur Ethernet que vous avez configuré comme commutateur virtuel externe.

    ...
    
    Ethernet adapter vEthernet (External Virtual Switch):
    
    ...
    
    IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
    
    ...
    
    

Conseil

Il peut y avoir plusieurs entrées d’adaptateur avec des noms similaires. Assurez-vous de localiser le commutateur virtuel que vous avez créé.

  1. Enregistrez l’adresse IPv4 du commutateur virtuel externe qui sera utilisée comme adresse hôte pour le débogage.

  2. Pour confirmer la connectivité entre la cible et l’ordinateur hôte, ouvrez une fenêtre d’invite de commandes avec élévation de privilèges sur l’ordinateur cible, puis saisissez la commande suivante, où YourHostIPAddress est l’adresse IP de l’ordinateur hôte.

    ping -4 <YourHostIPAddress>
    

Configuration de la VM cible

Utilisez l’utilitaire kdnet.exe pour configurer automatiquement les paramètres du débogueur sur le PC cible, en suivant cette procédure :

  1. Localisez les fichiers kdnet.exe et VerifiedNICList.xml du WDK. Par défaut, ils se trouvent ici.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

Remarque

Ces instructions supposent que les deux PC exécutent une version 64 bits de Windows sur la cible et l’hôte. Si ce n’est pas le cas, la meilleure approche est d’exécuter la même « bitness » d’outils sur l’hôte que la cible exécute. Par exemple, si la cible exécute Windows 32 bits, exécutez une version 32 du débogueur sur l’hôte. Pour plus d’informations, consultez Choisir les outils de débogage 32 bits ou 64 bits.

  1. Pour permettre de copier et coller la longue clé utilisée, activez la prise en charge de session améliorée. Dans la fenêtre VM, à partir du menu déroulant Vue, activez Session améliorée.

  2. Sur l’ordinateur VM cible, créez un répertoire C:\KDNET et copiez les fichiers kdnet.exe et VerifiedNICList.xml dans ce répertoire.

  3. Sur l’ordinateur cible, ouvrez une fenêtre d’invite de commande en tant qu’administrateur. Entrez cette commande pour vérifier que l’ordinateur cible dispose d’un adaptateur réseau pris en charge.

    C:\KDNET>kdnet
    
    Network debugging is supported on the following NICs:
    busparams=0.25.0, Intel(R) 82579LM Gigabit Network Connection, KDNET is running on this NIC.kdnet.exe
    
  4. Saisissez cette commande pour définir l’adresse IP du système hôte et générer une clé de connexion unique. Utilisez l’adresse IP du système hôte que vous avez enregistrée plus tôt. Choisissez une adresse de port unique pour chaque paire cible/hôte avec laquelle vous travaillez, dans la plage de 50000 à 50039. Pour cet exemple, nous sélectionnerons 50005.

    C:\>kdnet <YourIPAddress> <YourDebugPort> 
    
    Enabling network debugging on Microsoft Hypervisor Virtual Machine.
    Key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7
    
    To debug this vm, run the following command on your debugger host machine.
    windbg -k net:port=50005,key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7
    
    Then restart this VM by running shutdown -r -t 0 from this command prompt.
    
  5. Utilisez CTRL+C pour copier la sortie Windbg fournie dans le tampon de commande. Cela évite de tenter d’écrire la longue valeur de clé qui est retournée.

  6. Réactivez BitLocker et le démarrage sécurisé lorsque vous avez terminé de configurer les paramètres du débogueur.

  7. Parce qu’une VM avec prise en charge de session améliorée peut expirer lorsqu’elle est laissée sur un point d’arrêt, désactivez la prise en charge de Session améliorée en utilisant le menu déroulant Vue dans la VM.

  8. a VM sera redémarrée après que le débogueur soit chargé et en cours d’exécution. Ce processus est décrit ci-après.

Démarrer la session de débogage

  1. Pour vous connecter au PC cible, utilisez CTRL+V pour coller dans la fenêtre de commande OS principale la chaîne Windbg retournée par kdnet que vous avez copiée plus tôt.

    C:\Debuggers\windbg -k net:port=<YourDebugPort>,key=<YourKey> 
    

Lorsque vous tentez pour la première fois d’établir une connexion de débogage réseau, vous pourriez être invité à autoriser l’application de débogage (WinDbg ou KD) à accéder à travers le pare-feu. Vous devriez répondre à l’invite en cochant les cases pour les trois types de réseau : domaine, privé et public.

Redémarrage du PC cible

Une fois le débogueur connecté, redémarrez l’ordinateur cible. Pour forcer la VM à redémarrer complètement, utilisez cette commande, à partir d’une invite de commande d’administrateur.

shutdown -r -t 0

Lorsque la machine virtuelle cible est redémarrée, le débogueur dans l’OS hôte devrait se connecter.

Après vous être connecté à la VM, appuyez sur pause dans votre débogueur et vous pouvez commencer le débogage.

Pour prendre en charge la connexion de débogage, un adaptateur réseau de débogage du noyau est ajouté et visible dans les propriétés réseau après le redémarrage de la VM.

Dépannage du débogage réseau de la machine virtuelle KDNET

Si le débogueur ne se connecte pas, utilisez la commande ping de la VM cible pour vérifier la connectivité.

C:\>Ping <HostComputerIPAddress>

Quelque chose ne fonctionne pas correctement et je ne sais pas vraiment quoi...

  • Assurez-vous d’avoir autorisé WinDbg à travers votre pare-feu.
  • Confirmez que vous utilisez une clé unique générée par BCDEdit ou kdnet.

Si vos VM n’ont pas de connectivité réseau

  • Ouvrez le gestionnaire de commutateurs virtuels à partir du gestionnaire Hyper-V, sélectionnez votre commutateur virtuel existant et changez le NIC réseau externe en adaptateur réseau de débogage du noyau Microsoft en le sélectionnant dans la liste déroulante, puis en sélectionnant OK dans la boîte de dialogue du gestionnaire de commutateurs virtuels. Après avoir mis à jour votre NIC de commutateur virtuel, assurez-vous de redémarrer vos VM.

Séquence pour ajouter le rôle Hyper-V à un PC Windows

Si votre ordinateur cible est un hôte de machine virtuelle, vous pouvez configurer le débogage réseau et toujours avoir un accès réseau pour les machines virtuelles.

Supposons que vous souhaitez configurer le débogage réseau dans la situation suivante :

  • L’ordinateur cible a une seule carte d’interface réseau.
  • Vous avez l’intention d’installer le rôle Hyper-V sur l’ordinateur cible.
  • Vous avez l’intention de créer une ou plusieurs machines virtuelles sur l’ordinateur cible.

La meilleure approche est de configurer le débogage réseau sur l’ordinateur cible avant d’installer le rôle Hyper-V. Ensuite, les machines virtuelles auront accès au réseau.

Si vous décidez de configurer le débogage réseau après que le rôle Hyper-V a été installé sur l’ordinateur cible, vous devez changer les paramètres réseau pour vos machines virtuelles pour les relier à l’adaptateur réseau de débogage du noyau Microsoft. Sinon, les machines virtuelles n’auront pas accès au réseau.

Voir aussi

Configuration du débogage du noyau d’une machine virtuelle manuellement à l’aide d’un port COM virtuel

Configuration d’une connexion réseau manuellement