2002.01.30
Verzi�t�rt�net | ||
---|---|---|
Verzi�: 1.0 | 2002.01.30 | �tdolgozta: NM |
Els� kiad�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.
This document is copyrighted (c) 2002 by Norman Patten. Ezen dokumentum m�sol�sa, terjeszt�se �s/vagy m�dos�t�sa enged�lyezett a GNU Free Documentation License 1.1 v�ltozata, vagy b�rmelyik k�s�bbi, a Free Software Foundation �ltal k�zz�tett v�ltozat felt�telei szerint; �lland� fejezetek n�lk�l, el�lapi �s h�toldali sz�veg n�lk�l. A licenc m�solata el�rhet� a http://www.gnu.org/copyleft/fdl.html oldalon.
A Linux v�djegy Linus Torvalds tulajdona. Az lkcd a Silicon Graphics Inc. �ltal meghat�rozott felt�telek szerint terjeszthet�.
Visszajelz�st a [email protected] c�mre lehet k�ldeni.
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 [email protected] c�mre k�ldjetek. A dokumentum legfrissebb v�ltozata megtal�lhat� a Magyar Linux Dokument�ci�s Projekt honlapj�n.
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.
Az lkcd-kernelxxx.diff f�jlra a kernel foltoz�s�hoz. A t�mogatott kernelverzi� folyamatosan v�ltozik. Az lkcdutils-xx.src.rpm tartalmazza az alkalmaz�s forr�sk�dj�t �s a be�ll�t�shoz, illetve a crash adatok olvas�s�hoz sz�ks�ges programokat. E sz�veg �r�s�nak idej�n egy futtathat� i386 rpm csomag el�rhet� az lkcd.sourceforge.net webhelyen, de �gy is sz�ks�ged lesz az ind�t�shoz a szkriptekre a forr�s rpm csomagb�l.
Szerezd be az lkcdutils-xxx.src.rpm csomagot �s telep�tsd az rpm -i kcdutils-xxx.src.rpm paranccsal. Ez egy lkcdutils-xxx.tar.gz nev� f�jlt helyez az /usr/src/redhat/SOURCES k�nyvt�rba. Ez a f�jl az lkcd forr�sok t�m�r�tett tar �llom�nya. Csomagold ki a forr�st egy tetsz�leges k�nyvt�rba (p�ld�ul "/usr/src" a tar -zxvf kcdutils-xxx.src.rpm paranccsal. Ez l�tre fogja hozni a "kcdutils-xxx" k�nyvt�rat, amelyben az LKCD csomag r�szeinek forr�sk�dja lesz.
Az LKCD a hagyom�nyos GCC ford�t�t �s make f�jlokat haszn�lja. A programok ford�t�s�hoz l�pj be LKCD forr�sk�nyvt�r�ba, �s futtasd a ./configure szkriptet a konfigur�ci�s �llom�nyok elk�sz�t�s�hez. A k�vetkez� l�p�s a make futtat�sa az alkalmaz�s ford�t�s�hoz, �s v�g�l futtasd a make install parancsot a programok �s k�zik�nyv oldalak telep�t�s�hez.
/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 |
Telep�theted az el�re leford�tott programokat rpm csomagb�l az rpm -i kcdutils-xxx.rpm futtat�s�val. Azonban m�g foltozni kell a kernelt, �s telep�teni az ind�t� szkriptet. Egy�bk�nt kihagyhatod az alkalmaz�s ford�t�s�nak l�p�seit.
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 .
A k�vetkez� l�p�s a crash opci�val enged�lyezett kernel ford�t�sa �s telep�t�se. A kernel forr�sk�nyvt�rban futtasd egym�s ut�n a k�vetkez� parancsokat:
make depend make install make modules make modules_install |
Ez leford�tja �s telep�ti az �j kernelt, de neked kell �tm�solnod a Kerntypes �llom�nyt a kernel forr�sk�nyvt�rb�l a /boot k�nyvt�rba. Sz�ks�g lesz m�g a lilo.conf �llom�ny szerkeszt�s�re is, hogy legyen benne az �j kerneledre mutat� bejegyz�s is. Tov�bbi inform�ci��rt olvasd el a http://www.tldp.org/HOWTO/Kernel-HOWTO.html le�r�st.
A swap part�ci�ra �rt core �llom�ny elment�s�hez, azt (m�rmint a core f�jlt – a lektor) az indul�si folyamat sor�n a swap part�ci� aktiv�l�sa el�tt �t kell m�solni egy m�sik part�ci�ra. Ennek v�grehajt�s�hoz a sysinit ind�t��llom�nyt meg kell v�ltoztatni. Az lkcd forr�s tartalmaz egy scripts k�nyvt�rat, amely foltokat tartalmaz k�l�nb�z� sysinit ind�t� szkriptekhez. Ezek a foltok hozz�adj�k az ind�t� szkripthez a lkcd config �s az lkcd save parancsokat , ezek enged�lyezik a crash dump szolg�ltat�st, illetve a l�tez� crash dump f�jl elment�s�r�l gondoskodnak.
Az �j crash be�ll�t�s tesztel�se �rdek�ben, p�nik kieszk�z�l�s��rt, ford�tsd le a k�vetkez� forr�sprogramot a cc -c -I/usr/src/linux/include panic.c paranccsal. A panic.o modul leford�t�sa ut�n p�nik el�id�z�s�hez csak t�lts�k be azt insmod panic.o paranccsal.
### panic.c ########################### #define __KERNEL__ # MODULE # include init_module(void) int init_module (void) { panic(" panic has been called"); return 0; } |
A core �llom�ny megtekint�s�hez futtasd a lcrash parancsot a k�vetkez� param�terekkel:
lcrash [ System.map f�jl ] [ dump f�jl ] [ Kerntypes ] P�lda: lcrash /boot/System.map ./dump.1 /boot/Kerntypes |
N�h�ny percet ig�nybe fog venni a kernel �llom�ny bet�lt�se a mem�ri�ba, majd kidob a crash parancssorba. A crash parancssorba be�rhatsz egy ? karaktert a haszn�lhat� parancsok megtekint�s�hez.