View a markdown version of this page

Débogage du noyau pour les instances Windows sur le réseau - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Débogage du noyau pour les instances Windows sur le réseau

Le module d'extensibilité KDNET pour Elastic Network Adapter (ENA) est une couche de support des pilotes matériels qui permet le débogage du noyau Windows sur le réseau via ENA sur les instances Amazon Elastic Compute Cloud. Vous pouvez utiliser le module d'extensibilité avec le Windows Debugger (WinDbg) pour effectuer un débogage au niveau du noyau sur des instances EC2 exécutant Windows.

Le débogage du noyau vous aide à diagnostiquer et à résoudre les problèmes de bas niveau du système d'exploitation tels que les erreurs d'écran bleu (BSOD), les défaillances de pilotes et les problèmes de démarrage sur vos instances Windows EC2.

Conditions préalables

Avant de commencer, assurez-vous de disposer des éléments suivants :

Deux instances Windows EC2, dans le même sous-réseau :

  • Une instance hôte de débogage : exécute le débogueur Windows (). WinDbg

  • Une instance cible de débogage : l'instance que vous souhaitez déboguer.

Pour plus d'informations sur le lancement d'instances, consultezCommencez avec Amazon EC2.

Les groupes de sécurité pour les instances hôte et cible doivent autoriser le trafic UDP entrant et sortant sur le port utilisé pour le débogage de KDNET (plage recommandée : 50000—50039). Le moyen le plus simple de configurer cela consiste à créer un groupe de sécurité avec une règle entrante qui autorise le trafic UDP à partir de lui-même comme source, puis à associer ce groupe de sécurité aux deux instances. Pour plus d’informations, consultez Règles des groupes de sécurité dans le Guide de l’utilisateur Amazon VPC.

L'instance cible de débogage doit exécuter l'une des versions Windows suivantes (ou une version ultérieure) :

  • Windows Server 2025 avec le numéro de version 26100.7462 (correctif de décembre 2025)

  • Windows 11 24H2 avec le numéro de version 26100.7309

  • Windows 11 25H2 avec le numéro de version 26200.7309

Note

Le module d'extensibilité KDNET pour ENA est distribué dans le cadre de Windows et ne peut être mis à jour que par le biais de mises à jour cumulatives mensuelles de Windows. Nous vous recommandons de conserver la dernière version de Windows KB installée sur la cible de débogage afin de vous assurer que vous disposez de la version la plus récente de celle-ci.

Pour vérifier que le module est présent sur la cible de débogage, exécutez la commande suivante dans une PowerShell session élevée :

Test-Path C:\Windows\system32\kd_02_1d0f.dll

Si la commande revientTrue, le module est disponible.

Étape 1 : Installation des outils de débogage Windows sur l'hôte de débogage

Installez les outils de débogage Windows sur l'instance hôte de débogage en exécutant la commande suivante dans une PowerShell session :

winget install microsoft.windbg

Pour obtenir des instructions d'installation détaillées, voir Installer le débogueur Windows dans la documentation Microsoft.

Après l'installation, vérifiez que le débogueur fonctionne en exécutant la commande suivante dans une PowerShell session :

windbgx

La WinDbg fenêtre devrait s'ouvrir. Si c'est le cas, l'installation est réussie et vous pouvez fermer la fenêtre.

Étape 2 : Configuration de la cible de débogage

Note

Lorsque le débogage du noyau est actif, le périphérique ENA utilisé pour la session de débogage est dédié au trafic du débogueur uniquement. Si vous devez conserver l'accès à Internet sur l'instance cible de débogage pendant le débogage, attachez un deuxième ENA à l'instance avant de commencer.

Sur la cible de débogage, ouvrez une PowerShell session élevée et configurez le débogage du noyau en suivant les étapes ci-dessous.

Exécutez la commande suivante pour répertorier le bus, le périphérique et le numéro de fonction de l'adaptateur ENA connecté à l'instance :

Get-NetAdapter -Physical | Where-Object -Property PnPDeviceID -Match -Value '^PCI\\VEN_1D0F&DEV_EC2[01]&' | Get-NetAdapterHardwareInfo | Select-Object InterfaceDescription, BusNumber, DeviceNumber, FunctionNumber | Format-List

Si plusieurs adaptateurs ENA sont attachés à l'instance, utilisez la commande suivante pour mapper chaque adaptateur physique à son adresse IP privée. Vous pouvez croiser ces informations dans la AWS Management Console section EC2 → Instances → [ID d'instance] → Mise en réseau → Interfaces réseau. Cela vous permet de corréler des groupes d'interface réseau IDs IPs, privés et de sécurité spécifiques avec l'adaptateur au niveau du système d'exploitation pour un débogage ciblé.

Get-NetAdapter -Physical | Where-Object PnPDeviceID -Match '^PCI\\VEN_1D0F&DEV_EC2[01]&' | ForEach-Object { $adapter = $_ $hwInfo = $adapter | Get-NetAdapterHardwareInfo $ipInfo = Get-NetIPAddress -InterfaceIndex $adapter.InterfaceIndex -AddressFamily IPv4 [PSCustomObject]@{ InterfaceDescription = $adapter.InterfaceDescription IPAddress = $ipInfo.IPAddress BusNumber = $hwInfo.BusNumber DeviceNumber = $hwInfo.DeviceNumber FunctionNumber = $hwInfo.FunctionNumber } } | Format-List

Notez les FunctionNumber valeurs BusNumberDeviceNumber, et de l'adaptateur ENA à utiliser pour le débogage à partir de la sortie.

Exécutez les commandes suivantes pour configurer le débogage du noyau. Remplacez les valeurs d'espace réservé par votre configuration spécifique :

bcdedit /debug on bcdedit /set loadoptions FORCEHVTONOTSHAREDEBUGDEVICE bcdedit /dbgsettings net hostip:host-private-ip port:port-number key:encryption-key busparams:b.d.f
Note

Vérifiez l'existence loadoptions en exécutant la commande suivante. Si une valeur est renvoyée, copiez cette chaîne et ;FORCEHVTONOTSHAREDEBUGDEVICE ajoutez-la.

(bcdedit /enum) -match "loadoptions"

Où :

  • host-private-ip— IPv4 Adresse privée de l'instance hôte de débogage. Si vos instances sont lancées dans un sous-réseau IPv6 réservé, consultez Configuration de KDNET dans la documentation Microsoft pour en savoir plus sur IPv6 l'utilisation IPv6 de KDNET.

  • port-number— Port à utiliser pour la session de débogage. La plage recommandée est comprise entre 50000 et 50039 (par exemple,). 50000

  • encryption-key— Une clé de 256 bits utilisée pour chiffrer la connexion de débogage, spécifiée sous la forme de quatre valeurs de 64 bits séparées par des points. Chaque valeur 64 bits peut comporter jusqu'à 13 caractères en utilisant uniquement des lettres minuscules de a à z et des chiffres de 0 à 9. Les caractères spéciaux ne sont pas autorisés. Exemple de clé de chiffrement :1kdnet2keys3.4kdnet5keys6.7kdnet8keys9.10kdnet11ke.

  • b.d.f— Les numéros de bus, de périphérique et de fonction du périphérique ENA, formatés comme bus.device.function (par exemple0.3.0), utilisés pour le débogage.

Astuce

Pour déboguer le processus de démarrage de Windows, exécutez également la commande suivante :

bcdedit /bootdebug on

Étape 3 : démarrer la session de débogage sur l'hôte de débogage

Pour autoriser le débogage du trafic sur l'hôte, vous pouvez créer une règle de pare-feu pour l' WinDbg application ou pour un port UDP spécifique.

Option 1 : Autoriser l' WinDbg application

Exécutez les commandes suivantes pour autoriser l' WinDbg exécutable :

$WinDbgxPath = "$env:LocalAppData\Microsoft\WindowsApps\WinDbgX.exe" New-NetFirewallRule -DisplayName "Allow Inbound KDNET Connection" -Action Allow -Program $WinDbgxPath
Option 2 : autoriser un port UDP spécifique

Vous pouvez également autoriser le trafic UDP entrant vers le port configuré pour le débogage du noyau. port-numberRemplacez-le par le port KDNET de votre choix :

$DebugPort = port-number New-NetFirewallRule -DisplayName "Allow Inbound KDNET Connection" -Direction Inbound -LocalPort $DebugPort -Protocol UDP -Action Allow
Note

Les configurations de pare-feu peuvent être limitées par la politique de groupe de domaines (GPO) ou nécessiter des autorisations d'administrateur élevées. Si la commande échoue, contactez votre administrateur réseau.

WinDbg Commencez par le port et la clé correspondant à la configuration de la cible de débogage. Vous pouvez spécifier des options supplémentaires de débogage du noyau documentées dans la référence de ligne de WinDbg commande Microsoft en fonction de votre cas d'utilisation.

windbgx -k net:port=port-number,key=encryption-key

WinDbg s'ouvre et attend que la cible de débogage se connecte.

Étape 4 : redémarrez la cible de débogage

Sur la cible de débogage, redémarrez l'instance pour initier la connexion de débogage :

shutdown -r -t 0

Après le redémarrage de la cible de débogage, l'hôte WinDbg de débogage se connecte automatiquement à la cible. Vous pouvez désormais l'utiliser WinDbg pour inspecter l'état du noyau, définir des points d'arrêt et diagnostiquer les problèmes.

Nettoyer les paramètres de débogage après le débogage

Sur la cible de débogage

Une fois le débogage terminé, supprimez la configuration de débogage du noyau de la cible de débogage pour rétablir le comportement de démarrage normal. Sur la cible de débogage, ouvrez une PowerShell session élevée et exécutez les commandes suivantes :

bcdedit /debug off bcdedit /dbgsettings LOCAL bcdedit /deletevalue loadoptions

Si vous en avez un loadoptions autreFORCEHVTONOTSHAREDEBUGDEVICE, vous devez restaurer le paramètre bcdedit /set loadoptions en utilisant l'originalloadoptions.

Si vous avez activé le débogage au démarrage, exécutez également :

bcdedit /bootdebug off

Redémarrez l'instance pour que les modifications prennent effet.

Sur l'hôte de débogage

Supprimez la règle de pare-feu en exécutant :

Remove-NetFirewallRule -DisplayName "Allow Inbound KDNET Connection"

Limitations

Le module d'extensibilité KDNET pour ENA ne prend actuellement pas en charge :

  • types d'instances x86_64 non métalliques de 8e génération (par exemple,) m8a.xlarge

  • types d'instances x86_64 non métalliques 48xlarge de 7e génération (par exemple,) m7a.48xlarge

  • types d'instances u7i

Le module ne prend actuellement pas en charge les instances pour lesquelles le démarrage sécurisé est activé. Vous pouvez vérifier le statut Confirm-SecureBootUEFI en exécutant une PowerShell session élevée. Si le résultat est le casTrue, Secure Boot est actif. Notez que le démarrage sécurisé est activé par défaut sur toutes les images fournies par Amazon avec le préfixe « TPM ».

Informations complémentaires

Si vous rencontrez des problèmes pour connecter le débogueur à l'instance cible, vérifiez les points suivants :

  • Toutes les conditions requises répertoriées dans ce guide sont remplies, y compris la version de build Windows Server requise et la présence du module d'extensibilité.

  • Les groupes de sécurité attachés aux deux instances sont correctement configurés pour autoriser le trafic entre eux sur le port de débogage configuré.

  • Les règles du pare-feu Windows sur les instances hôtes ne bloquent pas le trafic réseau entre les deux instances sur le port configuré.

Pour obtenir des instructions supplémentaires, voir Configurer le débogage manuel du noyau du réseau KDNET dans la documentation Microsoft.