Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > d667a145d78a93cee78c5358ca99c039 > files > 62

howto-text-nl-2006-5mdv2010.0.noarch.rpm


Linux Crash HOWTO

Norman Patten

   <[1]nepatten@us.ibm.com>

Vertaald door: Ellen Bokhorst Bokhorst

   <[2]bokkie@nl.linux.org>

   30-01-2002
   Wijzigingen
   Herziening 1.0 30-01-2002 Herzien door: NM
   Initiële release.

   In dit document wordt de installatie en het gebruik van het LKCD
   (Linux Kernel Crash Dump) package beschreven.
     _________________________________________________________________

   Inhoudsopgave
   [3]Introductie
   [4]Hoe LKCD werkt
   [5]Installatie van lkcd
   [6]Setup, test, en het uitvoeren van crash

Introductie

   Het LKCD (Linux Kernel Crash Dump) project bestaat uit een set
   kernelpatches en utility's om kernelgeheugen te kunnen kopiëren om het
   op te slaan in geval van een kernel panic. Het opgeslagen kernelimage
   maakt onderzoek op de kernelpanic mogelijk met utility's die in het
   package zijn opgenomen. De meeste commerciële Unix besturingssystemen
   worden met vergelijkbare crash utility's geleverd, maar dit package is
   tamelijk nieuw voor Linux en het moet handmatig worden toegevoegd. Het
   LKCD utility is niet ontworpen voor het verzamelen van behulpzame
   informatie in geval van een door de hardware veroorzaakte panic of een
   segment violation. Het volledige LKCD package is beschikbaar voor
   download vanaf [7]http://lkcd.sourceforge.net/.
     _________________________________________________________________

Copyright en licentie

   Dit document is auteursrechtelijk beschermd (c) 2002 door Norman
   Patten. Het is toegestaan dit document te kopiëren, distribueren en/of
   aan te passen onder de voorwaarden van de GNU Free Documentation
   Licence, versie 1.1 of enige latere versie gepubliceerd door de Free
   Software Foundation; zonder Invariant secties, zonder Front-Cover
   teksten, en zonder Back-Cover teksten. Een kopie van de licentie is
   beschikbaar op [8]http://www.gnu.org/copyleft/fdl.html.

   Linux is een geregistreerd handelsmerk van Linus Torvalds . lkcd is
   gedistribueerd onder het copyright van Silicon Graphics Inc.

   Stuur feedback naar [9]nepatten@us.ibm.com.
     _________________________________________________________________

Hoe LKCD werkt

   Wanneer een kernel bepaalde fouten tegenkomt, roept het de "panic"
   functie aan wat resulteert in een onherstelbare fout. Deze panic geeft
   als resultaat dat LKCD een kerneldump initieert waarbij kernelgeheugen
   wordt gekopieerd naar een vooraf toegekend dumpgebied. Het dump device
   wordt standaard als primair swap geconfigureerd. De kernel is nu niet
   volledig functioneel, maar er is voldoende functionaliteit over voor
   het kopiëren van het geheugen naar disk. Nadat dump het kopi¨ren van
   geheugen naar disk heeft voltooid, wordt het systeem opnieuw
   opgestart. Tijdens de nieuwe systeemstart controleert het op een
   nieuwe crash dump. Wanneer een nieuwe crash dump wordt aangetroffen,
   wordt het vanuit de dump lokatie gekopieerd naar het bestandssysteem
   standaard de "/var/log/dump" directory. Na het kopiëren van het image,
   gaat het systeem normaal verder met het bootproces en kan onderzoek op
   een later tijdstip plaatsvinden.
     _________________________________________________________________

Wat je nodig hebt

   Het bestand lkcd-kernelxxx.diff voor het patchen van de kernel. De
   ondersteunde kernelversie zal volgens vaste regel wijzigen.
   lkcdutils-xx.src.rpm - dit is de broncode van de utility's en de
   scripts die je nodig hebt om een crash in te stellen en te lezen. Op
   moment van schrijven is een rpm binary voor de i386'r beschikbaar
   vanaf [10]lkcd.sourceforge.net, maar je zult nog steeds de patches
   nodig hebben voor de opstartscripts vanuit de rpm broncode.
     _________________________________________________________________

Installatie van lkcd

Installeren vanuit broncode

   Haal het bestand lkcdutils-xxx.src.rpm op en installeer het met rpm -i
   kcdutils-xxx.src.rpm . Een bestand met de naam lkcdutils-xxx.tar.gz
   zal worden geplaatst in de directory /usr/src/redhat/SOURCES. Dit
   bestand is een gecomprimeerd tar image van de lkcd broncodestructuur.
   Pak de broncode uit in een directory naar keuzen zoals "/usr/src" met
   tar -zxvf kcdutils-xxx.src.rpm . Er zal nu een directory genaamd
   "kcdutils-xxx" worden aangemaakt met de broncode van de LKCD
   utility's.
     _________________________________________________________________

Bouwen en installeren van de LKCD utility's

   LKCD gebruikte de standaard GCC compiler en make files. Voor het
   bouwen van de suite, cd je naar de LKCD src directory en start
   ./configure om de configuratiebestanden te configureren. De volgende
   stap bestaat uit de uitvoering van make om de utility's te compileren
   en tenslotten uit het opstarten van make install om de utility's en de
   manpages te installeren.
     _________________________________________________________________

Wat wordt er geïnstalleerd

  /etc/sysconfig/dump             # Configuratiebestand voor dump
  /sbin/lcrash                    # Het crash utility
  /sbin/lkcd                      # Script om een crash te configureren en
                                  # op te slaan
  /sbin/lkcd_config               # Configuratie-utility voor dump
  /sbin/lkcd_ksyms                # Utility voor het reconstrueren van
                                  # kernel symbolen
  /usr/include/sial_api.h         # Header file voor de SIAL API
  /usr/lib/libsial.a              # Simple Image Access Language library
  /usr/man/man1/lcrash.1          # man page voor lcrash
  /usr/man/man1/lkcd_config.1     # man page voor lkcd_config
  /usr/man/man1/lkcd_ksyms.1      # man page voor lkcd_ksyms
  /usr/share/sial/lcrash/ps.sial  # ps opdracht implementatie van SIAL
     _________________________________________________________________

Installeren van de LKCD utility's vanuit een RPM

   Je kunt voorgecompileerde utility's van rpm installeren met rpm -i
   kcdutils-xxx.rpm . Je zult nog steeds de kernel moeten patchen en de
   patches voor de opstartscripts moeten installeren. Je kunt echter het
   compileren van de utility's overslaan.
     _________________________________________________________________

Patchen van de kernel

   De volgende stap bestaat uit het patchen en hercompileren van de
   kernel. Je zult de broncode van de kernel moeten patchen met het
   lkcd-xxx.diff bestand dat je downloadde vanaf
   [11]http://lkcd.sourceforge.net/. Kopieer de patch naar dezelfde
   directory als je kernel en geef de opdracht patch -p0 <
   lkcd-kernelxxx.diff. Zorg dat de patch dezelfde versie heeft als de
   kernel die je gaat patchen. Vervolgens zul je de kernel moeten
   configureren om de crash dump ondersteuning te activeren. Standaard is
   de crash ondersteuning uitgezet na toepassing van de patch. Als je
   make menuconfig of make xconfig gebruikt, is de optie "LKCD support"
   te vinden onder kernel hacking. Wellicht dat je ook nog andere
   kernelfeatures moet activeren die je nodig hebt. Zie de [12]Linux
   Kernel HOWTO voor meer details.
     _________________________________________________________________

Compileer en installeer de kernel

   De volgende stap bestaat uit het compileren en installeren van de met
   crash geactiveerde kernel. Start in onderstaande volgorde de volgende
   opdrachten op vanuit de directory met kernel bronbestanden.

  make depend
  make install
  make modules
  make modules_install

   Hiermee zal de nieuwe kernel worden gecompileerd en geïnstalleerd. Je
   moet ook het bestand Kerntypes vanuit de directory met kernbroncode
   kopiëren naar de /boot directory. Wellicht dat je ook nog het bestand
   lilo.conf moet wijzigen zodat er in wordt verwezen naar je nieuwe
   kernel. Zie [13]http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html voor
   meer informatie over het compileren en installeren van een kernel.
     _________________________________________________________________

Setup, test, en het uitvoeren van crash

Instellen van crash dump

   Om een core image te kunnen bewaren dat naar swap is geschreven, moet
   het image worden opgeslagen voordat de swap tijden het booten wordt
   gemount. Hiervoor moet het opstartbestand sysinit worden gewijzigd. In
   de broncode van lkcd is een scripts directory opgenomen waarin de
   patches staan voor diverse sysinit opstartscripts. Deze patches voegen
   de lkcd config en lkcd save opdrachten toe om crash dumps te activeren
   en een eventuele bestaande crash dump bij het opstarten op te slaan.
     _________________________________________________________________

Testen van crash

   Om een panic te forceren zodat je de nieuwe crash setup kunt testen,
   compileer je de volgende code met cc -c -I/usr/src/linux/include
   panic.c . Na het bouwen van de panic.o module geef je de opdracht
   insmod panic.o om een kernel panic te activeren.
  ### panic.c ###########################

  #define __KERNEL__
  # MODULE

  # include init_module(void)

  int init_module (void)
  {
      panic(" panic has been called");
      return 0;
  }
     _________________________________________________________________

Uitvoeren van crash

   Om je kernel core file te kunnen bekijken moet lcrash worden
   aangeroepen met een paar parameters:
  lcrash [ System.map file ] [ dump image ] [ Kerntypes ]

  Voorbeeld:

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

   Het zal even duren eer het kernelimage in het geheugen is geladen en
   het je dropt in de crash shell. Achter de crash shellprompt kun je een
   ? intikken voor een overzicht met de beschikbare opdrachten.

References

   1. mailto:nepatten@us.ibm.com
   2. mailto:bokkie@nl.linux.org
   3. file://localhost/tmp/Linux-Crash-HOWTO-NL/Linux-Crash-HOWTO-NL.html#INTRO
   4. file://localhost/tmp/Linux-Crash-HOWTO-NL/Linux-Crash-HOWTO-NL.html#HOWITWORKS
   5. file://localhost/tmp/Linux-Crash-HOWTO-NL/Linux-Crash-HOWTO-NL.html#INSTALL
   6. file://localhost/tmp/Linux-Crash-HOWTO-NL/Linux-Crash-HOWTO-NL.html#SETUP
   7. http://lkcd.sourceforge.net/
   8. http://www.gnu.org/copyleft/fdl.html
   9. mailto:nepatten@us.ibm.com
  10. http://lkcd.sourceforge.net/
  11. http://lkcd.sourceforge.net/
  12. http://linuxdoc.org/HOWTO/Kernel-HOWTO.html
  13. http://linuxdoc.org/HOWTO/Kernel-HOWTO.html