Le guide ULTIME pour résoudre les erreurs d’écran bleu (BSOD) sur Windows

1.8K vues
Le guide ULTIME pour résoudre les erreurs d’écran bleu (BSOD) sur Windows

Par Le Crabe

Le

Mis à jour le

1.8K vues

11 commentaires

Lorsqu’une erreur fatale se produit sur votre système, Windows affiche le célèbre écran bleu de la mort (ou BSoD pour Blue Screen of Death). Cette erreur fatale survient lorsque le système d’exploitation atteint un état critique où il ne peut plus fonctionner correctement. Vous pouvez en rencontrer une lors de l’installation d’une mise à jour, d’un programme, d’un matériel, ou bien soudainement, sans qu’aucune action précise ne semble l’avoir déclenché. Windows agit toujours ainsi : il s’arrête brutalement pour se protéger d’éventuelles pertes de données, affiche son écran bleu puis redémarre votre ordinateur.

Le Crabe vous a aidé ? Aidez-le en retour en désactivant votre bloqueur de publicité !

(merci pour le coup de pince)

Le saviez-vous ?

D’après les rapports d’erreurs qui ont été envoyés à Microsoft jusqu’en avril 2014, les raisons pour lesquelles Windows crashe se répartissent ainsi :

  • Pilotes de périphériques tiers : 70%
  • Inconnues, à cause d’une corruption grave de la mémoire : 15%
  • Erreurs matérielles : 10%
  • Code de Microsoft : 5%

Source : « Crash Dump Analysis » – MSDN

Parfois exceptionnel, l’écran bleu de la mort qui fait suite à une erreur fatale peut malheureusement s’afficher de façon répétée sur votre machine. Si c’est le cas pour vous actuellement, il vous faudra trouver le pilote responsable de l’erreur fatale et y apporter une solution. Un périphérique, son pilote, ou un programme lié à celui-ci peuvent être la cause d’un écran bleu. Une mise à jour du pilote ou du programme résout dans la plupart des cas les problèmes rencontrés.

Dans ce tutoriel, je vais vous montrer comment analyser un écran bleu afin de trouver le pilote responsable de l’erreur fatale et ainsi pouvoir régler définitivement le problème ! Le but étant de vous permettre d’utiliser de nouveau votre PC en toute quiétude, sans crainte qu’un écran bleu apparaisse de nouveau et vous interrompt dans votre travail 🙂

Préambule : les fichiers d’image mémoire (Memory Dump Files)

Quand le système crashe, Windows affiche donc un écran bleu, lequel est accompagné d’un code d’arrêt. Ce code d’arrêt nous donne une première information sur la nature de l’erreur fatale. Vous pouvez retrouver l’ensemble des codes d’arrêt et leur signification sur la page Bug Check Code Reference du site Microsoft Hardware Dev Center.

Écran bleu de la mort avec le code d’arrêt : MEMORY_MANAGEMENT

Cependant, ce code d’arrêt peut se révéler assez avare en informations. Dans la capture ci-dessus, le code d’arrêt MEMORY_MANAGEMENT indique qu’une erreur grave de gestion de la mémoire est survenue… sans qu’on en sache beaucoup plus (cf. Bug Check 0x1A: MEMORY_MANAGEMENT).

Jusqu’à Windows 7, l’écran bleu affichait les quatre paramètres associés au code d’arrêt (il est possible de retrouver ces quatre paramètres dans l’Observateur d’événements pour Windows 8.1 et 10). Ils permettent d’en savoir un peu plus sur l’erreur fatale. Par exemple, le premier paramètre du code d’arrêt UNMOUNTABLE_BOOT_VOLUME indique le périphérique qui n’a pas réussi à être monté par le système (cf. : Bug Check 0xED: UNMOUNTABLE_BOOT_VOLUME).

Les quatre paramètres du code d’arrêt : UNMOUNTABLE_BOOT_VOLUME – Source : Neosmart

Lorsqu’il est disponible, le nom du pilote qui a planté est également affiché, comme RTKVHD64.sys dans la capture ci-dessous. Ce dernier nous en dit par contre beaucoup plus sur la cause de l’erreur fatale. Une recherche Google nous indique qu’il s’agit du pilote audio Realtek High Definition Audio.

Écran bleu de la mort avec le code d’arrêt : SYSTEM_THREAD_EXCEPTION_NOT HANDLED ; et le pilote responsable : RTKVHD64.sys – Source : Acer Community

Cependant, le nom du module responsable du crash ne s’affiche pas toujours !

J’ai un code d’arrêt qui ne me donne aucune information et le nom du pilote responsable du crash ne s’affiche pas… Comment je vais faire pour trouver l’origine de l’erreur fatale ?!

Il vaut que v…

Attends Le Crabe ! Moi je n’ai pas eu le temps de voir ce qui était marqué sur l’écran bleu ! Comment je fais pour déboguer Windows du coup ?

Doucement camarades ! J’allais justement vous donner LA solution pour trouver la source de tous vos maux 😛

Après le plantage du système et après que l’écran bleu s’affiche, Windows procède à un vidage de la mémoire physique (RAM) de l’ordinateur, en déchargeant son contenu dans un fichier du disque dur : le fichier d’image mémoire (ou Memory Dump File). Vous pouvez d’ailleurs suivre l’état d’avancement du vidage de la mémoire sur l’écran bleu via le pourcentage d’achèvement qui s’incrémente petit à petit (jusqu’à « 100% achevés »). Ce fichier d’image mémoire contient donc une copie de toutes les données présentes dans la mémoire de l’ordinateur avant le plantage. Ces données vont se révéler précieuses afin d’établir un diagnostic complet sur le crash de Windows. En les consultant, nous trouverons à coup sûr le pilote responsable du plantage de Windows !

On trouve deux types de fichiers d’image mémoire : pour le mode noyau (Kernel-Mode Dump Files) et pour le mode utilisateur (User-Mode Dump Files).[1]

[1] Mode utilisateur et mode noyau ^

Sur un appareil qui exécute Windows, le processeur a deux modes différents : un mode utilisateur et un mode noyau. Le processeur bascule entre les deux modes en fonction du type de code qui est en cours d’exécution sur le processeur. Les applications s’exécutent en mode utilisateur ; les composants du système d’exploitation en mode noyau. La plupart des pilotes s’exécutent en mode noyau, mais certains peuvent fonctionner en mode utilisateur.

Source : « User mode and kernel mode » – Microsoft Hardware Dev Center.

Pour régler notre souci d’écran bleu, nous allons analyser les fichiers d’image mémoire du mode noyau. Ce sont ces fichiers qui contiennent les informations permettant de déboguer le système ; les fichiers du mode utilisateur permettent eux de déboguer uniquement les programmes installés par les utilisateurs.

Windows peut générer cinq types d’image mémoire pour le mode noyau, la différence se situant autour de la taille du fichier généré :

  1. Image mémoire complète : le fichier d’image mémoire le plus volumineux. Ce fichier inclut toute la mémoire physique qui était utilisée par Windows au moment du crash. Il requiert un fichier d’échange[2] sur le lecteur de démarrage qui est au moins aussi volumineux que la mémoire principale du système ; la taille du fichier d’échange devra être égale à toute la RAM + 1 Mo. Si vous avez 16 Go de RAM sur votre ordinateur, la taille du fichier d’échange devra donc être de 16,001 Go pour pouvoir accueillir les données de la mémoire physique !
  2. Image mémoire du noyau : contient uniquement la mémoire utilisée par le noyau au moment du crash. Ce fichier est considérablement plus petit que le fichier d’image mémoire complète (1). Sa taille est à peu près égale au tiers de la mémoire physique installée sur le système (si vous avez 16 Go de RAM, la taille du fichier sera à peu près de 5,3 Go). Ce fichier d’image n’inclut pas la mémoire non allouée, ni la mémoire allouée aux applications en mode utilisateur. Il ne contient que la mémoire allouée au noyau Windows, à la couche d’abstraction matérielle (HAL), et également la mémoire allouée aux pilotes en mode noyau et aux programmes en mode noyau. C’est le fichier d’image mémoire le plus utile. Plus petit et plus rapide à exécuter que le fichier d’image mémoire complète (1), il ne contient pas les données de la mémoire physique qui ne sont généralement pas impliquées dans le crash.
  3. Image mémoire partielle (256 Ko) : le fichier d’image mémoire du « mode noyau » le plus petit, utile sur des systèmes à l’espace disque très limité. Dans la mesure où il contient des informations limitées (message d’arrêt, liste des pilotes chargés…), l’analyse de ce fichier ne permettra peut-être pas de découvrir la source des erreurs rencontrées au moment du blocage de l’ordinateur.
  4. Vidage mémoire automatique : contient les mêmes informations que le fichier d’image mémoire du noyau (2). La différence entre les deux ne réside pas dans le fichier d’image lui-même, mais dans la manière dont Windows définit la taille du fichier d’échange du système. Si la taille du fichier d’échange du système est définie sur Gestion automatique du fichier d’échange pour les lecteurs, et que le paramètre de l’image mémoire « mode noyau » est définie sur Vidage mémoire automatique, Windows définit automatiquement une taille pour le fichier d’échange, suffisamment grande pour capturer l’image mémoire du noyau.
  5. Vidage mémoire actif : similaire à l’image mémoire complète (1), elle ne contient cependant pas la mémoire affectée aux machines virtuelles Hyper-V, inutile pour le débogage de la machine hôte.

[2] Fichier d’échange de Windows ^

Lorsque Windows vient à manquer de mémoire vive (RAM), il crée un fichier sur le lecteur système (PageFile.sys) pour stocker des informations temporaires : c’est le fichier d’échange. Windows dispose alors d’une « mémoire virtuelle« , qui correspond à la somme entre la taille de la mémoire vive (RAM) et celle du fichier d’échange.

Source : « User mode and kernel mode » – Microsoft Hardware Dev Center.

Vous pouvez configurer le type d’image mémoire que Windows crée en cas de plantage dans Paramètres système avancés (%SystemRoot%\System32\SystemPropertiesAdvanced.exe) > Démarrage et récupération. Il est recommandé de laisser le type d’image mémoire par défaut : Vidage mémoire automatique.

Seul un et seul fichier d’image mémoire peut être créé lors d’un crash du système. Si une deuxième erreur fatale se produit et qu’une image mémoire du noyau (ou une image mémoire complète) est créée, celle-ci remplacera la précédente (si l’option Remplacer tous les fichiers existants paramètre est cochée). Le fichier d’image mémoire est écrit par défaut dans %SystemRoot%\Memory.dmp.

À noter, Windows crée un nouveau fichier d’image mémoire partielle chaque fois que le système s’arrête de manière inattendue (quand l’écran bleu s’affiche), même si vous avez sélectionné Image mémoire du noyau ou Image mémoire complète dans les paramètres. Si une deuxième erreur fatale se produit, une deuxième image mémoire partielle est créée et la précédente sera conservée. Chaque nouveau fichier d’image mémoire partielle aura un nom différent, avec la date du crash encodée dans le nom du fichier. Par exemple, 050917-10843-01.dmp est le fichier d’image mémoire généré le 9 mai 2017. Tous les fichiers d’image mémoire partielle sont conservés dans le dossier %SystemRoot%\Minidump.

Maintenant que vous connaissez le fonctionnement des images mémoire, allons consulter les informations de débogage qu’elles contiennent afin de trouver le module responsable de ces écrans bleus à répétition !

Étape 1 : trouver le pilote responsable de l’écran bleu

Pour commencer, nous allons analyser les fichiers d’image mémoire partielle. Même si ces derniers contiennent peu d’informations, il n’est pas rare d’y trouver le pilote responsable de l’erreur fatale !

Via les fichiers d’image mémoire partielle (Small Memory Dump)

L’utilitaire de contrôle d’image mémoire (Dumpchk.exe) est un utilitaire de ligne de commande proposé par Microsoft pour vérifier et lire les fichiers d’image mémoire. Contrairement aux outils disponibles, Dumpchk.exe ne nécessite pas l’accès aux symboles de débogage. Bien qu’efficace, cet outil n’est pas très ergonomique. C’est pourquoi nous allons utiliser le programme BlueScreenView : il scanne tous les fichiers d’image mémoire créés sur votre ordinateur suite à un crash de Windows, et affiche clairement les informations qu’ils contiennent.

Télécharger BlueScreenView

Après l’avoir téléchargé, installez puis exécutez le programme BlueScreenView.

Dans le panneau supérieur, tous les fichiers d’image mémoire trouvés dans le dossier %SystemRoot%\Minidump et le fichier d’image  %SystemRoot%\Memory.dmdp sont affichés. Dans la capture ci-dessus, six images mémoire partielle sont affichées. Cela signifie que cet ordinateur a rencontré six fois l’écran bleu de la mort ! Pour chaque crash, BlueScreenView affiche le nom du fichier d’image mémoire partielle, la date et l’heure du crash, le code d’arrêt (affiché sur l’écran bleu), les 4 paramètres du code d’arrêt, et les détails sur le pilote qui a probablement provoqué le crash (nom du fichier, nom du produit, description du fichier et version fichier).

Dans le panneau inférieur, par défaut, BlueScreenView affiche tous les pilotes qui étaient chargés lors du crash (que vous avez sélectionné dans le panneau supérieur). Les pilotes dont l’adresse mémoire a été trouvée dans la pile du crash sont surlignés en rose, ce qui permet de localiser facilement les pilotes qui sont susceptibles d’être les responsables du crash.

Votre mission est simple : repérez le pilote responsable de l’écran bleu dans la colonne Caused By Driver !

Dans la capture ci-dessous, on voit que le crash du 5 août 2013 a été provoqué par le pilote nvlddmkm.sys qui fait vraisemblablement tourner une carte graphique NVIDIA.

Si vous souhaitez avoir plus de détails sur le pilote détecté (à quel composant, périphérique ou programme il appartient), cliquez droit sur le fichier d’image mémoire et sélectionnez Google Search – Bug Check + Driver pour lancer une recherche sur Internet.

Malheureusement, il arrive souvent que les fichiers d’image partielle ne contiennent pas assez d’informations pour pouvoir identifier le pilote responsable de l’écran bleu. C’est le cas si BlueScreenView affiche ntoskrnl.exe dans la colonne Caused By DriverC’est faux : il s’agit simplement du dernier fichier de la pile qui était chargé avant que l’écran bleu n’apparaisse. Ce n’est PAS le fichier qui a provoqué l’erreur fatale.

Selon ce qu’affiche BlueScreenView dans la colonne Cause By Driver, appliquez ce qui suit :

Via le fichier d’image mémoire complète ou du noyau (Complete Memory Dump/Kernel Memory Dump)

A savoir !

Le fichier d’image mémoire complète ou du noyau qui nous allons analyser correspond au fichier d’image mémoire du dernier écran bleu qui est apparu sur votre ordinateur. Autrement dit, il s’agit de la version plus « complète » du fichier d’image partielle le plus récent affiché dans BlueScreenView (vous pouvez trier les fichiers d’image partielle par date en cliquant sur l’en-tête de la colonne Crash Time).

Pour analyser le fichier d’image mémoire complète ou de noyau, nous devons installer les débogueurs Windows (inclus dans le SDK de Windows). Téléchargez le programme d’installation du SDK (Software Development Kit) en fonction de votre version de Windows :

Lancez sur le programme d’installation du SDK de Windows. Sur le premier écran, laissez l’emplacement par défaut puis cliquez sur Next.

Parmi toutes les fonctionnalités proposées, n’installez que les outils de débogage. Laissez Debugging Tools for Windows coché et décochez toutes les autres cases, puis cliquez sur Install.

Après l’installation des outils de débogage, vous avez cinq environnements de débogages à votre disposition (cf. Debugging Environments pour plus de détails) dont Microsoft Windows Debugger (WinDbg), un débogueur capable de déboguer en mode utilisateur et en mode noyau. WinDbg fournit un débogage pour le noyau Windows, les pilotes en mode noyau et les services système, ainsi que les applications et les pilotes en mode utilisateur. C’est celui-ci que nous allons utiliser 😉

Astuce !

Afin de pouvoir lire plus facilement les fichiers d’image mémoire (.dmg), vous pouvez les associer avec le programme WinDbg. Pour ce faire, démarrez une invite de commandes ou une session Windows PowerShell en tant qu’administrateur (via le menu Lien Rapide sur Windows 10 et 8.1, touches Windows + X) et entrez les commandes suivantes (à adapter selon votre version de Windows) :

cd 'C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\'
.\windbg.exe -IA

Une fenêtre vous informera que WinDbg est bien associé aux fichiers .DMP et consorts.

Exécutez WinDbg en tant qu’administrateur : ouvrez le menu Démarrer, entrez « windbg », cliquez droit sur WinDbg (X64) (ou WinDbg (x86) si vous utilisez une version 32 bits de Windows) puis sélectionnez Exécuter en tant qu’administrateur.

La fenêtre principe du débogueur WinDbg s’ouvre. Sexy, non ? 😀

Spécifiez l’emplacement des symboles de débogage via File > Symbol File Path. Les fichiers de symboles contiennent une variété de données qui sont très utiles pour le débogage.

Entrez l’emplacement suivant puis cliquez sur OK :

srv*c:\SymbolsSrvCache*https://msdl.microsoft.com/download/symbols

Sauvegardez l’espace de travail via File > Save Workspace. Cela va nous éviter d’avoir à redéfinir l’emplacement des symboles de débogage à chaque session.

Ouvrez le fichier d’image mémoire via File > Open Crash Dump.

Rendez-vous dans le dossier C:\Windows et sélectionnez le fichier MEMORY.DMP.

Attendez que WinDbg charge les symboles nécessaires au débogage du fichier d’image mémoire. Le texte Debuggee not connected est affiché en bas de la fenêtre ; vous devez attendre que l’invite de commande kd> s’affiche.

Une fois que vous avez la main, entrez la commande !analyse -v pour lancer l’analyse du fichier d’image mémoire.

L’analyse est terminée lorsque le texte *BUSY* ne s’affiche plus en bas de la fenêtre et que vous avez de nouveau accès à l’invite de commande kd>.

Faites glisser la barre de défilement vers le haut jusqu’à la ligne IMAGE_NAME. Nous avons ici des informations croustillantes ! 😛

IMAGE_NAME: cpuz138_x64
MODULE_NAME: cpuz138_x64
FAULTING MODULE: fffff8004dc30000 cpuz138_x64
PROCESS_NAME: Speccy64.exe

L’interprétation des données est ensuite assez simple. Les noms des fichiers mis en cause permettent de cibler le périphérique, le pilote ou le programme responsable de l’écran bleu ! Si vous ne savez pas à quoi il fait référence, il vous suffira de lancer une recherche sur Internet pour obtenir plus d’informations sur ledit pilote. Dans la capture ci-dessus par exemple, c’est le pilote appartenant au programme CPU-Z qui a planté (cpuz138_x64), programme qui a été lancé par le logiciel Speccy (Speccy64.exe).

Suivant ce que vous avez trouvé dans le fichier d’image système, appliquez ce qui suit :

Étape 2 : solutions aux erreurs d’écran bleu

Solutions spécifiques à un pilote fautif

Si vous avez suivi les instructions de l’étape 1, vous avez trouvé le pilote responsable de l’écran bleu. Suivez maintenant les instructions suivantes pour corriger définitivement le problème et mettre fin à votre problème d’écran bleu :

  • Si le pilote est un pilote de programme (ex. : cpuz138_x64.sys pour le programme CPU-Z) :
    • Installez une version plus récente du programme (rendez-vous sur le site Web de l’éditeur ou utilisez l’outil de mise à jour automatique intégré) ;
    • Sinon, désinstallez temporairement le programme. 
  • Si le pilote est un pilote de périphérique (ex. : nvlddmkm.sys pour une carte graphique NVIDIA) :
    • Mettez à jour le pilote du périphérique depuis le site Web du fabricant ;
    • Sinon, restaurez le pilote précédent du périphérique : Gestionnaire de périphériques (devmgmt.msc) > Clic droit sur le périphérique > Propriétés > Onglet Pilote > Restaurer le pilote
    • Sinon, désinstallez le périphérique et supprimez son pilote : Gestionnaire de périphériques (devmgmt.msc) > Clic droit sur le périphérique > Désinstaller l’appareil > Supprimer le pilote pour ce périphérique + Désinstaller

Solutions d’ordre général

Si vous n’avez pas réussi à trouver le pilote responsable de l’écran bleu, vous pouvez suivre ces quelques suggestions :

  • Si vous avez récemment ajouté un périphérique à votre ordinateur, vérifiez auprès du fabricant si des correctifs sont disponibles et installez-les si c’est le cas.
  • Débranchez tout périphérique externe superflu (imprimante, webcam…) et vérifiez si cela permet de résoudre le problème d’écran bleu.
  • Si de nouveaux pilotes de périphériques ou des services système ont été installés récemment, essayez de les supprimer ou de restaurer les anciennes versions des pilotes.
  • Réfléchissez à ce qui a changé récemment dans Windows (installation d’un programme, nouvelle mise à jour…), ce pourrait être ce changement qui provoque l’erreur fatale. Si vous suspectez un programme, désinstallez-le.
  • Ouvrez le Gestionnaire de périphériques pour voir si des périphériques sont marqués avec le point d’exclamation (!). Examinez le journal des événements dans les propriétés du pilote pour avoir plus de détails sur l’erreur rencontrée. Essayez également de mettre à jour ce pilote.
  • Consultez le journal Système dans l’Observateur d’événements (eventvwr.exe) et regardez si des messages d’erreur pourraient aider à identifier le périphérique ou le pilote qui provoque l’écran bleu. Vous pouvez filtrer le journal Système pour n’afficher que les événements de niveau Critique et Erreur.
  • Exécutez l’outil Diagnostic de mémoire Windows (mdsched.exe) pour tester la mémoire vive (RAM). Une fois le test exécuté, utilisez l’Observateur d’événements pour afficher les résultats (dans le journal Système). Recherchez l’entrée MemoryDiagnostics-Results pour afficher les résultats.
  • Vérifiez si le nouveau matériel que vous avez installé est compatible avec la version de Windows installée. Vous pouvez par exemple consulter la page Spécifications et configuration requise pour Windows 10.
  • Installez un programme antivirus (ex. : Avast, Avira, Malwarebytes…) et lancez un scan antivirus. Les virus peuvent infecter tous types de disques formatés pour Windows et la corruption des disques qui en résulte peut générer des erreurs fatales. Assurez-vous que le programme antivirus vérifie si le Master Boot Record est infecté.
  • Utilisez l’outil Vérification du disque (chkdsk.exe) pour vérifier que le système de fichiers n’est pas endommagé : chkdsk /f /r.
  • Utilisez l’outil Vérificateur des fichiers système (sfc.exe) pour réparer les fichiers système manquants ou endommagés : sfc /scannow.
  • Vérifiez qu’il y a suffisamment d’espace libre sur le lecteur système. Le système d’exploitation et certaines applications nécessitent suffisamment d’espace libre pour créer les fichiers d’échange, et pour d’autres fonctions aussi. Un espace libre de 10% à 15% est recommandé.
  • Installez les dernières mises à jour de Windows via Windows Update.
  • Vérifiez si le fabricant de votre ordinateur ou de votre carte mère propose une mise à jour pour le BIOS ou le firmware UEFI de votre système. Chargez également les paramètres par défaut de votre BIOS/firmware UEFI.
  • Pour les PC de bureau, assurez-vous que toutes les cartes d’extension sont correctement installées et que tous les câbles sont complètement connectés.

Ces suggestions sont valables pour la majeure partie des erreurs d’écran bleu. Voici quelques exemples de code d’arrêt que vous pouvez rencontrer sur Windows :

0x000000D1: DRIVER_IRQL_NOT_OR_EQUAL
0x0000000A: IRQL_NOT_LESS_OR_EQUAL
0x00000050: PAGE_FAULT_IN_NONPAGED_AREA
0x000000C2: BAD_POOL_CALLER
0X000000ED: UNMOUNTABLE_BOOT_VOLUME
0x0000001E: KMODE_EXCEPTION_NOT_HANDLED
0x00000024: NTFS_FILE_SYSTEM