Linux Indítólemez HOGYAN: Gyakran ismételt kérdések (GYIK) listája

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