                 Guide pratique du logiciel Linux Crash

  Adaptation franaise du Linux Crash HOWTO

  Norman Patten

           <nepatten CHEZ us POINT ibm POINT com>
        

   Adaptation franaise: Simon Depiets

   Relecture de la version franaise: Karine Volpi

   Prparation de la publication de la v.f.: Jean-Philippe Gurard

   1.0.fr.1.0

   2004-03-21

   +----------------------------------------------------------------+
   | Historique des versions                                        |
   |----------------------------------------------------------------|
   | Version 1.0.fr.1.0        | 2004-03-21       | SD,KV,JPG       |
   |----------------------------------------------------------------|
   | Premire adaptation franaise                                  |
   |----------------------------------------------------------------|
   | Version 1.0               | 2002-01-30       | NM              |
   |----------------------------------------------------------------|
   | Version initiale -- Initial release.                           |
   +----------------------------------------------------------------+

   Rsum

   Ce document dcrit l'installation et l'utilisation du paquet LKCD
   (Linux Kernel Crash Dump). Ce paquet permet la rcupration d'une
   copie de la mmoire suite  un plantage du noyau.

   -------------------------------------------------------------------

   Table des matires

   1. Introduction

                1.1. Droits d'utilisation

   2. Comment fonctionne LKCD

                2.1. Ce dont vous aurez besoin

   3. L'installation de LKCD

                3.1. Installer depuis le code source

                3.2. Compiler et installer les outils LKCD

                3.3. Qu'est-ce qui est install

                3.4. Installer les outils LKCD  partir du paquet RPM

                3.5. Appliquer le correctif au noyau

                3.6. Compiler et installer le noyau

   4. Installer, essayer et lancer crash

                4.1. Installer crash dump

                4.2. Essayer crash

                4.3. Lancez crash

1. Introduction

   Le projet LKCD^[1] est un ensemble de correctifs du noyau Linux et
   d'outils permettant de sauvegarder une copie de la mmoire du
   noyau lorsque celui-ci panique. L'image mmoire du noyau permet
   une analyse aprs coup de la cause de sa panique. Ceci grce aux
   outils inclus dans le paquet. La plupart des systmes Unix
   commerciaux sont vendus avec des outils semblables. Sur Linux,
   cependant, ce paquet est assez nouveau et doit tre ajout
   manuellement. L'utilitaire LKCD n'est pas destin  donner des
   informations utiles dans le cas d'une panique cause par un
   problme matriel ou lors d'une violation de la segmentation
   mmoire. Le paquet LKCD complet peut tre tlcharg sur
   http://lkcd.sourceforge.net/ [http://lkcd.sourceforge.net/].

  1.1. Droits d'utilisation

   Copyright  2002 Norman Patten.

   Copyright  2004 Simon Depiets, Karine Volpi et Jean-Philippe
   Gurard pour l'adaptation franaise.

   Vous avez la permission de copier, de distribuer et de modifier ce
   document selon les termes de la licence de documentation libre GNU
   (GFDL), dans sa version 1.1 ou dans une version ultrieure, telle
   que publie par la Free Software Foundation ; sans section
   invariante, ni texte de premire de couverture, ni texte de
   quatrime de couverture. Une copie de cette licence est disponible
   sur http://www.gnu.org/copyleft/fdl.html
   [http://www.gnu.org/copyleft/fdl.html].

   Permission is granted to copy, distribute and/or modify this
   document under the terms of the GNU Free Documentation License,
   Version 1.1 or any later version published by the Free Software
   Foundation; with no Invariant Sections, with no Front-Cover Texts,
   and with no Back-Cover Texts. A copy of the license is available
   at http://www.gnu.org/copyleft/fdl.html
   [http://www.gnu.org/copyleft/fdl.html].

   Linux est une marque enregistre de Linus Torvalds. LKCD est
   distribu sous copyright par Silicon Graphics Inc.

   Linux is a registered trademark of Linus Torvalds . LKCD is
   distributed under the copyright of Silicon Graphics Inc.

   Envoyez vos commentaires et corrections en anglais  <nepatten
   CHEZ us POINT ibm POINT com>.

   Send feedback to <nepatten AT us DOT ibm DOT com>.

   N'hsitez pas  faire parvenir tout commentaire relatif  la
   version franaise de ce document  <commentaires CHEZ traduc POINT
   org> en prcisant le titre et la version de ce document.

2.  Comment fonctionne LKCD

   Quand un noyau rencontre certaines erreurs, il appelle la fonction
   panic qui est produite par une erreur irrversible. Lors d'une
   telle situation, LKCD ralisera une copie de la mmoire du noyau
   vers une zone pr-dsigne. La zone est par dfaut la partition
   d'change principale (primary swap). Le noyau n'est pas
   compltement fonctionnel  cette tape, mais il y dispose de
   capacits suffisantes pour recopier la mmoire sur le disque.
   Lorsque la copie est termine, le systme redmarre.

   Lors du redmarrage du systme, si une nouvelle copie de la
   mmoire est trouve sur la partition d'change principale, elle
   est copie par dfaut vers le rpertoire /var/log/dump. Une fois
   l'image recopie, le dmarrage se poursuit normalement et une
   analyse mdico-lgale pourra tre effectue plus tard.

  2.1. Ce dont vous aurez besoin

   Le fichier lkcd-noyauxxx.diff qui est un correctif  appliquer au
   noyau. La version du noyau  laquelle s'applique ce correctif
   change rgulirement.

   lkcdutils-xx.src.rpm -- ce sont les scripts et les sources des
   outils dont vous aurez besoin pour installer LKCD et lire la copie
   mmoire. Au moment o j'cris, il existe un paquet rpm binaire
   destin aux processeurs i386. Il est disponible sur
   http://lkcd.sourceforge.net/ [http://lkcd.sourceforge.net/].
   Cependant, vous aurez quand mme besoin des correctifs  appliquer
   aux scripts de dmarrage. Vous trouverez ces correctifs dans le
   paquet rpm des sources.

3. L'installation de LKCD

  3.1. Installer depuis le code source

   Tlchargez lkcdutils-xxx.src.rpm et installez le en utilisant la
   commande :

 rpm -i kcdutils-xxx.src.rpm

   Cela placera un fichier appel lkcdutils-xxx.tar.gz dans le
   rpertoire /usr/src/redhat/SOURCES. Ce fichier est une archive au
   format tar compresse de l'arborescence des sources de LKCD.

   Dcompressez les sources dans le rpertoire de votre choix, comme
   par exemple /usr/src en utilisant la commande :

 tar -zxvf kcdutils-xxx.src.rpm

   Cela crera un rpertoire appel kcdutils-xxx contenant les
   sources des outils LKCD.

  3.2.  Compiler et installer les outils LKCD

   LKCD utilise les fichiers make et le compilateur gcc standards.
   Pour compiler l'ensemble LKCD, rendez-vous au rpertoire des
   sources de LKCD et lancez ./configure pour fabriquer les fichiers
   de configuration. L'tape suivante est de lancer make pour
   compiler les outils et finalement make install pour installer les
   outils et les pages de manuels.

  3.3.  Qu'est-ce qui est install

 /etc/sysconfig/dump            # Configuration de dump (recopie mmoire)
 /sbin/lcrash                   # L'outil  crash  (analyse
                                #  mdico-lgale)
 /sbin/lkcd                     # Script de paramtrage du systme
 /sbin/lkcd_config              # Outil de configuration de  dump 
 /sbin/lkcd_ksyms               # Outil de reconstruction des symboles du
                                #  noyau
 /usr/include/sial_api.h        # Fichier d'en-ttes C des fonctions
                                #  utilisateurs SIAL
 /usr/lib/libsial.a             # Bibliothque SIAL (Langage Simple
                                #  d'Accs aux Images)
 /usr/man/man1/lcrash.1         # Page de manuel de  lcrash 
 /usr/man/man1/lkcd_config.1    # Page de manuel de  lkcd_config 
 /usr/man/man1/lkcd_ksyms.1     # Page de manuel de  lkcd_ksyms 
 /usr/share/sial/lcrash/ps.sial # Commande ps ralise avec SIAL

  3.4.  Installer les outils LKCD  partir du paquet RPM

   Vous pouvez installer les utilitaires pr-compils  partir du
   paquet rpm en utilisant la commande :

 rpm -i kcdutils-xxx.rpm

   Vous aurez toujours  appliquer le correctif au noyau et 
   installer les scripts de dmarrage. Cependant vous n'aurez pas 
   effectuer l'tape de compilation des outils.

  3.5.  Appliquer le correctif au noyau

   L'tape suivante consiste  appliquer le correctif et  recompiler
   le noyau. Vous devrez appliquer au code source du noyau le
   correctif lkcd-xxx.diff que vous aurez tlcharg depuis
   http://lkcd.sourceforge.net/ [http://lkcd.sourceforge.net/].
   Copiez le correctif dans le rpertoire des sources noyau et lancez
   la commande :

 patch -p0 < lkcd-noyauxxx.diff

   Assurez-vous que le correctif que vous utilisez est bien pour
   votre version du noyau. Vous devrez ensuite configurer le noyau
   pour activer l'option  Kernel crash dumps . Cette option est
   dsactive par dfaut. Si vous utilisez make menuconfig ou make
   xconfig, vous trouverez cette option dans la section  Kernel
   hacking . N'oubliez pas d'activer les fonctions du noyau dont
   votre systme a besoin. Consultez le guide pratique du noyau Linux
   [http://www.traduc.org/docs/howto/lecture/Kernel-HOWTO.html] pour
   plus d'informations.

  3.6.  Compiler et installer le noyau

   Il vous faut maintenant compiler et installer le noyau incluant le
   support LKCD. Dans le rpertoire des sources du noyau, lancez dans
   l'ordre les commandes suivantes :

 make depend
 make install
 make modules
 make modules_install

   Cela compilera et installera le nouveau noyau. Vous devrez aussi
   copier le fichier Kerntypes inclus dans les sources du noyau dans
   le rpertoire /boot. Il sera peut-tre galement ncessaire
   d'diter le fichier lilo.conf pour qu'il pointe vers votre nouveau
   noyau. Consultez le guide pratique du noyau Linux
   [http://www.traduc.org/docs/howto/lecture/Kernel-HOWTO.html] pour
   plus d'informations sur la compilation et l'installation d'un
   nouveau noyau.

4.  Installer, essayer et lancer crash

  4.1.  Installer crash dump

   Afin de pouvoir rcuprer l'image mmoire qui a t crite sur la
   partition d'change, il est ncessaire de sauvegarder cette image
   mmoire avant que la partition d'change n'aie t monte par le
   systme.  cette fin, le fichier de dmarrage sysinit doit tre
   modifi. Le paquet des sources de LKCD inclut un rpertoire
   scripts qui contient des correctifs pour plusieurs des scripts de
   dmarrage sysinit. Ces correctifs ajoutent les commandes lkcd
   config et lkcd save pour activer la recopie mmoire en cas de
   panne et pour sauvegarder au dmarrage une ventuelle copie
   mmoire prexistante.

  4.2.  Essayer crash

   Pour forcer une panique afin d'essayer votre nouvelle installation
   de crash, compilez le code ci-dessous avec la commande :  cc -c
   -O2 -isystem /lib/modules/`uname -r`/build/include -Wall
   panic.c . Aprs avoir compil le module panic.o, il vous suffira
   d'utiliser la commande insmod panic.o pour dclencher une panique
   du noyau.

 ### panic.c ###########################
 #define __KERNEL__
 #define MODULE

 #include <linux/module.h>

 int init_module (void)
 {
     panic(" panic a ete appele");
     return 0;
 }
        

  4.3.  Lancez crash

   Afin d'examiner votre sauvegarde de la mmoire du noyau, vous
   devrez lancer lcrash avec quelques paramtres :

 lcrash [ fichier System.map ] [ copie de la mmoire ] [ Kerntypes ]

   Par exemple :

 lcrash /boot/System.map ./dump.1 /boot/Kerntypes

   Le chargement de l'image mmoire prendra une minute avant que vous
   ne vous retrouviez dans l'interprteur de commandes de crash. Vous
   pouvez taper un ? pour obtenir la liste des commandes disponibles.

   --------------

   ^[1] Linux Kernel Crash Dump -- Sauvegarde de la mmoire du noyau
   Linux en cas de plantage.

