Analyser un écran bleu (BSOD)

Sommaire

 

Introduction

On a tous été confronté un jour à ce fameux écran bleu, appelé aussi écran bleu de la mort ou BSOD (Blue Screen Of the Dead), synonyme en général de gros problèmes et de longues heures de galère en perspective que ce soit chez soi ou en production. Annonciateur de problème, peu d’information nous semble permettre de l’identifier rapidement. Mais une solution existe cependant et que peu connaisse. Lorsque le système est victime d’un écran bleu, Windows peut générer un fichier dump qui peut être analysé et ainsi obtenir des éléments concrets afin d’éviter qu’il se répète où du moins d’en connaitre l’origine. L’objectif de cet article sera de montrer comment générer un dump, comment le traiter et l’analyser afin de trouver une solution.

 

L’origine du mal

Tout mal à son origine et les écrans bleus ne dérogent pas à la règle. Il y a cinq origines principales :

  • Les applicatifs: sans doute la première cause d’instabilité dans le monde Microsoft.  Il faut éviter d’installer des applications inutiles, en particulier sur un serveur et surtout veiller à disposer des derniers patches. Chaque nouvelle installation génère des modifications de la configuration de base de votre système et constitue également une brique supplémentaire au mur d’instabilité.
  • Les pilotes matériels: également générateur de problèmes. Un bug sur un pilote ne pardonne pas. Il faut donc veiller à toujours disposer des derniers pilotes !
  • Le système d’exploitation : de nombreux patches sortent régulièrement pour régler des problèmes divers. Une mise à jour régulière du système est impérative pour assurer la sécurité et la stabilité du système.
  • Un dysfonctionnement matériel: l’inévitable problème matériel qui nécessite le changement d’une pièce.
  • Les virus: par essence, ils altèrent le fonctionnement normal du système et peuvent, selon les cas,  participer activement à sa corruption.

Ces cinq éléments peuvent engendrer donc une erreur irrécupérable par le noyau qui, ne pouvant la traiter, se protège et donc arrête l’ensemble du système.

 

Pré-requis à l’analyse

Afin que l’image mémoire puisse être généré le fichier de pagination doit être impérativement sur C: (fichier pagefile.sys).

Pour paramétrer le fichier d’image mémoire selon vos convenances, nous devons nous rendre dans l’onglet « avancés » depuis « propriétés système » accessible depuis un clic droit sur l’icône poste de travail et en sélectionnant « propriétés ». A partir de la section « Démarrage et récupération » cliquer sur « Paramètres ». Une fois la fenêtre « Démarrage et récupération » ouverte, nous avons à la section « Défaillance système » qui nous permet désormais de configurer la génération du fichier d’image mémoire.

{gallery}10_BSOD_analyze/1{/gallery}

 

 

 

 

 

 

 

 

 

Si « Redémarrer automatiquement » est coché alors le système redémarrera automatiquement après la génération du fichier image.

Concernant les  types  images mémoires disponibles (une synthèse du kb Microsoft disponible ici) :

  • Image mémoire partielle : ce type d’image liste le minimum d’information pouvant être utile à l’identification du problème. En général, il est utilisé en cas d’espace limité sur le disque. Chaque fichier généré d’approximativement 2 Mo est conservé par défaut dans le répertoire %systemroot%\minidump avec un nom du type « mini-072310-01.dmp » (pour un BSOD du 23 Juillet 2010).
  • Image mémoire du noyau : Le plus utile dans la majorité des cas. Il récupère uniquement la mémoire correspondante au mode noyau. A chaque nouveau BSOD, le fichier « memory.dmp » stocké par défaut  dans %systemroot% est écrasé.  La capacité disque nécessaire sur le disque de démarrage est égale au tiers de la mémoire vive présente.
  • Image mémoire complète : le système copie l’intégralité de la mémoire RAM dans le fichier DMP qui comprend la mémoire allouée et non-allouée au niveau utilisateur et au noyau. A chaque nouveau BSOD, le fichier « memory.dmp » stocké par défaut  dans %systemroot% est écrasé. L’image mémoire complète n’est pas prise en charge sur des systèmes 32bits avec plus de 2Go de mémoire. La capacité disque disponible nécessaire sur le disque de démarrage est égale à la quantité de mémoire vive présente.

 

Installer et configurer l’outil de débogage

L’outil de débogage est désormais disponible en tant que composant indépendant depuis le Windows Software Development Kit (Windows SDK) que vous pouvez télécharger ici.

Il faudra sélectionner l’option « Debugging Tools » depuis « Common Utilities » pour la version x86. Une fois installée, l’outil de débogage est disponible depuis « tous les programmes » dans le menu « Démarrer ».

Pour obtenir les trois versions (x86, x64 et Itanium), il faudra sélectionner l’option « Debugging Tools » depuis « Redistributable Packages ». Les trois paquets d’installation seront disponibles depuis « C:\Program Files\Microsoft SDKs\Windows\v7.1\Redist\Debugging Tools for Windows » sous forme de paquet msi. {gallery}10_BSOD_analyze/2{/gallery}

 

 

 

 

 

 

 

Générer un dump

Maintenant que nous disposons de l’outil, il nous faut bien entendu un fichier image afin de pouvoir le traiter. Si vous avez la chance de ne pas en disposer d’un, il vous sera possible d’en créer un sur demande dans le cadre de cet article ou pour amuser la galerie. Il est en effet possible de générer un fichier image en générant un écran bleu avec une combinaison de touche et en créant au préalable une clé de registre spécifique. Je vous invite à lire l’article suivant Générer un écran bleu (BSOD) sur demande.

 

 

Traiter et analyser le dump

Nous allons désormais exécuter « Windbg » depuis « Démarrer » | « Tous les programmes » | « Debugging Tools for Windows ([version]) ». Il va être nécessaire de le configurer et en particulier pour obtenir la liste des symboles. Sans trop rentrer dans les détails, lorsqu’un programme est compilé, le compilateur traduit certaines informations sous forme de symboles et nous avons besoin de les traduire. Cela se fait de façon automatique en entrant un lien Microsoft depuis « File » | « Symbols File Path… » et en entrant « SRV*c:\symbols*http://msdl.microsoft.com/download/symbols » (c:\symbols correspond au répertoire local qui stockera les symboles). Vous pouvez également les télécharger ici.

{gallery}10_BSOD_analyze/3{/gallery}

 

 

 

 

 

 

 

Nous allons enfin pouvoir ouvrir le fichier image depuis « File » | « Open Crash Dump… ». Pour mémoire, le fichier est situé par défaut dans %systemroot% et avec pour nom « MEMORY.DMP »  si vous avez opté pour une image mémoire du noyau. Il est possible que vous obteniez quelques messages d’erreur du type « *** ERROR: Module load completed but symbols could not be loaded for… » lors de l’ouverture du fichier mémoire. Cela ne pose pas de problème outre mesure et signifie simplement que les symboles ne sont pas disponibles pour un pilote par exemple (Microsoft ne dispose pas des symboles pour tous les pilotes tiers). {gallery}10_BSOD_analyze/4{/gallery}

 

 

 

 

 

 

Le fichier ouvert, nous lançons la commande « !analyze –v ». La première information qui se porte à notre attention est « IMAGE_NAME », c’est en général la première information à prendre en compte. Dans le cas présence, le problème semble provenir de « hpqilo2 » et plus précisément du fichier « hpqilo2.sys ». En général, les noms sont assez évocateurs pour savoir s’il se réfère à un pilote d’une carte réseau ou une carte RAID par exemple ou tout simplement à un composant système. Il reste également la possibilité de rechercher la correspondance du fichier depuis votre moteur de recherche préféré. Dans le cas présent, c’est la carte HP ILO qui semble avoir des soucis. Vous pouvez également trouver des informations complémentaires avec « BUGCHECK_STR » qui vous permettra d’en savoir un peu plus sur l’origine du problème comme pour confirmer que dans le cas ci-dessous, il s’agit bien d’un problème de pilote (ici vous trouverez la liste des bugcheck). En général, vous avez déjà quelques éléments de recherche pour identifier l’origine de la panne. Dans l’analyse ci-dessous, le problème été due à une défaillance matériel du ILO de la carte mère HP. {gallery}10_BSOD_analyze/5{/gallery}

 

 

 

 

 

 

 

Conclusion

Windbg est un outil puissant que nous ne voyons ici que de façon superficielle cependant cela vous permettra rapidement de connaître dans une grande majorité des cas l’origine de votre soucis et de prendre en charge votre problème.

Ici vous trouverez les principales commandes de Windbg si vous désirez approfondir son utilisation.

Générer un écran bleu (BSOD) sur demande

Tout ceux qui disposent d’un ordinateur avec Windows comme système d’exploitation ont fait connaissance au moins une fois dans leur vie avec « l’écran bleu ». Il est appelé aussi BSOD pour Blue Screen Of the Death ce qui signifie en français l’écran bleu de la mort.

Continuer la lecture de « Générer un écran bleu (BSOD) sur demande »

Désactiver un complément sous Outlook 2007

Lors de la désinstallation de certains produits comme Symantec Antivirus (le fichier vpmsece4.dll est manquant), les compléments Outlook ne sont pas désactivés ce qui produit un message d’erreur à chaque ouverture d’Outlook. Pour corriger le problème il faudra manuellement désactiver le complément ou les compléments en question.

Ouvrir Outlook et se rendre dans le « Centre de gestion de la confidentialité… » depuis « Outils ».{gallery}5_addinoutlook/1{/gallery}

 

 

 

 

 

 

 

 

 

Se placer sur « Compléments ». Choisir que type de compléments depuis « Gérer » et cliquer sur « Atteindre » pour afficher la liste des compléments actifs. Il ne reste plus qu’a décocher le complément en cause.{gallery}5_addinoutlook/2{/gallery}