Linux Crash HOGYAN

Norman Patten

nepatten@us.ibm.com

2002.01.30

Verziótörténet
Verzió: 1.02002.01.30Átdolgozta: NM
Első kiadás.

Tartalomjegyzék
1. Bevezetés
1.1. Szerzői jog és licenc
1.2. Magyar fordítás
2. Hogyan működik az LKCD
2.1. Mire van szükséged?
3. Az lkcd telepítése
3.1. Telepítés forráskódból
3.2. Az LKCD programok fordítása és telepítése
3.3. Telepített állományok
3.4. Az LKCD telepítése RPM csomagból
3.5. A kernel foltozása
3.6. A kernel fordítása és telepítése
4. A crash beállítása, tesztelése és futtatása
4.1. A crash dump beállítása
4.2. A crash tesztelése
4.3. A crash futtatása

1. Bevezetés

Az LKCD (Linux Kernel Crash Dump) projekt kernel foltok és alkalmazások együttese, mely lehetővé teszi a kernel memóriatartalmának elmentését kernel pánik esetén. A kernel állapotát tartalmazó állomány a mellékelt alkalmazásokkal együtt lehetővé teszi a kernel pánik utólagos hibakeresését. A legtöbb fizetős Unix operációs rendszert hasonló crash alkalmazásokkal szállítják, de ez a csomag meglehetősen új a Linuxban, és kézzel kell hozzáadni. Az LKCD alkalmazás nem alkalmas megfelelő információk összegyűjtésére hardver okozta pánik vagy szegmenshiba esetén. A teljes LKCD csomag letölthető a http://lkcd.sourceforge.net/ oldalról.


1.2. Magyar fordítás

A magyar fordítást Furi Zoltán készítette (2003.04.15). A lektorálást Daczi László végezte el (2003.04.16). Bármilyen fordítással kapcsolatos észrevételt a linuxhowto@sch.bme.hu címre küldjetek. A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt honlapján.


2. Hogyan működik az LKCD

Amikor a kernel olyan hibával találkozik amelyet nem tud lekezelni, meghívja a "panic" (pánik) függvényt. Ez a pánik az LKCD-ben egy ún. kernel dump-ot eredményez, ekkor a kernel memóriájának a tartalma egy előre kijelölt, ún. dump területre másolódik. Dump eszközként alapból az elsődleges swap terület van beállítva. A kernel nem teljes mértékben működőképes ekkor, de még elegendő mértékben ahhoz, hogy kimásolja a memória tartalmát a lemezre. Miután a dump befejezte a memória tartalmának másolását a lemezre, a rendszer újraindul. Amikor a rendszer újraindul, új crash dump fájlt keres. Ha talál, akkor átmásolja azt a dump helyéről egy másik partícióra, alapból a "/var/log/dump" könyvtárba. Az állomány másolása után a rendszer folytatja a normális indulási folyamatot. A vizsgálatokat egy későbbi időpontban el lehet végezni.


3. Az lkcd telepítése


3.3. Telepített állományok

  /etc/sysconfig/dump             # A dump konfigurációs állománya
  /sbin/lcrash                    # A crash alkalmazás
  /sbin/lkcd                      # Szkript a crash konfigurálására és mentésére
  /sbin/lkcd_config               # A dump konfigurációs programja
  /sbin/lkcd_ksyms                # A kernel szimbólumok visszaállító programja  
  /usr/include/sial_api.h         # A SIAL API header állománya
  /usr/lib/libsial.a              # Simple Image Access Language függvénykönyvtár
  /usr/man/man1/lcrash.1          # lcrash kézikönyv oldalak
  /usr/man/man1/lkcd_config.1     # lkcd_config kézikönyv oldalak
  /usr/man/man1/lkcd_ksyms.1      # lkcd_ksyms kézikönyv oldalak
  /usr/share/sial/lcrash/ps.sial  # A SIAL ps parancsának implementációja
      

3.5. A kernel foltozása

A következő lépés a kernel foltozása és újrafordítása. Foltoznod kell a kernel forrást az a http://lkcd.sourceforge.net/ oldalról letöltött lkcd-xxx.diff fájlal. Másold a foltot ugyanabba a könyvtárba, ahol a kerneled forrása van, és futtasd a patch -p0 < lkcd-kernelxxx.diff parancsot. Győződj meg róla, hogy a folt verziója azonos a használt kernelével. A következő lépésben a kernel konfigurálásával engedélyezned kell a crash dump támogatást. Alapbeállításban a crash támogatás, miután alkalmaztad a foltot, ki van kapcsolva. Ha a make menuconfig vagy a make xconfig parancsot használod, az "LKCD support" opció a "kernel hacking" fejezet alatt található. Szükséged lehet még további opciók engedélyezésére. További részletekért olvasd el a The Linux Kernel HOWTO (Linux kernel HOGYAN) leírást .


4. A crash beállítása, tesztelése és futtatása