1.0.fr.1.0
2004-03-21
Historique des versions | ||
---|---|---|
Version 1.0.fr.1.0 | 2004-03-21 | SD,KV,JPG |
Première adaptation française | ||
Version 1.0 | 2002-01-30 | NM |
Version initiale — Initial release. |
Résumé
Ce document décrit l'installation et l'utilisation du paquet LKCD (Linux Kernel Crash Dump). Ce paquet permet la récupération d'une copie de la mémoire suite à un plantage du noyau.
Table des matières
Le projet LKCD[1] est un ensemble de correctifs du noyau Linux et d'outils permettant de sauvegarder une copie de la mémoire du noyau lorsque celui-ci panique. L'image mémoire du noyau permet une analyse après coup de la cause de sa panique. Ceci grâce aux outils inclus dans le paquet. La plupart des systèmes 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 causée par un problème matériel ou lors d'une violation de la segmentation mémoire. Le paquet LKCD complet peut être téléchargé sur http://lkcd.sourceforge.net/.
Copyright © 2002 Norman Patten.
Copyright © 2004 Simon Depiets, Karine Volpi et Jean-Philippe Guérard pour l'adaptation française.
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 ultérieure, telle que publiée par la Free Software Foundation ; sans section invariante, ni texte de première de couverture, ni texte de quatrième de couverture. Une copie de cette licence est disponible sur 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.
Linux est une marque enregistrée 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'hésitez pas à faire parvenir tout commentaire relatif à la
version française de ce document à
<commentaires CHEZ traduc POINT org>
en précisant le titre et la version de ce document.
Quand un noyau rencontre certaines erreurs, il appelle la
fonction panic
qui est produite par une
erreur irréversible. Lors d'une telle situation,
LKCD réalisera une copie de la
mémoire du noyau vers une zone pré-désignée. La zone est par
défaut la partition d'échange principale (primary
swap). Le noyau n'est pas complètement
fonctionnel à cette étape, mais il y dispose de capacités
suffisantes pour recopier la mémoire sur le disque. Lorsque la
copie est terminée, le système redémarre.
Lors du redémarrage du système, si une nouvelle copie de la
mémoire est trouvée sur la partition d'échange principale, elle
est copiée par défaut vers le répertoire /var/log/dump
. Une fois l'image
recopiée, le démarrage se poursuit normalement et une analyse
médico-légale pourra être effectuée plus tard.
Le fichier
lkcd-
qui est un correctif à appliquer au noyau. La version du noyau
à laquelle s'applique ce correctif change régulièrement.
noyauxxx
.diff
lkcdutils-
— ce sont les scripts et les sources des outils dont
vous aurez besoin pour installer
LKCD et lire la copie mémoire. Au
moment où j'écris, il existe un paquet rpm binaire destiné aux
processeurs i386. Il est disponible sur http://lkcd.sourceforge.net/. Cependant, vous aurez
quand même besoin des correctifs à appliquer aux scripts de
démarrage. Vous trouverez ces correctifs dans le paquet rpm
des sources.
xx
.src.rpm
Téléchargez lkcdutils-xxx.src.rpm
et
installez le en utilisant la commande :
rpm -i kcdutils-xxx
.src.rpm
Cela placera un fichier appelé
lkcdutils-
dans le répertoire xxx
.tar.gz/usr/src/redhat/SOURCES
. Ce fichier
est une archive au format tar compressée de l'arborescence des
sources de LKCD.
Décompressez les sources dans le répertoire de votre choix,
comme par exemple /usr/src
en utilisant la
commande :
tar -zxvf kcdutils-xxx
.src.rpm
Cela créera un répertoire appelé
kcdutils-
contenant les sources des outils
LKCD.
xxx
LKCD utilise les fichiers
make et le compilateur
gcc standards. Pour compiler
l'ensemble LKCD, rendez-vous au
répertoire 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.
/etc/sysconfig/dump # Configuration de dump (recopie mémoire) /sbin/lcrash # L'outil « crash » (analyse # médico-légale) /sbin/lkcd # Script de paramétrage du système /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-têtes C des fonctions # utilisateurs SIAL /usr/lib/libsial.a # Bibliothèque SIAL (Langage Simple # d'Accès 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 réalisée avec SIAL
Vous pouvez installer les utilitaires pré-compilés à 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 démarrage. Cependant vous n'aurez pas à effectuer l'étape de compilation des outils.
L'étape suivante consiste à appliquer le correctif et à
recompiler le noyau. Vous devrez appliquer au code source du
noyau le correctif
lkcd-
que vous aurez téléchargé depuis http://lkcd.sourceforge.net/. Copiez le correctif dans
le répertoire des sources noyau et lancez la commande :
xxx
.diff
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 désactivée par défaut. 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 système a besoin. Consultez le
guide pratique du noyau
Linux pour plus d'informations.
Il vous faut maintenant compiler et installer le noyau incluant le support LKCD. Dans le répertoire 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 répertoire /boot
. Il sera peut-être également
nécessaire d'éditer le fichier lilo.conf
pour qu'il pointe vers votre nouveau noyau. Consultez le guide pratique du noyau
Linux pour plus d'informations sur la compilation et
l'installation d'un nouveau noyau.
Afin de pouvoir récupérer l'image mémoire qui a été écrite sur
la partition d'échange, il est nécessaire de sauvegarder cette
image mémoire avant que la partition d'échange n'aie été montée
par le système. À cette fin, le fichier de démarrage
sysinit doit être modifié. Le paquet
des sources de LKCD inclut un
répertoire scripts
qui contient des
correctifs pour plusieurs des scripts de démarrage
sysinit. Ces correctifs ajoutent les
commandes lkcd config
et lkcd
save
pour activer la recopie mémoire en cas de panne
et pour sauvegarder au démarrage une éventuelle copie mémoire
préexistante.
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
». Après avoir compilé le module
panic.o
, il vous suffira d'utiliser la
commande insmod panic.o pour déclencher 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; }
Afin d'examiner votre sauvegarde de la mémoire du noyau, vous devrez lancer lcrash avec quelques paramètres :
lcrash [ fichier System.map ] [ copie de la mémoire ] [ Kerntypes ]
Par exemple :
lcrash /boot/System.map ./dump.1 /boot/Kerntypes
Le chargement de l'image mémoire prendra une minute avant que
vous ne vous retrouviez dans l'interpréteur de commandes de
crash. Vous pouvez taper un
?
pour obtenir la liste des commandes
disponibles.