Következő Előző Tartalom

10. Gyakran ismételt kérdések (GYIK) listája

K. Elindítom a rendszert az indító/gyökér lemezemről, de semmi nem történik. Mit tegyek?

Lásd a Troubleshooting fejezetet feljebb.

K. Hogy működik a Slackware/Debian/RedHat indítólemez?

Lásd a What the pros do fejezetet feljebb.

K. Hogyan készíthetek XYZ eszközmeghajtóval indítólemezt?

A legegyszerűbb módja, hogy megszerzel egy Slackware kernelt a legközelebbi Slackware tükör szerverről. A Slackware kernelek általános kernelek, amikbe megpróbálják az összes létező eszközt belepakolni, így ha SCSI vagy IDE vezérlőd van, nagy az esélye, hogy a Slackware kernelben benne lesz az ahhoz szükséges meghajtóprogram.

Menj az a1 alkönyvtárba, és válaszd ki az IDE vagy SCSI kernelt attól függően, hogy milyen vezérlőd van. Nézd meg az xxxxkern.cfg állományt, hogy a kiválaszott kernel milyen eszközmeghajtókat tartalmaz. Ha az általad használni kívánt eszköz szerepel a listában, az adott kernellel indulnia kell a gépednek. Töltsd le az xxxxkern.tgz állományt, másold át a lemezedre az indítólemez készítésével foglalkozó fejezetben leírtak szerint.

Le kell ellenőrizned a gyökér eszközödet a kernelben a következő paranccsal:

        rdev zImage

Az rdev ki fogja írni a kerneled aktuális indító eszközét. Ha ez nem egyezik meg az általad kívánt gyökér eszközzel, használd az rdev parancsot, hogy megváltoztasd. Például az a kernel, amit próbáltam, /dev/sda2-re volt állítva, de az én SCSI gyökér partícióm a /dev/sda8. Ahhoz, hogy gyökér lemezként használhassam, a következő parancsot kell kiadnom:

        rdev zImage /dev/fd0

Ha tudni szeretned, hogy hogyan kell egy Slackware gyökér lemezt beállítani, az már kívül esik e HOGYAN keretein, javaslom, hogy nézd meg a Linux Telepítő Kézikönyvet, vagy szerezz be egy Slackware disztribúciót. Nézd meg a ``Referenciák'' fejezetet.

K. Hogy frissíthetem az indítólemezem a legfrisebb kernellel?

Állományrendszer használata nélkül egyszerűen másold a dd, vagy indító/gyökér lemez esetén a cp paranccsal a kernelt az indítólemezedre. Konzultálj e HOGYAN ``Indító'' fejezetével az indítólemez készítésének részleteiért. A leírás egyaránt érvényes a kernel frissítésére is.

K. Hogy frissíthetem a gyökér lemezem állományait újakkal?

A legegyszerűbb módja, hogy visszamásolod a gyökérlemezed állományrendszerét az általad használt ESZKÖZRE ( lásd feljebb a Creating the filesystem fejezetet). Ezután illeszd be az állományrendszert és végezd el a változtatásokat. Emlékezned kell arra, hogy honnan indul a gyökér állományrendszered és hány blokkot foglal el:

        dd if=/dev/fd0 bs=1k skip=ROOTBEGIN count=BLOCKS | gunzip > DEVICE
        mount -t ext2 DEVICE /mnt

Miután elvégezted a változtatásokat, folytasd, mint korábban ( Wrapping it up fejezet) és tedd vissza a gyökér állományrendszeredet a lemezre. Nem kell újra átvinned a kernelt, illetve újraszámolni a memórialemez szót, ha nem változtattál az új gyökér állományrendszer kezdőpozícióján.

K. Hogy távolíthatom el a LILO-t úgy, hogy újra DOS-t indíthassak?

Ez nem kifejezetten Indítólemez probléma, de gyakran kérdezik. Linux alatt futtasd a

        /sbin/lilo -u

parancsot.Használhatod a dd utasítást is, hogy visszamásold a LILO által elmentett indító szektort. Tanulmányozd a LILO dokumentációját, hogy ezt hogyan teheted meg.

DOS és Windows alatt használhatod a

        FDISK /MBR

utasítást. Az MBR a Master Boot Record-ot jelenti (Mester Indító Rekord), ami kicseréli az indító szektort egy tiszta DOS-ossal, anélkül, hogy belepiszkálna a partíciós táblába. Néhányan nem teljesen értenek ezzel egyet, de még a LILO készítője, Werner Almesberger is ajánlja. Könnyű, és működik.

Q. Hogy indítsak, ha elvesztettem a kernelem és az indító lemezem?

Ha nincs kéznél indító lemez, a legegyszerűbb valószínűleg egy Slackware kernel beszerzése a rendszerednek megfelelő lemezvezérlő típussal (IDE vagy SCSI), ahogy az a ``Hogyan készítsek indítólemezt XXX eszközzel'' kérdésnél is olvashattad. Ezután el tudod indítani a géped ezzel a kernellel, és kijavíthatod a felmerült problémákat.

A kernelben, amit megszerzel előfordulhat, hogy nem a neked megfelelően van beállítva a gyökér eszköz lemezed típusához és a partícióhoz. Például a Slackware általános SCSI kernelének gyökér eszköze a /dev/sda2 eszközre mutat, holott az én gyökér Linux partícióm /dev/sda8-ként látszik. Ebben az esetben a kernel gyökér eszközét meg kell változtatni.

Még akkor is megtudod változtatni a kernel gyökér eszköz és a memórialemez beállításait, ha csak egy kerneled van és valami más operációs rendszered, mint a DOS például.

Az rdev úgy változtatja a kernel beállításait, hogy fix eltolásoknál megváltoztatja a kernel állomány értékét, így egy hexa szerkesztővel te is megteheted ugyanezt, ha van kéznél valamilyen működő operációs rendszer alatti szerkesző -- például a DOS alatti Norton Utilities Disk Editor. Ekkor meg kell nézned az összes értéket, majd szükség esetén meg kell változtatnod az itt szereplő eltolások alapján:

HEX     DEC  LEÍRÁS
0x01F8  504  A MEMÓRIALEMEZ szó alacsony bájtja
0x01F9  505  A MEMÓRIALEMEZ szó magas bájtja
0x01FC  508  Gyökér eszköz minor száma - lásd alább
0X01FD  509  Gyökér eszköz major száma - lásd alább

A memórialemez szót fejlebb, a Setting the ramdisk word fejezetben tárgyaltuk.

A major és minor eszköz számokat arra az eszközre mutatva kell beállítanod, ahova szeretnéd a gyökér állományrendszered beillesztését. Néhány hasznos érték, hogy választhass:

ESZKÖZ          MAJOR MINOR
/dev/fd0            2     0   Első lemezmeghajtó
/dev/hda1           3     1   1. partíció az 1. IDE eszközön
/dev/sda1           8     1   1. partíció az 1. SCSI eszközön
/dev/sda8           8     8   8. partíció az 1. SCSI eszközön

Ha beállítottad ezeket az értékeket, kiírhatod az állományt akár a Norton Utilities Disk Editort, akár a rawrite.exe programot használva. Ezt a programot minden disztribúció tartalmazza. Ez egy DOS program, ami a lemezre ``nyersen'' írja ki az állományt az indító szektortól kezdve, nem a lemezen található állományrendszerre. Ha Norton Utilies-t használsz, a lemez elején kezdődő fizikai lemezre kell kiírnod az állományt.

K.Hogyan készíthetnék extra másolatot az indító/gyökér lemezeimről?

Mivel a mágneses média bizonyos idő után lemágneseződik, célszerű a biztonsági lemezedről több másolatot tartanod, felkészülve arra az esetre, ha az eredeti lemezed olvashatatlanná válna.

A lemezek másolásának legegyszerűbb módja, beleértve az indítható és az eszköz lemezeket is, ha a dd paranccsal átmásolod az eredeti lemez tartalmát egy a merevlemezeden lévő állományba, majd ugyanezzel az utasítással visszamásolod az új lemezre. Jegyezzük meg, hogy nem kell, és nem is célszerű beillesztened a lemezeket a rendszerbe, mert a dd nyers eszköz interfészt használ.

Az eredeti lemásolásához a

        dd if=ESZKÖZNEVE of=ÁLLOMÁNYNEVE
        ahol az ESZKÖZNEVE a lemezmeghajtód eszközneve
        és az ÁLLOMÁNYNEVE a (merevlemezen levő) kimeneti állomány neve
utasítást használd.

Ha elhagyod a count paramétert, a dd az egész lemezt átmásolja (nagy sűrűségű lemez esetén 2880 blokk).

A kész állomány új lemezre való visszamásolásához helyezd be az új lemezt, és fordítsd meg az utasítást:

        dd if=ÁLLOMÁNYNEVE of=ESZKÖZNEVE

Jegyezzük meg, hogy a fenti utasítássorozat az feltételezi, hogy csak egyetlen lemezmeghajtód van. Ha két ugyanolyan típusú lemezmeghajtód van, akkor használhatod a következő utasítást a közvetlen lemezről-lemezre másoláshoz:

        dd if=/dev/fd0 of=/dev/fd1

K. Hogyan indíthatnám el a rendszerem a "ahaxxxx=nn,nn,nn" minden induláskor történő beírása nélkül?

Ahol a lemez eszközt nem lehet automatikusan felismertetni a rendszerrel, el kell látni a kernelt az eszköz paramétereinek sztringjével, mint pl.:

        aha152x=0x340,11,3,1
Ezt a paramétert többféleképpen is át lehet adni a LILO-nak:

  • Beírhatod minden egyes LILO-val történő rendszerindításkor a parancssorba. Ez meglehetősen unalmas, fárasztó.
  • Használhatod a LILO ``lock'' kulcsszavát, hogy tárolja el a parancssort, mint alapértelmezett parancssort, így a LILO minden induláskor ugyanazt a paramétert fogja használni.
  • Használhatod a append= sort a LILO konfigurációs állományában. Jegyezzük meg, hogy a paraméter sztringet idézőjelek közé kell tenni.

Például egy példa parancssor, ami a fenti paraméter sztringer használja, így nézne ki:

        zImage  aha152x=0x340,11,3,1 root=/dev/sda1 lock

Ez mindig átadná a kernelnek a paramétersztringet, és megkérné a kernelt, hogy állítsa be a gyökér eszköznek a /dev/sda1-t, és mentse az egész parancssort a későbbi indításokra.

Egy példa az APPEND sorra:

        APPEND = "aha152x=0x340,11,3,1"

Jegyezzük meg, hogy a paramétersztringet NEM szabad idézőjelbe tenni a parancssor esetén, de az APPEND sornál muszáj idézőjelet használni.

Jegyezzük meg, hogy a ahhoz, hogy a paramétersztring működjön, a kernelnek tartalmaznia kell a megadott lemeztípus eszközmeghajtóját. Ha nem tartalmazza, semmi sem fog a paramétersztringre hallgatni, és újra kell fordítanod a kernelt a megfelelő eszközmeghajtóval, ha működésre szeretnéd bírni. A kernel újrafordításának részleteiért lépj be az /usr/src/linux alkönyvtárba, és olvasd el a README állományt, majd olvasd el a Linux GYIK-et és a Telepítés HOGYAN-t. Létezik még egy lehetséges alternatíva is, szerezz egy kifejezetten ahhoz a lemez típushoz készült kernelt, és telepítsd.

Az olvasók figyelmét mindig felhívjuk a LILO dokumentáció alapos áttanulmányozására, mielőtt LILO telepítéssel kísérletezgetnének. Az indító leíró elővigyázatlan használata tönkreteheti a partíciókat.

K. Bekapcsoláskor "A: cannot execute B" hibaüzenetet kapok. Miért?

Több esetben előfordulhat, hogy különböző eszközökben program neveket bedrótoztak. Ezek az esetek nem jönnek elő mindenütt, de megmagyarázza, hogy néhány végrehajtható állomány miért nem található meg a rendszereden, még ha ott is látod. Megnézheted, hogy be van-e drótozva egy adott programba egy másik, ha kiadod a strings parancsot, és átküldöd csövön a grep-nek.

A bedrótozás tipikus példái:

  • A shutdown néhány verziója a /etc/rebootállományt bedrótozva tartalmazza, tehát a reboot-ot a /etc alkönyvtárba kell tenni.
  • Az init már legalább egy embernek problémát okozott, nem találta meg a kernel az init-et.

A probléma javításához vagy mozgasd a programokat a megfelelő alkönyvtárba, vagy változtasd meg a konfigurációs állományokat (pl. inittab), hogy a helyes alkönyvtárra mutassanak. Ha kétségeid támadnának, tedd a programokat ugyanolyan alkönyvtárba, mint a merevlemezeden vannak, és használd ugyanazt az inittab és /etc/rc.d állományt, ami a merevlemezeden található.

K. A kernelembe belefordítottam a memórialemez támogatást, de 0K-val inicializálja magát.

Amikor ez történik, a megjelenő kernelüzenet valahogy így néz ki a kernel indulásakor:

        Ramdisk driver initialized : 16 ramdisks of 0K size

Ez valószínűleg azért van, mert a méretét 0-ra állítod kernel paraméterekkel az indulás idejekor. Ez valószínűleg egy elnézett LILO paraméter miatt lehetséges:

ramdisk= 0

Ezt néhány korábbi disztribúció LILO példa konfigurációs állománya tartalmazza,és minden korábbi kernel beállítást felülbírál. Ha van ilyen sorod, távolítsd el.

Jegyezzük meg, hogy ha 0K-ra állított memórialemezt próbálsz meg használni, a működés kiszámíthatatlanná válik, és kernel pánikor okozhat.


Következő Előző Tartalom