fawcett@croftj.net
)Megjegyzés: Ez a dokumentáció elavult lehet. Ha a címlapon szereplő dátum több, mint hat hónappal ezelőtti, nézd meg a Linux Documentation Project holapon ( http://metalab.unc.edu/LDP/HOWTO/Bootdisk-HOWTO.html), hogy nincs-e frisebb verzió.
Bár ez a dokumentáció jól olvasható sima szöveges formátumban, sokkal
jobban néz ki Postscript (.ps
) vagy HTML formátumban, mert tipográfiai
jeleket is használunk. Ajánljuk, hogy ezek valamelyikét használd.
Graham Chapman (grahamc@zeta.org.au
) írta az eredeti
Bootdisk-HOWTO-t és a 3.1-es verzióig ő támogatta.
Tom Fawcett (fawcett@croftj.net
) sok dolgot hozzátett
a 2.0-s kernel miatt, és ő a dokumentáció karbantartója a 3.2-es
verziótól kezdve. Chapman eredeti dokumentációjának nagyrésze
változatlanul megmaradt.
A Bootdisk-HOWTO fordítását, az Indítólemez-HOGYAN-t Bábos Balázs (bbk@swi.hu) készítette.
Ez a dokumentáció a 2.0-ás és későbbi kernelekhez készült. Ha ennél régebbi kerneled van (1.2.xx vagy korábbi), nézd meg e dokumentáció korábbi verzióit, melyeket a Graham Chapman honlapja helyről szerezhetsz be.
Ezek az információk kifejezetten Intel Linux platformra készültek. Az itt található dolgok nagyrésze más processzorú Linux rendszerben is felhasználhatók, de nincs saját tapasztalatunk e téren. Ha valaki rendelkezik más platform indítólemezének elkészítésében tapasztalattal, kérjük vegye fel velünk a kapcsolatot.
Szívesen fogadunk minden a dokumentációval kapcsolatos pozitív vagy negatív visszajelzést. A legjobb tudásunk szerint próbáltuk meg összeállítani az itt található utasításokat és információkat, hogy helytállóak és megbízhatóak legyenek. Légyszíves értesíts minket, ha hibát vagy elírást találnál.
Köszönjük sokatoknak, akik segítettetek javításokkal és ötletekkel. A közreműködésetek tette sokkal jobbá, nélkületek nem sikerült volna.
Megjegyzéseket, javításokat, kérdéseket a készítő fentebb olvasható E-mail címére küldheted. Nem bánom, ha kérdésekre kell válaszolnom, de először olvasd el a Hibajavítást-t.
Copyright © 1995,1996,1997,1998,1999 by Tom Fawcett and Graham Chapman. Ez a dokumentáció szabadon terjeszhető a Linux Documentation Project License ( http://metalab.unc.edu/LDP/COPYRIGHT.html) figyelembevételével. Fordulj a készítőkhöz, ha nem tudsz hozzájutni a licenszhez.
Ez egy ingyenes dokumentáció. Abban a reményben terjesztjük, hogy hasznos lehet, de bármiféle garancia nélkül.
A Linux indítólemezek több esetben hasznosak lehetnek, mint például:
libc.so
.
Több lehetőség áll rendelkezésedre, hogy beszerezz indító lemezeket:
Néhányan ez utóbbit választják, azaz saját maguk készítik el a rendszerindító lemezeiket. Így ha valami elromlik, ki tudják találni, hogy mi a teendő a megjavításához. Ezen kívül ez egy jó módszer arra, hogy megtanulják, hogy is működik egy Linux rendszer.
Ez a dokumentáció feltételezi, hogy van némi jártasságod a Linux rendszer-adminiszráció
alapkérdéseiben. Például nem árt tudnod, hogy mik azok az alkönyvtárak,
állományrendszerek és floppy lemezek. Ezen kívül jó ha tudod használni a
mount
és a df
parancsokat, valamint ismerned kell, hogy a
/etc/passwd és fstab állományok mire jók, és
hogyan néznek ki. Nem árt, ha azt is tudod, hogy a legtöbb parancsot,
amit ebben a HOGYAN-ban is használunk root-ként kell futtatnod.
A saját indítólemezed a semmiből való elkészítése meglehetősen bonyolult dolog. Ha még nem olvastad el a Linux GYIK-et és az olyan idevágó dokumentációkat, mint a Linux Telepítés HOGYAN és a Linux Telepítési Kézikönyv, nem ajánlatos indítólemez készítésével próbálkoznod. Ha csak vészhelyzetek esetére kell egy működő indítólemez, sokkal egyszerűbb, ha letöltesz egy megfelelő változatot magadnak. Nézd meg a Előre elkészített indítólemezek függeléket lejjebb, hogy hol is találod ezeket.
Az indítólemez tulajdonképpen egy pici, saját magát egyetlen floppy lemezen tartalmazó Linux rendszer. Sok -a teljes méretű Linux rendszerben lévő funkcióhoz hasonló- funkciót kell ellátnia. Mielőtt nekikezdenél egy ilyen rendszer készítésének, meg kell értened az alap Linux rendszer betöltési folyamatát. Azokkal az alapokkal foglalkozunk itt, amikre a dokumentáció további részének megértéséhez szükséged lesz. Több esetben a részleteket és az alternatív lehetőségeket kihagytuk.
Minden PC rendszer az indítási folyamatot a ROM-ban lévő kód végrehajtásával
(pontosabban a BIOS-ban) kezdi, hogy betöltse az indító meghajtó
0. szektor, 0. cylinderén található szektort. Az indító meghajtó
általában az első floppy lemez meghajtó (DOS alatt A:
-val
jelölik, Linuxban /dev/fd0). A BIOS ezután megpróbálja
végrehajtani ezt a szektort. A legtöbb indítható lemez 0. szektora,
0. cylindere a következők valamelyikét tartalmazza:
Ha a Linux kernel nyers-másolással kerül át egy lemezre, a lemez első szektora magának a kernelnek az első szektorát fogja tartalmazni. Az első szektor fogja folytatni a betöltési folyamatot a kernel többi részének indító eszközről való betöltésével.
Amint a kernel teljes egészében betöltődött, néhány alapvető eszköz-inicializálást hajt végre. Ezután megpróbálja betölteni és beilleszteni a gyökér állományrendszert néhány eszközről. A gyökér állományrendszer egyszerűen az az állományrendszer, amit ``/''-ként illesztünk be. A kernelnek meg kell mondani, hogy hol keresse a gyökér állományrendszert; ha nem talál betölthető állományrendszert itt, megáll.
Néhány esetben az induláskor -- gyakran, amikor lemezről indítunk -- a gyökér állományrendszert memórialemezre töltjük be, amit a rendszer a RAM-ból olvas úgy, mintha lemez lenne. Két indok lehet, ami miatt a rendszert memórialemezre töltjük. Az első, hogy a RAM lényegesen gyorsabb bármely floppy lemeznél, így a rendszer működése nagyon gyors, a második, hogy a kernelt tömörített állományrendszerről töltjük be a lemezről, majd memórialemezre kitömörítjük, ezzel lehetővé téve több állomány lemezre másolását.
Ha a gyökér állományrendszer betöltődött, és beillesztődött, a következőhöz hasonló üzenetet kapsz:
VFS: Mounted root (ext2 filesystem) readonly.
Ennél a pontnál a renszer megkeresi az gyökér állományrendszeren az
init
programot (a /bin
vagy az /sbin
alkönyvtárban),
és végrehajtja. Az init
az /etc/inittab állományból
olvassa a konfigurációt, megkeresi a megfelelő sysinit
sort, és
végrehajtja a named szkriptet. A sysinit
szkript általában valami
olyasmi, mint az /etc/rc vagy az /etc/init.d/boot.
Ez a szkript parancsértelmező parancsok halmaza, amik az olyan alap
rendszer szolgáltatásokat állítják be, mint:
fsck
futtatása minden lemezen,fstab
-ban felsorolt lemezek beillesztése.
Ez a szkript gyakran meghív más szkripteket, hogy moduláris inicializálást tegyen lehetővé. Például a közös SysVinit szerkezet, az /etc/rc.d/ alkönyvtár olyan alkönyvtárak teljes rendszerét tartalmazza, amelyek állományai megadják, hogy hogy kell engedélyezni és leállítani a legtöbb rendszerszolgáltatást. Mindazonáltal az indítólemezek sysinit szkriptje gyakran nagyon egyszerű.
Amikor a sysinit szkript végez, visszaadja a vezérlést az init
-nek,
ami ezután az inittab
initdefault
kulcsszavával megadott
alapértelmezett futásszintre lép. A futásszint sor általában
meghatároz egy getty
-hez hasonló programot, ami a
konzolon és tty-ken keresztüli kommunikációért felelős. A getty
az a program, ami a már ismerős ``login:
'' promptot írja ki. A
getty
program hívja meg a login
programot, hogy
a bejelentkezéseket lekezelje, és beállítsa a felhasználói környezetet.
Miután átnéztük az alap indulási folyamatot, definiálhatjuk a különböző lemeztípusokat. Négy típusba sorolhatjuk a lemezeket. A dokumentációban szereplő ``lemez'' szó alatt a továbbiakban a floppy lemezt értjük, ha másként nem rendelkezünk, bár a legtöbb dolog, amiről szó lesz, érvényes merevlemezre is.
A lemez a betöltendő kernelt tartalmazza. A lemez a kernel betöltésére használható, ami utána másik lemezen levő gyökér állományrendszert töltene be. A betöltőlemezen levő kernelnek meg kell mondani, hogy hol találja a gyökér állományrendszert.
Gyakran a betöltőlemez másik lemezen levő gyökér állományrendszert
tölt be, de az is megoldható, hogy merevlemez gyökér állományrendszerét
töltse be inkább. Ezt általában új kernel tesztelésére használjuk.
(tulajdonképpen a ``make zdisk
'' parancs automatikusan készít
ilyen betöltő lemezt a kernel forráskódjából).
A Linux rendszer működéséhez szükséges állományokat tartalmazó állományrendszer. Az ilyen lemez nem szükségszerűen tartalmaz kernelt, vagy indító betöltőt (boot loader).
Egy gyökér lemezt használhatunk más lemezen lévő rendszertől függetlenül, ha a kernel már betöltődött. A gyökérlemez gyakran automatikusan memórialemezre másolódik. Ez sokkal gyorsabbá teszi a gyökérlemez használatát, és felszabadítja a lemez meghajtót az eszközlemez számára.
Olyan lemez, ami a kernelt és a gyökér állományrendszert is tartalmazza. Más szavakkal, mindent tartalmaz, amire egy Linux rendszer merevlemez nélküli működéséhez szükség van. Ennek a lemeztípusnak a tömörsége az előnye -- minden szükséges dolgot egyetlen lemezen tartalmaz. Mindazonáltal mivel minden folyamatosan növekszik, egyre nehezebb mindent egy lemezre zsúfolni, még tömörítéssel is.
Olyan lemez, ami nem gyökérként beillesztendő állományrendszert tartalmaz, hanem kiegészítő adatokat. Egyéb eszközök szállítására használhatsz ilyen lemezt a gyökér lemezed kiegészítéseként, ha arra már nem fér más.
Általában amikor ``betöltőlemez készítéséről'' beszélünk, ezalatt egyaránt értjük a betöltő (kernel) és a gyökér (állományok) részek elkészítését. Ezek lehetnek együtt (egylemezes betöltő/gyökér lemez), vagy külön (betöltő+gyökér lemezek). A legrugalmasabb megoldás helyreállító lemezek esetén valószínűleg a különválasztott betöltő és gyökér lemezek használata, és egy vagy több eszköz lemez a többlet kezelésére.
A gyökér állományrendszer készítéséhez ki kell választani a rendszer futásához szükséges állományokat. Ebben a fejezetben megmutatjuk, hogy hogyan kell tömörített gyökér állományrendszert készíteni. Kevésbé gyakori lehetőség amikor tömörítetlen állományrendszert készítünk olyan lemezre, ami közvetlenül gyökérként lesz beillesztve a rendszerbe; ezt az alternatívát a Nem-memórialemez gyökér állományrendszer fejezetben mutatjuk be.
A gyökér állományrendszernek mindent tartalmaznia kell, amire a teljes Linux rendszernek szüksége van. Ahhoz, hogy ezt megtehessük, a lemeznek tartalmaznia kell a Linux rendszer minimális szükségleteit:
/dev, /proc, /bin, /etc, /lib, /usr,
/tmp
,sh, ls, cp, mv
, stb.,rc, inittab, fstab
, stb.,/dev/hd*, /dev/tty*, /dev/fd0
, stb.,Természetesen bármely rendszer akkor hasznos, ha tudsz rajta futtatni is valamit. A gyökérlemez általában csak akkor válik használhatóvá, ha valami ilyesmit megtehetsz vele:
fsck
-t
az eredeti gyökér meghajtódra, amíg nincs beillesztve.
cpio, tar, gzip
és az ftape
.
Megmutatjuk, hogy hogyan készíthetsz tömörített állományrendszert. Így hívják, mert a lemezen tömörítve tárolódik, majd indításkor pedig kitömörítődik a memórialemezre.
Tömörített állományrendszerrel sok állományt rázsúfolhatsz (körülbelül hat megabájtot) egy hagyományos 1440K-s lemezre. Mivel az állományrendszer lényegesen nagyobb a lemeznél, nem is lehet lemezen elkészíteni. Máshol kell elkészíteni, tömöríteni, majd rápakolni a lemezre.
Ahhoz, hogy ilyen gyökér állományrendszert készíthess, olyan tároló eszközre lesz szükséged, ami elég nagy, hogy a tömörítés előtt elférjenek rajta az állományok. Egy körülbelül négy megabájt szabad hellyel rendelkező eszközre lesz szükséged. Több lehetőség áll rendelkezésedre:
RAMDISK_SIZE = nnnsor, ami megadja, hogy mekkora RAM legyen maximálitan memórialemez számára lefoglalható. Az alapértelmezett érték 4096K, aminek elegendőnek kell lennie. Nem célszerű 8MB-nál kevesebb memóriával rendelkező gép esetén memórialemezt használni. Nézd meg, hogy vannak-e olyan eszközeid, mint a /dev/ram0, /dev/ram, vagy a /dev/ramdisk. Ha nincsenek, készítsd el a /dev/ram0-t az
mknod
(major 1, minor 0) paranccsal.
man losetup
parancsot. Ha nincs losetup
-od, az
ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/
címről letöltheted a mount
és unmount
programokkal
kompatibilis util-linux
csomagot, amiben megtalálod.
Ha nincs a rendszereden (/dev/loop0, /dev/loop1, stb.)
loop eszköz, készítened kell egyet az ``mknod /dev/loop0 b 7 0
''
paranccsal. Miután feltelepítetted ezeket a különleges mount
és umount
binárisokat, készíts egy elegendő kapacitással rendelkező ideiglenes
állományt a merevlemezeden (pl. /tmp/fsfile).
Használhatod a
dd if=/dev/zero of=/tmp/fsfile bs=1k count=<it/nnn/
parancsot a nnn-blokk méretű állomány készítéséhez.
Ezt az állománynevet használd lejjebb az ESZKÖZ helyett. Ha a mount
utasítást használod, a ``-o loop
'' kapcsolót is használnod
kell, hogy megmond a mount-nak, hogy loopback eszközt használjon.
Például a
mount -o loop -t ext2 /tmp/fsfile /mnt
parancs beilleszti a /tmp/fsfile-t (loopback eszközön keresztül)
az /mnt
illesztési pontba. Egy df
parancs ezt meg is erősíti.
Miután kiválasztottad valamely opciót, készítsd el az ESZKÖZt a
dd if=/dev/zero of=DEVICE bs=1k count=3000
utasítással. Ez a parancs lenullázza az eszközt. Ez a lépés azért fontos, mert később tömöríteni fogjuk az állományrendszert, így minden használaton kívüli területet nullával kell feltölteni, hogy maximális tömörítést érhessünk el.
Következik az állomáynrendszer elkészítése. A Linux kernel kétféle gyökér
lemeztípust ismer, amit automatikusan memórialemezre másol. Az egyik a
minix, a másik az ext2, ami a preferált állományrendszer. Ha ext2-t
használsz, hasznosnak találhatod a -i
kapcsolót, hogy az
alapértelmezettnél több inode-t adhass meg; a -i 2000
ajánlott legalább,
hogy ne fogyhass ki inode-okból.
Másfelől viszont meg is takaríthatsz inode-okat, ha letörlöd a sok felesleges
eszközállományt a /dev
alkönyvtárból. Az mke2fs
parancs 360
inode-t készít alapértelmezés szerint egy 1.44Mb-s lemezen. Úgy találtam, hogy
120 inode bőven elegendő a helyreállító lemezemen, de ha a /dev
alkönyvtár
összes állományát szeretnéd csatolni, hamar ki fogsz fogyni a 360 inode-ból.
A tömörített gyökér állományrendszer nagyobb állományrendszert enged meg, és
így alapértelmezés szerint több inode-t, de még mindig szükség lehet rá, hogy
egyrészről csökkentsd az állományok számát, vagy növeld az inode-k számát.
Így tehát az utasítás így néz ki:
mke2fs -m 0 -i 2000 ESZKÖZ
(Ha loopback eszközt használsz, meg kell adnod hogy az ESZKÖZ hol található.
Ebben az esetben az mke2fs
meg fog kérdezni, hogy biztosan ezt szeretnéd-e,
válaszolj igennel.)
Az mke2fs
utasítás automatikusan megállapítja a szabad hely méretét, és
annak megfelelően konfigurálja be magát. A -m 0
paraméter megakadályozza,
hogy a root számára helyet foglaljon le, így több használható hely lesz a lemezen.
Ezután beillesztheted az eszközt:
mount -t ext2 ESZKÖZ /mnt
(Létre kell hoznod a /mnt
beillesztési pontot, ha még nem létezik.)
A további fejezetekben minden alkönyvtárnevet az /mnt
-hez képest
relatív alkönyvtárnak tekintünk.
Íme egy kellően lecsupaszított alkönyvtárcsoport a gyökér állományrendszered számára:
/dev
-- Eszközök, melyek a B/K műveletekhez szükségesek/proc
-- Alkönyvtár-rendszer, amire a proc állományrendszernek van szüksége/etc
-- Rendszerkonfigurációs állományok/sbin
-- Kritikus rendszer-binárisok/bin
-- A rendszer részét alkotó alap binárisok/lib
-- Futásidejű támogatást nyújtó osztott eljáráskönyvtárak/mnt
-- Más lemezek karbantartására szolgáló beillesztési pont/usr
-- Egyéb eszközök és alkalmazások(Az itt bemutatott alkönyvtár-struktúra csak a gyökér lemezre vonatkozik. A valódi Linux rendszerek sokkal összetettebb és sokkal fegyelmezettebb irányvonallal rendelkeznek. Állományrendszer Hierarchia Szabványnak hívják ezt a rendszert, és ez a szabvány határozza meg, hogy melyik állománynak hova kell kerülnie.)
A gyökér lemezen három alkönyvtár üresen marad, tehát csak az mkdir
parancsra van szükség a létrehozásukhoz. A /proc
alkönyvtár
tulajdonképpen csak egy törzs, ahova a proc állományrendszer kerül. Az
/mnt
és az /usr
alkönyvtárak pedig olyan beillesztési
pontok, melyeket majd az indító/gyökér rendszer lefutása után használunk.
Ezért tehát ezeket az alkönyvtárakat csak létre kell hozni.
A maradék négy alkönyvtár tartalmát a következő bekezdésekben részletezzük.
A /dev
alkönyvtár minden Linux rendszerben használatos eszköz számára
egy-egy különleges állományt tartalmaz. A /dev
alkönyvtár maga hagyományos
alkönyvtár, és az mkdir
paranccsal létre is hozható a már megismert
módon. Az eszközök különleges állományok, így különleges módon kell létrehozni
őket az mknod
paranccsal.
Azonban létezik egy gyosabb módszer is -- másold le a már létező /dev
alkönyvtárad tartalmát, majd töröld le azokat az eszközöket, amikre nincs
szükséged. Az egyetlen szükséges teendő a -R
kapcsoló használata a
különleges eszköz állományok másolásakor. Ez úgy másolja át az alkönyvtárat,
hogy nem próbálkozik az állományok belsejének másolásával. Figyelj nagyon,
hogy nagybetűs R-t használj!. Ha kisbetűs -r
kapcsolót használod,
valószínűleg meg sem állsz a teljes merevlemez-tartalmad átmásolásáig, vagy
legalábbis addig, amíg nem telítődik a lemezed. Ezért légy óvatos, és a következő
utasítást használd:
cp -dpR /dev /mnt
feltéve, hogy a lemezt a /mnt
alkönyvtárba illesztetted. A dp
kapcsoló gondoskodik a szimbolikus láncok láncokként való másolásáról, így
nem a célállományt másolod át, valamint megőrzi az eredetleg használt
attribútumokat, így a tulajdonos információkat is.
Ha a nehezebb utat szeretnéd járni, használd a ls -l
parancsot a
major és minor eszközszámok megjelenítéséhez a másolandó eszközökről,
majd hozd létre őket az mknod
paranccsal a lemezeden.
Habár az eszközöket lemásoltad, megéri leellenőrizni, hogy minden
általad szükségesnek tartott különleges eszköz rákerült-e a biztonsági
helyreállító lemezedre. Például, a szalagos eszközök az ftape
állományt használják, így ha szalagos lemezmeghajtódhoz hozzá szeretnél
férni az indítólemezről, minden ilyen állományt át kell másolnod.
Jegyezzük meg, hogy minden egyes különleges eszköz állományhoz egy-egy
inode-ra van szükség, és az inode nagyon szűkös erőforrás, különösen
lemezen lévő állományrendszereken. Ez szükségessé teszi, hogy minden
szükségtelen eszköz specifikus állományt eltávolíts, csak azokat hagyd meg
a /dev
alkönyvtárban, amikre valóban szükséged lesz. Például
ha nincsenek SCSI lemezeid, minden további nélkül eltávolíthatsz minden
sd
-vel kezdődő eszköz állományt. Hasonlóképpen, ha nem akarsz
soros csatolót használni, minden cua
-val kezdődő eszköz törölhető.
Bizonyosodj meg arról, hogy a következő állományokat csatolod ebből az
alkönyvtárból:
console, kmem, mem, null, ram, tty1
.
Ez az alkönyvtár számos konfigurációs állományt tartalmaz. A legtöbb állományrendszeren ezeket három csoportba sorolhatjuk:
rc, fstab, passwd
.
A lényegtelen állományokat a következő utasítással ismerheted fel:
ls -ltru
Ez a fordított sorrendben kilistázza a legutóbbi hozzáférés szerint rendezve az állományokat, tehát amelyik állományhoz nem volt hozzáférés, le lehet hagyni a gyökér lemezről.
Az én gyökér lemezemen 15 darab konfigurációs állomány található. Ez három csoportra szűkíti a kezelendő állományok halmazát:
rc.d/*
-- rendszerindító és futásszint váltó szkriptekfstab
-- beillesztendő állományrendszerek listájainittab
-- az init
folyamat állományai, az indításkor
elsőként elinduló folyamat.
passwd
-- felhasználók listája, home könyvtárak, stb.group
-- felhasználói csoportok
shadow
-- felhasználók jelszavai. Nem kötelező ezt használnod.
termcap
-- a terminál képesség-adatbázisa.passwd
és a shadow
le kell csupaszítani,
hogy megakadályozd a felhasználói jelszavak lemásolását a rendszerről, és így
amikor lemezről indítod a rendszert, a nemkívánatos bejelentkezéseket
visszautasítja a rendszer.
Győződj meg arról, hogy a passwd
legalább a root
-ot tartalmazza.
Ha szeretnél más felhasználót is beengedni, gondoskodj róla, hogy létezzen a home
könyvtára, és a parancsértelmezője.
termcap
, a terminál adatbázis tipikusan több száz kbyte hosszú. Az
indító/gyökér lemezeden lévő változatot célszerű úgy lecsupaszítani, hogy
csak az általad használt terminál(ok) számára tartalmazzon leírást, ami
általában a linux-console
bejegyzés.
Ezután ténylegesen lét állományt kell konfigurálnom, és meglepően kevés dolgot fognak tartalmazni.
rc
-nek a következőket kellene tartalmaznia:
#!/bin/sh /bin/mount -av /bin/hostname KangarooBizonyosodj meg róla, hogy az alkönyvtárak helyesek. Nem kell a
hostname
-t futtatnod, egyszerűen csak jól
néz ki, ha teszed.
fstab
-nak legalább a következőket kell tartalmaznia:
/dev/ram0 / ext2 defaults /dev/fd0 / ext2 defaults /proc /proc proc defaultsLemásolhatod a már létező
fstab
-od bejegyzéseit, de nem célszerű
automatikusan beillesztened a merevlemezed partícióit. Használd a noauto
kulcsszót esetükben. A merevlemezed sérült, vagy halott is lehet, amikor az
indító lemezt használod.Az inittab
-ot úgy kell megváltoztatnod, hogy a sysinit
sora a rc
-t futtassa, vagy valami alap indító szkriptet használjon.
Emellett, ha biztos akarsz lenni benne, hogy soros portról se tudjanak
felhasználók bejelentkezni, kommentezd ki az összes olyan getty
bejegyzést, ami a sor végén ttys
vagy ttyS
eszközre hivatkozik,
csak a tty
portokat hagyd meg, így csak a konzolon tudsz bejelentkezni.
Egy minimális inittab
állomány például így nézhet ki:
id:2:initdefault: si::sysinit:/etc/rc 1:2345:respawn:/sbin/getty 9600 tty1 2:23:respawn:/sbin/getty 9600 tty2
Az inittab
állomány mondja meg, hogy milyen rendszer fusson a
különböző állapotokban, beleértve az indulást, a több-felhasználós üzemmódba
váltást, stb. Bizonyosodj meg az inittab
-ban hivatkozott állománynevek
helyességéről. Ha az init
nem találja valamely említett programot, az
induló lemez futtatása meg fog állni, és még csak hibaüzenetet sem fogsz
kapni.
Jegyezzük meg, hogy néhány programot nem lehet máshova mozgatni, mert más
programok bedrótozva tartalmazzák a helyét. Például az én rendszeremen
a /etc/shutdown a /etc/reboot-ba van bedrótozva.
Ha reboot
-ot átmozgatom /bin/reboot-ra, és kiadom a
shutdown
parancsot, az nem fog működni, mert nem találja a reboot
állományt.
A többiről annyit, hogy az /etc
alkönyvtáradban levő összes szöveges
állományt egyszerűen csak másold át, és az összes olyan /etc
-beli
összes olyan futtatható állományt, amiről nem tudod biztosan, hogy nem lesz
rá szükség. Támpontot adhat ebben a
Sample rootdisk directory listings
fejezet. Valószínűleg elegendő lesz csak ezokat az állományokat átmásolni, de
sokmindenben különbözhetnek egymástól a Linux rendszerek, tehát nem lehetsz
biztos benne, hogy a te rendszereden ugyanazon állományok halmaza pontosan
egyezik a listában megadott állományokkal. Az egyetlen megbízható megoldás
az, hogy az inittab
-ból kiindulva megvizsgálod, hogy mire van szükség.
A legtöbb mai rendszer a /etc/rc.d/ alkönyvtárat tartalmazza a
különböző futásszintek parancsértelmező szkriptjeinek tárolására. Az alkönyvtár
állhat egyetlen rc
szkriptből is, de talán egyszerűbb átmásolni az
inittab
és az /etc/rc.d alkönyvtárat a már
működő rendszeredről, és kiszedni a rc.d
alkönyvtár szkriptjeiből a
lemezes rendszerkörnyezet számára nem fontos dolgokat.
A /bin
alkönyvtár a megállapodás szerint az alap műveletek elvégzése
szempontjából szükséges extra eszközök tárolóhelye, olyan eszközök találhatóak
itt, mint az ls
, mv
, cat
és a dd
. A
Sample rootdisk directory listings függelékben találsz egy példát a
/bin
alkönyvtár állományairól, illetve az /sbin
alkönyvtár
tartalmáról. Ez nem tartalmaz minden mentéshez és mentésből való visszaállításhoz
szükséges eszközt, mint például a cpio
, tar
és gzip
parancsok,
mert az indító/gyökér lemezen való helytakarékosságból külön eszközlemezre
tettem őket. Amikor az indító/gyökér lemez betöltődik, bemásolódik a
memórialemezre, hogy felszabadítsa a lemez meghajtót másik lemez beillesztéséhez,
ami esetünkben az eszköz lemez lesz. Általában én ezt az /usr
alkönyvtárba
illesztem be.
Az eszköz lemez készítését ebben a fejezetben olvashatod a Building a utility disk bekezdésben. Minden bizonnyal célszerű eltenni egy biztonsági másolat készítése esetén az ehhez használt biztonsági mentő eszközöket, hogy ne kelljen időt pazarolnod olyan verziók telepítésére, amik esetleg nem is olvasság a biztonsági mentéseket tartalmazó szalagokat, lemezeket.
Győződj meg róla, hogy csatoltad-e a következő programokat:
init
, getty
vagy ezzel egyenértékű program, login
,
mount
, valamelyik az rc szkriptjeidet futtatni tudó parancsértelmező,
az sh
-ból a parancsértelmezőre mutató lánc.
A /lib
alkönyvtárban tárolhatod a szükséges osztott eljáráskönyvtárakat
és a betöltőket. Ha a szükséges eljáráskönyvtárak nem találhatóak a /lib
alkönyvtárban, akkor a rendszer nem fog tudni elindulni. Ha szerencséd van,
láthatsz olyan hibaüzenete, ami utal arra, hogy miért is nem tudott elindulni
a rendszered.
Majdnem minden programnak szüksége van legalább a libc
eljáráskönyvtárra,
libc.so.N
, ahol az N az aktuális verziószám.
Nézd meg a /lib
alkönyvtárad. A libc.so.N
valószínűleg
csak egy szimbolikus lánc, ami egy teljes verziószámú állományra mutat:
% ls -l /lib/libc*
-rwxr-xr-x 1 root root 4016683 Apr 16 18:48 libc-2.1.1.so*
lrwxrwxrwx 1 root root 13 Apr 10 12:25 libc.so.6 -> libc-2.1.1.so*
Ebben az esetben a libc-2.1.1.so
-ra van szükséged. Ahhoz, hogy
megtudd, melyik eljáráskönyvtárakra van még ezen kívül szükséged, meg kell
nézned, hogy a csatolni kívánt binárisoknak mik a függőségeik. A
függőségek ellenőrzését az ldd
paranccsal tudod
leellenőrizni. Például:
% ldd /sbin/mke2fs libext2fs.so.2 => /lib/libext2fs.so.2 (0x40014000) libcom_err.so.2 => /lib/libcom_err.so.2 (0x40026000) libuuid.so.1 => /lib/libuuid.so.1 (0x40028000) libc.so.6 => /lib/libc.so.6 (0x4002c000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Minden jobboldalon szereplő állományra szükség van. Az állomány lehet szimbolikus lánc is.
Jegyezzük meg, hogy néhány eljáráskönyvtár elég nagy, és nem
könnyen fog ráférni a gyökér lemezedre. Például a fent is említett
libc.so
közel 4 mega. Valószínűleg meg kell nyírbálnod az
eljáráskönyvtárakat, amikor a gyökér lemezre másolod őket. Nézd meg
a
Reducing root filesystem size fejezetet,
hogy ezt hogyan teheted meg.
A /lib
alkönyvtárban az eljáráskönyvtárak betöltőjét is
csatolnod kell. A betöltő lehet egyrészt ld.so
(a.out
eljáráskönyvtárakhoz), vagy ld-linux.so
(ELF eljáráskönyvtárakhoz).
Az ldd
újabb változatai pontosan meg is mondják, hogy melyik
betöltőkre van szüksége az eljáráskönyvtárnak, mint a fenti
példában is láthattad, de régebbi verziók esetleg nem adják ezt
meg. Ha nem vagy biztos benne, hogy melyikre van szükséged,
futtasd a file
parancsot az eljáráskönyvtárra. Például:
% file/lib/libc.so.4.7.2 /lib/libc.so.5.4.33 /lib/libc-2.1.1.so /lib/libc.so.4.7.2: Linux/i386 demand-paged executable (QMAGIC), stripped /lib/libc.so.5.4.33: ELF 32-bit LSB shared object, Intel 80386, version 1, stripped /lib/libc-2.1.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1, not stripped
A QMAGIC
jelzi, hogy a 4.7.2
-esek az a.out eljáráskönyvtáraké,
az ELF
jelzi, hogy a 5.4.33
-esek és a 2.1.1
-ek az ELF-eké.
Másold a szükséges betöltőkez az építendő gyökérállományrendszerre. Az eljáráskönyvtárakat és a betöltőket gondosan össze kell vetni a csatolt binárisokkal. Ha a kernel nem tudja betölteni a szükséges eljáráskönyvtárat, általában hibaüzenet nélkül azonnal megáll a futása.
A rendszerednek olyan dinamikusan betöltendő eljáráskönyvtárakra is szüksége lehet, amiket a ldd nem mutat meg.
Ha a rendszered PAM-ot (Pluggable Authentication Modules: Beilleszthető Hitelesítő Modul) használ, néhány külön intézkedést kell végezned az indítólemezeden ehhez, különben nem fogsz tudni bejelentkezni. A PAM röviden egy kifinomult, moduláris felépítésű módszer a felhasználók hitelesítésére és a szolgáltatásokhoz való hozzáférésük szabályozására. A legegyszerűbben úgy tudod kideríteni, hogy a rendszered használ-e PAM-ot, ha megnézed a merevlemezed /etc alkönyvtárát, hogy találsz-e benne pam.conf nevű állományt, vagy pam.d nevű alkönyvtárt. Ha bármelyik létezik, minimális PAM támogatásról gondoskodnod kell. (Másik lehetőség, ha lefuttatod az ldd-t a login állományodra. Ha a kimenet tartalmazza a libpam.so állományt, szükséged van a PAM-ra.)
Szerencsére a biztonság betöltő lemezek esetében nem kulcsfontosságú tényező, mivel bárki, akinek fizikai hozzáférése van a géphez gyakorlatilag úgyis bármit megtehetne. Ezért gyakorlatilag le is tilthatod a PAM-et egy egyszerű /etc/pam.conf állomány létrehozásával a gyökér lemezeden, ami így néz ki:
OTHER auth optional /lib/security/pam_permit.so OTHER account optional /lib/security/pam_permit.so OTHER password optional /lib/security/pam_permit.so OTHER session optional /lib/security/pam_permit.so
Valamint másold le a /lib/security/pam_permit.so
állományt a gyökér állományrendszeredre. Ez az eljáráskönyvtár
körülbelül 8K, tehát minimális többletet jelent csak.
Jegyezzük meg, hogy ez a konfiguráció bárkinek teljes hozzáférést biztosít a gépeden levő összes állományhoz és szolgáltatáshoz. Ha valami miatt lényeges számodra az indítólemezed biztonsága, néhány, vagy az összes merevlemezeden lévő PAM beállítást a gyökér állományrendszeredre kell másolnod. Ehhez gondosan tanulmányozd át a PAM dokumentációját, és másolj át minden szükséges eljáráskönyvtárt a /lib/security alkönyvtárból a gyökér állományrendszeredre.
Az indítólemezedre rá kell tenned még a /lib/libpam.so állományt is, de már tudod, mivel futtattad a /bin/login-ra az ldd-t, hogy melyiket a megjelenített függőség alapján.
Ha glibc-t (azaz libc6) használsz, külön kell foglalkoznod a név szolgáltatásokkal, vagy nem fogsz tudni bejelentkezni. Az /etc/nsswitch.conf állomány szabályozza a különböző szolgáltatásokhoz szükséges adatbázis fellapozásokat. Ha nem tervezel más hálózatok szolgáltatásaihoz való hozzáférést (pl. DNS vagy NIS feloldás), csak egy egyszerű nsswitch.conf állományt kell előkészítened, ami így néz ki:
passwd: files shadow: files group: files hosts: files services: files networks: files protocols: files rpc: files ethers: files netmasks: files bootparams: files automount: files aliases: files netgroup: files publickey: files
Ez azt mondja meg, hogy minden szolgáltatást csak helyi állományok
biztosítanak. Csatolnod kell a /lib/libnss_files.so.1
állományt is, ami dinamikusan fog betöltődni, hogy az állomány
feloldásokat kezelje.
Ha hálózathoz való hozzáférést is tervezel az indítólemezedről,
akkor gondosabban kidolgozott nsswitch.conf állományra
lesz szükséged. Nézd meg az nsswitch manuál oldalt a
részletekért. Tartsd észben, hogy minden szolgáltatáshoz,
amit csatolsz, szükséged van a /lib/libnss_
szolgáltatás.so.1
-ra.
Ha moduláris kerneled van, össze kell szedned, hogy a lemezed rendszerindítás
után mely modulokat szeretnéd betölteni. Esetleg szeretnéd mellékelni az
ftape
és zftape
modulokat, ha mentő szalagos egységeid vannak,
modulokat az SCSI eszközeid számára, ha vannak, és valószínűleg modulokat a
PPP vagy SLIP támogatáshoz, ha szeretnél vészhelyzet esetén is hálózati
hozzáférést.
Ezekez a modulokat a /lib/modules alkönyvtárban helyezheted el.
Célszerű még az insmod
, rmmod
és az lsmod
parancsokat is
mellékelned. Ha automatikusan betöltődő modulokat szeretnél, mellékeld a
modprobe
, depmod
és a swapout
programokat is. Ha kerneld
-t
használsz, az /etc/conf.modules-el együtt kell a lemezre tenned.
Mégis, a modulok használatának legfőbb előnye abban van, hogy a nem kritikus modulokat átpakolhatod az eszközlemezre, és szükség esetén betöltheted, így kevesebb helyet használsz el a gyökér lemezen. Ha több eszközzel kell bajlódnod, jobb megoldásnak kínálkozik a modulok használata, mintha egy hatalmas kernelt készítenél az összes meghajtó szoftverrt belefordítva.
Jegyezzük meg, hogy ahhoz, hogy tömörített ext2 állományrendszerről rendszert indíthass, a memórialemezt és az ext2 támogatást bele kell fordítanod a kernelbe. Nem lehet őket modulként mellékelni.
Néhány rendszerprogram, mint például a login
, problémázik, ha nem
létezik a /var/run/utmp állomány és a /var/log
alkönyvtár.
Így:
mkdir -p /mnt/var/{log,run} touch /mnt/var/run/utmp
Végül, miután összeszedted az összes szükséges eljáráskönyvtárt,
futtasd az ldconfig
programot, hogy újrageneráld az /etc/ld.so.cache
állományt a gyökér állományrendszeren. A cache megadja a betöltőnek,
hogy hol találj az eljáráskönyvtárakat. Az ld.so.cache
újragenerálásához a következő parancsot kell kiadnod:
chdir /mnt; chroot /mnt /sbin/ldconfig
A chroot
szükséges, mert az ldconfig
mindig
a gyökér állományrendszer számára generálja újra a cache-t.
Ha végeztél a gyökér állományrendszer összeállításával, csatold le, másold át egy állományba, és tömörítsd be:
umount /mnt dd if=ESZKÖZ bs=1k | gzip -v9 > rootfs.gz
Ha ezzel készen vagy, létrejön a rootfs.gz
állomány, ami
a tömörített gyökér állományrendszered. Ellenőrizd le a
méretét, hogy biztosan ráfér-e egy lemezre. Ha nem, akkor
vissza kell menned, és néhány állományt el kell távolítanod.
A
Reducing root filesystem size
fejezet ad néhány támpontot arra, hogy hogyan tudod csökkenteni
a gyökér állományrendszered méretét.
Ebben a pillanatban már van egy teljes tömörített gyökér állományrendszered. A következő lépés, hogy választasz egy kernelt. A legtöbb esetben lehetőséged van arra, hogy a saját, éppen használatban lévő kerneledet használd, és azzal induljon az indítólemezed. Mégis, van olyan eset, amikor célszerűbb inkább egy külön kernelt készíteni a lemezed számára.
Az egyik ok lehet a méret. Ha egyetlen indító/gyökér lemezt készítesz, a kernel lesz az egyik legnagyobb állomány a lemezen, tehát le kell csökkenteni a kernel méretét amennyire csak lehetséges. Ahhoz, hogy lecsökkentsd a kernel méretét, csak a kívánt rendszer számára minimálisan szükséges szolgáltatásokhoz tegyél bele támogatást. Ez azt jelenti, hogy minden olyan dolgot, amire nincs szükséged, ki kell hagynod belőle. A hálózatot például jó dolog kihagyni belőle, úgy, mint minden olyan lemez meghajtó szoftvert, és egyéb eszközöket, amikre nincs szükség a betöltő/gyökér rendszer futtatásához. Mint korábban is említettem, a kernelednek feltétlenül tartalmaznia kell a memórialemez és az ext2 támogatást.
Miután kitaláltad, hogy mik lesznek a kernelbe befordított minimális szolgáltatások, ki kell találnod, hogy miket kell visszarakni. Valószínűleg a legtöbb átlagos indító/gyökér lemez rendszer használata sérült gyökér állományrendszer vizsgálata és helyreállítása miatt következik be, és ahhoz, hogy ezt megtehesd, kernel támogatásra lehet szükséged. Például, ha olyan szalagon találhatóak a mentéseid, amik Ftape-et használnak a szalagos egységhez való hozzáféréshez, nem fogod tudni helyreállítani a rendszeredet a szalagos mentésedből. Újra kell telepítened a Linux-ot, le kell töltened és újratelepítened az ftape-t, majd ezek után megpróbálhatod olvasni a mentéseidet.
A lényeg, hogy minden a mentéseid elkészítéséhez használt kernel B/K támogatást célszerű az indító/gyökér lemezed kernelébe is belefordítani.
A kernel elkészítésének pontos leírását a kernellel kapott dokumentációban
részletesen megtalálod. Viszonylag könnyű követni, tehát kezdjed az
/usr/src/linux alkönyvtárban a keresést. Ha problémád van
kernel készítéssel, valószínűleg nem is kellene indító/gyökér lemez
készítésével foglalkoznod. Ne felejtsd el tömöríteni a kernelt a
``make zImage
'' paranccsal.
Most már van kerneled és tömörített gyökér állományrendszered. Ha indító/gyökér lemezt készítesz, nézd meg a méretüket, és bizonyosodj meg arról, hogy rá fognak-e együtt férni egy lemezre. Ha két lemezes indító+gyökér készletet készítesz, nézd meg a gyökér állományrendszert, hogy ráfér-e egyetlen lemezre.
El kell döntened, hogy LILO-t használsz-e a kernel indítólemez betöltéséhez.
Másik megoldás lehet a kernel közvetlenül egy lemezre másolása, és LILO
nélküli indítása. A LILO használatának előnye a kernel számára átadható
paraméterekben rejlik, amik esetleges hardver inicializálásokhoz
szükségesek lehetnek (nézd meg az /etc/lilo.conf állományt
a rendszereden. Ha tartalmaz olyan sorokat, amikben szerepel az
``append=...
'', akkor valószínűleg szükséged lesz erre a lehetőségre.).
A LILO használatának hátránya, hogy megbonyolítja az indítólemez
készítését, és egy kicsit több helyet foglal. Egy kis elkülönített
állományrendszert kell összeállítanod, amit kernel állományrendszernek
hívunk, és ide kell a kernelt, és néhány a
LILO számára szükséged állományt másolnod.
Ha LILO-t fogsz használni, olvasd tovább, ha a kernelt közvetlenül a lemezre fogod másolni, akkor ugorj tovább a Without using LILO fejezetre.
Az első teendő, hogy létre kell hozni egy kis konfigurációs állományt a LILO számára. Így kell kinéznie:
boot =/dev/fd0 install =/boot/boot.b map =/boot/map read-write backup =/dev/null compact image = KERNEL label = Bootdisk root =/dev/fd0
A paraméterek magyarázatához nézd meg a LILO felhasználói dokumentációját.
Valószínűleg szeretnéd a merevlemezed /etc/lilo.conf
állományából hozzáadni az append=...
-t tartalmazó sorokat ehhez az
állományhoz.
Mentsd el ezt az állományt bdlilo.conf
néven.
Most létre kell hoznod egy kis állományrendszert, amit kernel állományrendszernek hívunk, hogy megkülönböztethessük a gyökér állományrendszertől.
Először meg kel nézni, hogy milyen nagynak kell lennie ennek az
állományrendszernek. Vedd a kerneled blokkokban vett méretét
(ezt a méretet mutatja a ``ls -l KERNEL
'', amit 1024-el
kell elosztani, majd felfele kerekíteni), és adj hozzá 50-et.
Ötven blokk körülbelül elég lesz az indode-k és néhány egyéb
állomány számára. Pontosan is kiszámíthatod ezt a számot, ha
szeretnéd, vagy egyszerűen használj csak 50-et. Ha két lemezes
készletet készítesz, felül is becsülheted a szükséges helyet,
mivel az első lemezen csak a kernelt fogod úgyis tárolni.
Ezt a számot KERNEL_BLOKK
-nak hívjuk.
Helyezz egy lemezt a meghajtóba (az egyszerűség kedvéért feltételezzük, hogy ez az eszköz a /dev/fd0), és készíts rajta ext2 kernel állományrendszert:
mke2fs -i 8192 -m 0 /dev/fd0 KERNEL_BLOKK
Az ``-i 8192
'' mondja meg, hogy egy inode legyen minden 8192
byte-on.
Ezután beillesztheted az állományrendszert, távolítsd el a
lost+found
alkönyvtárat és hozz létre a dev
és a boot
alkönyvtárakat a LILO számára:
mount /dev/fd0 /mnt rm -rf /mnt/lost+found mkdir /mnt/{boot,dev}
Ezután hozd létre a /dev/null és a /dev/fd0
eszközöket. Ahelyett, hogy nekiállnál eszközszámokat keresni, egyszerűen
másold át őket a merevlemezedről -R
:
cp -R /dev/{null,fd0} /mnt/dev
A LILO-nak szüksége van egy másolatra az indító betöltőjéhez, a boot.b
-re,
amit lemásolhatsz a merevlemezedről, amit általában a /boot
könyvtárban
találsz.
cp /boot/boot.b /mnt/boot
Végül másold át az előző fejezetben elészített LILO konfigurációs állományt a kerneleddel együtt. Mindkettőt a gyökér alkönyvtárba teheted:
cp bdlilo.conf KERNEL /mnt
A LILO-hoz szükséges összes állomány most már a kernel állományrendszeren van,
tehát készen állsz rá, hogy lefuttasd. A LILO-nak az -r
paraméterrel
mondhatjuk meg, hogy más gyökérrel telepítse az indító betöltőt:
lilo -v -C bdlilo.conf -r /mnt
A LILO-nak hiba nélkül le kell futnia, miután a kernel állományrendszernek valahogy így kell kinéznie:
total 361 1 -rw-r--r-- 1 root root 176 Jan 10 07:22 bdlilo.conf 1 drwxr-xr-x 2 root root 1024 Jan 10 07:23 boot/ 1 drwxr-xr-x 2 root root 1024 Jan 10 07:22 dev/ 358 -rw-r--r-- 1 root root 362707 Jan 10 07:23 vmlinuz boot: total 8 4 -rw-r--r-- 1 root root 3708 Jan 10 07:22 boot.b 4 -rw------- 1 root root 3584 Jan 10 07:23 map dev: total 0 0 brw-r----- 1 root root 2, 0 Jan 10 07:22 fd0 0 crw-r--r-- 1 root root 1, 3 Jan 10 07:22 null
Ne aggódj, ha az állományok méretei egy kicsit eltérnek nálad.
Most hagyd a lemezt a meghajtóban, és folytasd a Setting the ramdisk word fejezettel.
Ha nem LILO-t használsz, a dd
utasítással másold át a kernelt
az indítólemezre:
% dd if=KERNEL of=/dev/fd0 bs=1k 353+1 records in 353+1 records out
Ebben a példában a dd
353 teljes rekordot + 1 részleges rekordot
írt, így a kernel a lemez első 354 blokkját foglalja el. Ezt a
számot KERNEL_BLOKK
-nak hívjuk, és a következő fejezetben
használni fogjuk.
Végül állítsd be a gyökér eszköznek magát a lemezt, majd állítsd be a gyökeret írható/olvasható betölthetőre:
rdev /dev/fd0 /dev/fd0 rdev -R /dev/fd0 0
Légy óvatos, a második rdev
utasításnál nagybetűt használj az
-R
kapcsoló esetén.
A kernel image belsejében van a memórialemez szó,
ami megadja, hogy hol található a gyökér állományrendszer, több
más paraméterrel együtt. A szó az rdev
utasítással érhető
el, és a következőképpen kell értelmezni:
bits 0-10: Offset to start of ramdisk, in 1024 byte blocks bits 11-13: unused bit 14: Flag indicating that ramdisk is to be loaded bit 15: Flag indicating to prompt before loading rootfs
Ha a 15. bit be van állítva, induláskor új lemez meghajtóba tételére szólít fel a rendszer. Erre a kétlemezes indító készlet esetén van szükség.
Két eset lehetséges, attól függően, hogy egy indító/gyökér lemezt készítesz, vagy kétlemezes ``indító+root'' lemezkészletet.
KERNEL_BLOKK
-al) fog mutatni.
A 14. bit 1, a 15. nulla.
Például, tegyük fel, hogy egy lemezt készítesz, és a gyökér állományrendszer
a 253. (decimális) blokknál kezdődik. A memórialemez szó értékének 253-nak
(decimális) kell lennie, a 14. bitet 1-re, a 15. bitet 0-ra kell állítani.
Ahhoz, hogy kiszámítsd az értéket, egyszerűen csak össze kell adnod a
decimális számokat. 253 + 2^14 = 253 + 16384 = 16637. Ha nem érted, hogy
honnan jönnek ezek a számok, üsd be őket egy tudományos számológépbe, és
alakítsd át binárissá.
Miután gondosan kiszámítottad a memórialemez szó értékét, állítsd be
az rdev -r
paranccsal. Figyelj rá, hogy a decimális értéket
használd. Ha LILO-t használtál, az rdev
paraméterének a beillesztett
kernel útvonalat kell használnod, pl. /mnt/vmlinuz
, ha
dd
-vel másoltad a kernelt, használd inkább a lemez eszköz nevét
(pl., /dev/fd0
).
rdev -r KERNEL_VAGY_FLOPPY_MEGHAJTÓ ÉRTÉK
Ha LILO-t használtál, most lecsatolhatod a lemezt.
A legutolsó lépés a gyökér állományrendszer átvitele.
dd
paranccsal vidd át, és használd a seek
kapcsolót, ami megadja, hogy hány blokkot kell kihagynia:
dd if=rootfs.gz of=/dev/fd0 bs=1k seek=KERNEL_BLOKK
dd if=rootfs.gz of=/dev/fd0 bs=1k
Gratulálok, készen vagy! Mindig célszerű letesztelned az indítólemezed, mielőtt félreteszed vészhelyzet esetére! Ha hibás a betöltés, olvass tovább.
Amikor indítólemezeket készítesz, az első néhány próba esetén valószínűleg nem fog indulni. A gyökér lemezt egy általános megközelítés szerint a már létező rendszered komponenseiből célszerű összeállítanod, és próbálj meg addig eljutni, hogy a lemez-alapú rendszered üzeneteket jelenít meg a konzolon. Ha már elkezd veled beszélgetni, a csatát félig megnyerted, mert már láthatod, hogy miről van szó, és kijavíthatod a felmerülő különálló problémákat, amíg a rendszer zökkenőmentesen nem működik. Ha a rendszer minden magyarázat nélkül áll meg, a hiba okát megtalálni elég nehéz. Ahhoz, hogy a rendszer addig eljusson, amikor már kommunikál veled, több fontos komponens jelenlétére, és helyes konfigurálásra van szükség. Amikor a rendszer nem beszél hozzád, a probléma kivizsgálásának ajánlott eljárása a következő:
Kernel panic: VFS: Unable to mount root fs on XX:YYEz gyakori probléma, és csak néhány oka lehet. Először, ellenőrizd az XX:YY eszközt az eszközök kódjának listájában, ez a helyes gyökér eszköz? Ha nem, valószínűleg nem futtattad az
rdev -R
parancsot,
vagy rossz image-re alkalmaztad. Ha az eszközkód helyes, gondosan
ellenőrizd a kernelbe fordított eszközmeghajtó szoftvereket. Győződj
meg róla, hogy szerepel-e floppy lemez, memória meghajtó és ext2
állományrendszer.
/bin
a gyökér lemezeden.
/lib
alkönyvtárában láthatsz.
/dev
alkönyvtárában
lévő szimbolikus láncok léteznek-e a gyökérlemez állományrendszereden,
ahol a láncok olyan eszközre mutatnak, melyek léternek a gyökér lemezeden
is. Néhány esetben a /dev/console
láncok fontosak lehetnek.
/dev/tty1, /dev/null, /dev/zero,
/dev/mem, /dev/ram
és /dev/kmem
állományokat.
Ha ezeket az általános dolgokat megvizsgáltad, íme néhány konkrétabb állomány, amit ellenőrizhetsz.
init
-et /sbin/init vagy
/bin/init néven mellékelted. Ellenőrizd, hogy futtatható-e.
ldd init
-et, hogy ellenőrizd az init eljáráskönyvtárait.
Általában ez csak a libc.so
, de azért csak ellenőrizd. Bizonyosodj meg róla,
hogy mellékelted az összes eljáráskönyvtárat és a betöltőket.
ld.so
-t az a.out-hoz, vagy ld-linux.so
-t
az ELF-hez.
getty
(vagy valami getty
-szerű program, mint a
agetty
, mgetty
vagy getty_ps
) programhívásokat.
Kétszer is hasonlítsd össze ezeket a merevlemezeden lévő inittab
-bal.
Nézd meg az általad használt program manuálját, hogy egyáltalán értelmes
dolgok vannak-e benne. Az inittab
valószínűleg a legtrükkösebb rész,
mert a szintakszis, és a tartalom az általad használt init programtól és
a rendszer természetétől függ. Az egyetlen lehetőség, hogy megbirkózz vele,
ha elolvasod az init
és inittab
programokra vonatkozó manuál
oldalakat, valamint pontosan megvizsgálod, hogy mit is csinál a rendszered
induláskor. Ellenőrizd, hogy az /etc/inittab-nak van-e
inicializáló bejegyzése. Ennek a rendszer inicializáló szkript végrehajtására
kell utasítást tartalmaznia, és a szkriptnek is léteznie kell.
init
-nél, futtasd az ldd
-t a getty
-dre is,
hogy lássad, mi szükséges hozzá, és hogy meggyőződhess róla, hogy a szükséges
eljáráskönyvtár-állományokat és betöltőket elhelyezted a gyökér állományrendszereden.
bash
vagy
ash
), mely képes futtatni az rc szkriptjeidet.
Ha az init
elindul, de a következő üzenetet kapod:
Id xxx respawning too fast: disabled for 5 minutes
az az init
-ből jön, általában azt jelzi, hogy a getty
vagy
login
az elindulása után közvetlenül meg is hal.
Ellenőrizd a getty
és a login
futtatható állományokat és az
eljáráskönyvtárakat, amiktől függenek. Nézd meg, hogy a /etc/inittab
állománybeli meghívásuk helyes-e. Ha szokatlan üzeneteket kapsz a getty
-től,
az jelentheti azt, hogy hibásan hívod a /etc/inittab-ból.
A getty paraméterei változnak, még az agetty
különböző verziói
között is számos inkompatibilis hívásformát jeleztek.
Ha megkapod a bejelentkező promptot és érvényes felhasználói nevet adsz meg, de a rendszer azonnal egy újabb felhasználói név megadását kéri, a probléma valószínűleg a PAM-mal vagy az NSS-el lesz. Nézd meg a PAM and NSS fejezetet. A probléma származhat még abból is, hogy shadow jelszavakat használsz, de nem másoltad át az indítólemezedre a /etc/shadow állományt.
Ha megpróbálsz néhány futtatható állományt lefuttatni, mint például a df
parancsot, ami megtalálható a mentő lemezeden, és ilyen üzenetet kapsz:
df: not found
(a df nem található), két dolgot nézz meg:
(1) Győződj meg róla, hogy a binárist tartalmazó alkönyvtár szerepel a PATH
elérési útvonalban, és
(2) Győződj meg róla, hogy a program számára szükséges eljáráskönyvtárak
(és betöltők) rendelkezésedre állnak-e.
Előfordul, hogy a gyökér állományrendszer túl nagy, hogy ráférjen egy lemezre, még tömörítés után is. Létezik néhány módszer az állományrendszer méretének csökkentésére, amit a hatékonyság szerint csökkenő sorrendben bemutatunk:
Alapértelmezés szerint a formázott floppy lemezek 1440K méretűek, de nagyobb sűrűségre is formázhatók. Az fdformat a következő formátumokra képes a lemezeid megformázni: 1600, 1680, 1722, 1743, 1760, 1840, és 1920. A legtöbb 1440K-s meghajtó támogatja az 1722K-t, ezért ez az indítólemezek által használt formátum. Nézd meg a fdformat manuált és a /usr/src/linux/Documentation/devices.txt-t.
A Linux néhány népszerű parancsértelmezője,
mint a bash
és a tcsh
, nagy és sok eljáráskönyvtárat igényel.
Léteznek könnyű súlyú alternatív parancsértelmezők, mint az ash
,
lsh
, kiss
és a smash
, amik jóval kisebbek és nagyon kevés
(vagy egy sem) eljáráskönyvtárat idényelnek. Ezek legtöbbjét az következő
címen találod:
http://metalab.unc.edu/pub/Linux/system/shells/
Győződj meg róla, hogy az általad használni kívánt parancsértelmező képes-e
futtatni az összes rc
-beli állományt, amit csatolni szeretnél az
indítólemezedre.
A legtöbb eljáráskönyvtár
és bináris nincs megnyirbálva (debug információt is tartalmaznak). A
'file
' programot lefuttatva ezekre az állományokra
megtudod, hogy 'not stripped (nincs megnyírbálva)
', vagy mégis.
Amikor binárisokat másolsz a gyökér állományrendszeredre, jó ötleg a
következőket használnod:
objcopy --strip-all HONNAN HOVÁ
Amikor eljáráskönyvtárt másolsz, használd a következőt:
objcopy --strip-debug HONNAN HOVÁ
Ha valamely binárisra nincs szükség közvetlenül a rendszerindításkor, vagy a bejelentkezéskor, átteheted az eszközlemezre. Nézd meg a Building a utility disk fejezetet a részletekért. Elgondolkodhatsz a modulok eszközlemezre való áthelyezéséről is.
A Building a root filesystem fejezet megmutatta, hogy hogyan készíthetsz tömörített gyökér állományrendszert, ami a rendszer indulásakor a memórialemezre töltődik. Sok előnye van ennek a technikának, így előszeretettel használják. Azonban néhány kevés memóriával rendelkező rendszer esetén nincs elegendő RAM ehhez, így közvetlenül a lemezről kell használnia a beillesztett gyökér állományrendszert.
Az ilyen állományrendszereket pillanatnyilag könnyebb elkészíteni, mint a tömörített gyökér állományrendszereket, mert közvetlenül a lemezen elkészíthetők, nem kell más eszközt használni, és nem kell őket tömöríteni. Megmutatjuk, hogy ennek elkészítése hol különbözik a korábban ismertetett eljárástól. Ha ezt választod, tartsd észben, hogy sokkal kevesebb helyet tudsz majd használni.
mke2fs
-t, hogy megfelelő méretű gyökér állományrendszert
készíthess a lemezen.
rdev
's parancsot a fent leírt módon.
Több gyorsítást eszközölhetsz. Ha két-lemezes készletet készítesz, az egész gyökér állományrendszert elkészítheted a második lemezen, nem kell átmozgatnod merevlemezre lemez állományba, majd vissza. Ezenkívül ha egylemezes indító/gyökér lemezt készítesz és LILO-t használsz, készíthetsz a lemezen egyetlen állományrendszert, mely tartalmazza a kernelt, a LILO állományait és a gyökér állományokat, majd egyszerűen lefuttatod a LILO-t az utolsó lépésben.
Eszközlemezt készíteni viszonylag könnyű -- egyszerűen készíts állományrendszert egy formázott lemezre, majd másolj állományokat rá. Ahhoz, hogy indítólemezzel használhasd, illeszd be kézzel a rendszer elindulása után.
A fentebb említett utasításokban említettük, hogy az eszközlemezt a
/usr
-be illesztve is használhatjuk. Ebben az esetben a
binárisokat a /bin
alkönyvtárba kell tenni az eszköz lemezeden,
hogy a path-ban levő /usr/bin megtalálja őket. Egyéb az
eszköz lemezen elhelyezett binárisokhoz szükséges eljáráskönyvtárakat
a /lib
alkönyvtárba kell tenned az eszközlemezen.
Több fontos dolgot észben kell tartanod, amikor eszközlemezt tervezel:
A
Sample utility disk directory listing függelékben
találsz példát az eszközlemezre. Íme néhány hasznos ötlet az állományokat illetően:
lemez vizsgáló és manipuláló programok (format, fdisk
), állományrendszer
vizsgáló és manipuláló programok (mke2fs, fsck, debugfs, isofs.o
), kicsi
szövegszerkesztő (elvis, jove
), tömörítő és archiváló eszközök (gzip, tar, cpio, afio
), szalag eszközök (mt, tob, taper
), kommunikációs eszközök
(ppp.o, slip.o, minicom
) és eszközkezelő szerszámok (setserial, mknod
).
Valószínűleg észrevetted már, hogy a fontosabb disztribúciókhoz mellékelt indítólemezek, mint például a Slackware, RedHat vagy Debian, sokkal kidolgozottabbak, mint ahogy ebben a dokumentációban bemutatjuk. A professzionális disztribúciós lemezek néhány itt nem említett alapelven nyugszik, és több különböző trükköt is bevetnek, mert különleges szükségleteik vannak. Előszöris, széles hardver választékon kell üzemelniük, tehát együtt kell működnie a felhasználóval és különböző eszköz meghajtókat kell betöltenie. Másodszor fel kell készíteni őket különböző telepítési lehetőségepkre, különböző fokú automatizálással. Végül a disztribúciós lemezeket gyakran mentő lemez képességekkel is felruházzák.
Néhány indítólemezt initrd (initial ramdisk: kezdeti memórialemez)
funkcióval látnak el. Ezt a képességet a 2.0.x-es kernelverzió környékén
vezették be, és lehetővé teszi a kernel két fázisú betöltését. Amikor először
elindul a kernel, betölti a keztedi memórialemezt image-t az indítólemezről.
Ez a kerdeti memórialemez a gyökérlemez, ami olyan programokat tartalmaz, amik
a valódi gyökér állományrendszer betöltődése előtt lefutnak. Ezek a programok
gyakran a környezetet vizsgálják, és/vagy megkérdezik a felhasználók különböző
indító lehetőségekről, mint például melyik eszközről töltse be a valódi gyökér
állományrendszert. Ezek a programok töltik be általában a kernelbe be nem
épített modulokat. Amikor a kezdeti program kilép, a kernel betölti a valódi
gyökér állományrendszer, és hagyományos módon folytatódik a rendszerindításl.
Az initrd
-vel kapcsolatos részletesebb információkért nézd meg a
/usr/src/linux/Documentation/initrd.txt és a
ftp://elserv.ffm.fgan.de/pub/linux/loadlin-1.6/initrd-example.tgz
címeket.
A következő összefoglalja, hogyan működnek a különböző disztribúciók telepítő lemezei, az állományrendszer vizsgálatára és/vagy forráskódra alapozva. Nem garantáljuk, hogy tökéletesen teljes információval szolgálhatunk, vagy hogy nem változtak a legutóbbi verzióváltás óta.
A Slackware (v.3.1) nyíltan LILO-t használ, hasonlóan a
Transferring the kernel with LILO fejezetben bemutatotthoz. A
Slackware indítólemez indításkor a LILO message
paraméterét használva
egy ``Welcome to the Slackware Linux bootkernel disk!
'' üzenettel
fogad (Üdvözöllek a Slackware Linux kernelindító lemezén!
). Ezzel
hívja fel a felhasználót arra, hogy írja be szükség esetén az indító
paramétereket. Miután elindult a rendszer, a második lemezről betöltődik a
gyökér állományrendszer. A felhasználó meghív egy setup
szkriptet,
amivel el is kezdődik a telepítés. A Slackware nem moduláris kernelt használ,
hanem több különböző kernelt használ. A felhsználónak kell kiválasztania,
melyik az a kernel, ami a lehető legjobban illeszkedik a rendszeréhez.
A RedHat (v.4.0) szintén LILO alapú indítást használ. Az első lemezről
betölt egy tömörített memórialemezt, ami egyedi init
programot
futtat. Ez a program lekérdezi a meghajtóprogramokat, majd szükség
esetén egyéb állományokat tölt be a kiegészítő lemezről.
A Debian (v.1.3) valószínűleg a legkifinomultabb telepítő lemezkészlet.
A SYSLINUX betöltőt használja különböző betöltő kapcsolókkal, majd
az initrd
-t használja, hogy végigvezesse a felhasználót
a telepítés lépésein. Úgy tűnik, hogy egyaránt egyedi init
-et és
egyedi parancsértelmezőt használ.
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:
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.
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:
reboot
-ot a /etc
alkönyvtárba kell tenni.
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.
Ha újraírsz egy csomagot, mindig a legfrisebb változatot szerezd be, ha nincs jó indokod másként cselekedni.
Ezek a disztribúciós lemezek forrásai. Légyszíves tükör szervert használj a letöltéskor, hogy csökkentsd ezen gépek terheltségét.
A disztribúciós lemezek mellett a következő mentő lemezeket használhatod. Ha máshogy nem rendelkeztek, a http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html alkönyvtárban megtalálod őket.
tomsrtbt
, Tom Oehser készítette, egylemezes indító/gyökér
lemez, 2.0-s kernelre alapozva, széles eszköz és program támogatással.
Támogat IDE, SCSI, szalagos egységeket, hálózati csatolókat, PCMCIA-t,
és így tovább. Kb. 100 eszköz és szerszám programot tartalmaz, beleértve
a lemezek javítására és helyreállítására szolgáló programokat.
A csomag mindemellett szkripteket tartalmaz az image-k szétszedésére és
újragyártására, hogy szükség esetén új dolgokat tehess bele.
rescue02
, John Comyns készítette, ez egy 1.3.84-es kernelre
alapozott mentő lemez, IDE, Adaptec 1542 és NCR53C7,8xx támogatással.
ELF binárisokat használ, de elegendő utasítást tartalmaz, tehát bármely
rendszeren használható. Rendszerindítás után betölthető modul formájában
biztosít más SCSI kártyákhoz támogatást. Valószínűleg 4Mb RAM-mal rendelkező
rendszereken nem fog működni, hiszen 3Mb-s memórialemezt használ.
resque_disk-2.0.22
, Sergei Viznyuk készítette, ez
egy teljes értékű indító/gyökér lemez, 2.0.22-es kernelre alapozva,
beépített IDE és több különböző SCSI vezérlő támogatással, ELF és AOUT
binárisokkal. Több modult, hasznos eszközt tartalmaz merevlemezek
javítására és helyreállítására.
cramdisk
image-k, 2.0.23-as kernelre alapozva, 4 és 8 Mb
memóriával rendelkező gépek számára. Belefordítottak matematikai
társprocesszor emulációt és hálózatozást (PPP és betárcsázó szkriptek,
NE2000, 3C509) és párhuzamos csatolófelületes ZIP meghajtó támogatást is.
Ezek a lemezek 4Mb RAM-mal rendelkező 386-on elindulnak. MSDOS támogatást
is beillesztettek, így DOS partícióra is letölthetsz hálózatról.
Jónéhány mentő lemez készítésére alkalmas csomagot találsz a metalab.unc.edu címen. Ezekkel a csomagokkal megadod, hogy mely állományokat szeretnéd csatolni, és a szoftver automatizálja (változó mélységben) az indítólemez készítését. Nézd meg a http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html címet további információkért. Gondosan ellenőrizd az állományok dátumát -- néhány ilyen csomagot jóideje nem frissítettek, és nem támogatja a memóriába töltődő tömörített gyökér állományrendszer készítését. A legjobb tudomásunk szerint csak a Yard csomag tudja ezt.
Graham Chapman készített egy szkriptcsomagot, ami hasznos példa lehet az indítólemezek készítésére. Eme HOGYAN előző verziójának függelékében szerepeltek a szkriptek, de átkerültek az alábbi honlapra:
http://www.zeta.org.au/~grahamc/linux.html
Kényelmesnek találhatod ezen szkriptek használatát, és ha így van, gondosan olvasd el az utasításokat -- például, ha rossz swap eszközt választasz, úgy találnád, hogy a gyökér állományrendszered teljesen és véglegesen letörlődött. Ügyelj rá, hogy pontosan konfigurálod, mielőtt használod!
Werner Almesberger írta. Nagyon jó indító betöltő, a dokumentációja az indító szektor tartalmáról és az indulási folyamat korai fázisáról is tartalmaz tartalmaz információkat.
Ftp-vel megtalálod a ftp://tsx-11.mit.edu/pub/linux/packages/lilo/ címen, valamint a Metalab-on és a tükrözésein.
Több forrásból is beszerezheted őket. Nézd meg a news.answers
és a comp.os.linux.announce
usenet hírcsoportokat.
A GYIK-et megtalálod a http://metalab.unc.edu/pub/Linux/docs/faqs/linux-faq címent, és a HOGYAN-okat a http://metalab.unc.edu/pub/Linux/docs/HOWTO címen.
A Linux legtöbb dokumentációját megtalálod a A Linux Dokumentációs Project honlapja címen.
Ha végképp kétségbeestél, küldj levelet a mail-server@rtfm.mit.edu
címre, a levél törzse legyen ``help
'', majd kövesd a kapott utasításokat.
Nagyon jó leírást találsz a Linux kernel mellett található dokumentációban az új memórialemez-kód működéséről. Lásd: /usr/src/linux/Documentation/ramdisk.txt. Ezt Paul Gortmaker írta, és tartalmaz egy fejezetet a tömörített memórialemezekről.
A Linux betöltő folyamatának részletesebb ismertetéséhez íme néhány kiindulási pont:
A bootszektor számára tartalmaz assembly kódot.
A kernel kitömörítéséhez tartalmaz kódot.
Ez az alkönyvtár tartalmazza a kernel inicializációs kódját.
A setup.c
tartalmazza a memórialemez szót.
A memórialemez meghajtó szoftverét tartalmazza. A rd_load
és
a rd_load_image
eljárások blokkokat olvasnak egy
eszközről a memórialemezre. Az identify_ramdisk_image
eljárás meghatározza, hogy milyen állományrendszert talált, és tömörítve
van-e.
A Usenet-en gyakran tesznek fel ilyen hibákkal kapcsolatos kérdéseket, tehát nyilvános szolgáltatásként csatoljuk őket. Ez az összefoglaló a http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-u-21.ps.gz címen található Werner Almsberger's LILO User Documentation-ból származik.
Amikor a LILO betölti magát, a ``LILO
'' szót jelzi ki. Minden kiírt betű
néhány specifikus művelet végrehajtása előtt vagy után kerül kiírásra. Ha
a LILO hibázik valahol, a kiírt betűk segítenek a probléma azonosításában.
A LILO egyetlen részét sem sikerült betölteni. A LILO vagy nincs feltelepítve, vagy nem aktív az a partíció, amire telepítve lett.
Az indító betöltő betöltődött, és elindult, de nem tudta betölteni a második szintű indító betöltőt. A kétszámjegyű hibakód jelzi a probléma típusát (lásd még a ``Lemez hibakódokat''). Ez a feltétel általában médium hibára utal, vagy geometria eltérésre (például hibás lemez paraméterek).
Az indító betöltő betöltötte a második szintű indító betöltőt, de nem tudta végrehajtani. Ezt vagy a geometria eltérése okozza, vagy a /boot/boot.b elmozgatása a map telepítő futtatása nélkül.
Az indító betöltő elindult, de nem tudta betölteni a leíró táblát a map állományból. Ezt általában a médium hibája okozza, vagy geometriai eltérés.
Az indító betöltő második fázisa hibás címre töltődött. Ezt tipikusan hibás geometria okozza, vagy a /boot/boot.b elmozgatása a map telepítő futtatása nélkül.
A leíró tábla hibás. Ez lehet egyrészt a geometria hibája, vagy a /boot/map elmozgatásaa map telepítő futtatása nélkül.
All parts of LILO have been successfully loaded.
If the BIOS signals an error when LILO is trying to load a boot image, the
respective error code is displayed. These codes range from 0x00
through
0xbb
. See the LILO User Guide for an explanation of these.
Íme egy példa a gyökér állományrendszerre és egy eszközlemezre.
Gyökér könyvtár:
drwx--x--x 2 root root 1024 Nov 1 15:39 bin
drwx--x--x 2 root root 4096 Nov 1 15:39 dev
drwx--x--x 3 root root 1024 Nov 1 15:39 etc
drwx--x--x 4 root root 1024 Nov 1 15:39 lib
drwx--x--x 5 root root 1024 Nov 1 15:39 mnt
drwx--x--x 2 root root 1024 Nov 1 15:39 proc
drwx--x--x 2 root root 1024 Nov 1 15:39 root
drwx--x--x 2 root root 1024 Nov 1 15:39 sbin
drwx--x--x 2 root root 1024 Nov 1 15:39 tmp
drwx--x--x 7 root root 1024 Nov 1 15:39 usr
drwx--x--x 5 root root 1024 Nov 1 15:39 var
/bin:
-rwx--x--x 1 root root 62660 Nov 1 15:39 ash
-rwx--x--x 1 root root 9032 Nov 1 15:39 cat
-rwx--x--x 1 root root 10276 Nov 1 15:39 chmod
-rwx--x--x 1 root root 9592 Nov 1 15:39 chown
-rwx--x--x 1 root root 23124 Nov 1 15:39 cp
-rwx--x--x 1 root root 23028 Nov 1 15:39 date
-rwx--x--x 1 root root 14052 Nov 1 15:39 dd
-rwx--x--x 1 root root 14144 Nov 1 15:39 df
-rwx--x--x 1 root root 69444 Nov 1 15:39 egrep
-rwx--x--x 1 root root 395 Nov 1 15:39 false
-rwx--x--x 1 root root 69444 Nov 1 15:39 fgrep
-rwx--x--x 1 root root 69444 Nov 1 15:39 grep
-rwx--x--x 3 root root 45436 Nov 1 15:39 gunzip
-rwx--x--x 3 root root 45436 Nov 1 15:39 gzip
-rwx--x--x 1 root root 8008 Nov 1 15:39 hostname
-rwx--x--x 1 root root 12736 Nov 1 15:39 ln
-rws--x--x 1 root root 15284 Nov 1 15:39 login
-rwx--x--x 1 root root 29308 Nov 1 15:39 ls
-rwx--x--x 1 root root 8268 Nov 1 15:39 mkdir
-rwx--x--x 1 root root 8920 Nov 1 15:39 mknod
-rwx--x--x 1 root root 24836 Nov 1 15:39 more
-rws--x--x 1 root root 37640 Nov 1 15:39 mount
-rwx--x--x 1 root root 12240 Nov 1 15:39 mt
-rwx--x--x 1 root root 12932 Nov 1 15:39 mv
-r-x--x--x 1 root root 12324 Nov 1 15:39 ps
-rwx--x--x 1 root root 5388 Nov 1 15:39 pwd
-rwx--x--x 1 root root 10092 Nov 1 15:39 rm
lrwxrwxrwx 1 root root 3 Nov 1 15:39 sh -> ash
-rwx--x--x 1 root root 25296 Nov 1 15:39 stty
-rws--x--x 1 root root 12648 Nov 1 15:39 su
-rwx--x--x 1 root root 4444 Nov 1 15:39 sync
-rwx--x--x 1 root root 110668 Nov 1 15:39 tar
-rwx--x--x 1 root root 19712 Nov 1 15:39 touch
-rwx--x--x 1 root root 395 Nov 1 15:39 true
-rws--x--x 1 root root 19084 Nov 1 15:39 umount
-rwx--x--x 1 root root 5368 Nov 1 15:39 uname
-rwx--x--x 3 root root 45436 Nov 1 15:39 zcat
/dev:
lrwxrwxrwx 1 root root 6 Nov 1 15:39 cdrom -> cdu31a
brw-rw-r-- 1 root root 15, 0 May 5 1998 cdu31a
crw------- 1 root root 4, 0 Nov 1 15:29 console
crw-rw-rw- 1 root uucp 5, 64 Sep 9 19:46 cua0
crw-rw-rw- 1 root uucp 5, 65 May 5 1998 cua1
crw-rw-rw- 1 root uucp 5, 66 May 5 1998 cua2
crw-rw-rw- 1 root uucp 5, 67 May 5 1998 cua3
brw-rw---- 1 root floppy 2, 0 Aug 8 13:54 fd0
brw-rw---- 1 root floppy 2, 36 Aug 8 13:54 fd0CompaQ
brw-rw---- 1 root floppy 2, 84 Aug 8 13:55 fd0D1040
brw-rw---- 1 root floppy 2, 88 Aug 8 13:55 fd0D1120
brw-rw---- 1 root floppy 2, 12 Aug 8 13:54 fd0D360
brw-rw---- 1 root floppy 2, 16 Aug 8 13:54 fd0D720
brw-rw---- 1 root floppy 2, 120 Aug 8 13:55 fd0D800
brw-rw---- 1 root floppy 2, 32 Aug 8 13:54 fd0E2880
brw-rw---- 1 root floppy 2, 104 Aug 8 13:55 fd0E3200
brw-rw---- 1 root floppy 2, 108 Aug 8 13:55 fd0E3520
brw-rw---- 1 root floppy 2, 112 Aug 8 13:55 fd0E3840
brw-rw---- 1 root floppy 2, 28 Aug 8 13:54 fd0H1440
brw-rw---- 1 root floppy 2, 124 Aug 8 13:55 fd0H1600
brw-rw---- 1 root floppy 2, 44 Aug 8 13:55 fd0H1680
brw-rw---- 1 root floppy 2, 60 Aug 8 13:55 fd0H1722
brw-rw---- 1 root floppy 2, 76 Aug 8 13:55 fd0H1743
brw-rw---- 1 root floppy 2, 96 Aug 8 13:55 fd0H1760
brw-rw---- 1 root floppy 2, 116 Aug 8 13:55 fd0H1840
brw-rw---- 1 root floppy 2, 100 Aug 8 13:55 fd0H1920
lrwxrwxrwx 1 root root 7 Nov 1 15:39 fd0H360 -> fd0D360
lrwxrwxrwx 1 root root 7 Nov 1 15:39 fd0H720 -> fd0D720
brw-rw---- 1 root floppy 2, 52 Aug 8 13:55 fd0H820
brw-rw---- 1 root floppy 2, 68 Aug 8 13:55 fd0H830
brw-rw---- 1 root floppy 2, 4 Aug 8 13:54 fd0d360
brw-rw---- 1 root floppy 2, 8 Aug 8 13:54 fd0h1200
brw-rw---- 1 root floppy 2, 40 Aug 8 13:54 fd0h1440
brw-rw---- 1 root floppy 2, 56 Aug 8 13:55 fd0h1476
brw-rw---- 1 root floppy 2, 72 Aug 8 13:55 fd0h1494
brw-rw---- 1 root floppy 2, 92 Aug 8 13:55 fd0h1600
brw-rw---- 1 root floppy 2, 20 Aug 8 13:54 fd0h360
brw-rw---- 1 root floppy 2, 48 Aug 8 13:55 fd0h410
brw-rw---- 1 root floppy 2, 64 Aug 8 13:55 fd0h420
brw-rw---- 1 root floppy 2, 24 Aug 8 13:54 fd0h720
brw-rw---- 1 root floppy 2, 80 Aug 8 13:55 fd0h880
brw-rw---- 1 root disk 3, 0 May 5 1998 hda
brw-rw---- 1 root disk 3, 1 May 5 1998 hda1
brw-rw---- 1 root disk 3, 2 May 5 1998 hda2
brw-rw---- 1 root disk 3, 3 May 5 1998 hda3
brw-rw---- 1 root disk 3, 4 May 5 1998 hda4
brw-rw---- 1 root disk 3, 5 May 5 1998 hda5
brw-rw---- 1 root disk 3, 6 May 5 1998 hda6
brw-rw---- 1 root disk 3, 64 May 5 1998 hdb
brw-rw---- 1 root disk 3, 65 May 5 1998 hdb1
brw-rw---- 1 root disk 3, 66 May 5 1998 hdb2
brw-rw---- 1 root disk 3, 67 May 5 1998 hdb3
brw-rw---- 1 root disk 3, 68 May 5 1998 hdb4
brw-rw---- 1 root disk 3, 69 May 5 1998 hdb5
brw-rw---- 1 root disk 3, 70 May 5 1998 hdb6
crw-r----- 1 root kmem 1, 2 May 5 1998 kmem
crw-r----- 1 root kmem 1, 1 May 5 1998 mem
lrwxrwxrwx 1 root root 12 Nov 1 15:39 modem -> ../dev/ttyS1
lrwxrwxrwx 1 root root 12 Nov 1 15:39 mouse -> ../dev/psaux
crw-rw-rw- 1 root root 1, 3 May 5 1998 null
crwxrwxrwx 1 root root 10, 1 Oct 5 20:22 psaux
brw-r----- 1 root disk 1, 1 May 5 1998 ram
brw-rw---- 1 root disk 1, 0 May 5 1998 ram0
brw-rw---- 1 root disk 1, 1 May 5 1998 ram1
brw-rw---- 1 root disk 1, 2 May 5 1998 ram2
brw-rw---- 1 root disk 1, 3 May 5 1998 ram3
brw-rw---- 1 root disk 1, 4 May 5 1998 ram4
brw-rw---- 1 root disk 1, 5 May 5 1998 ram5
brw-rw---- 1 root disk 1, 6 May 5 1998 ram6
brw-rw---- 1 root disk 1, 7 May 5 1998 ram7
brw-rw---- 1 root disk 1, 8 May 5 1998 ram8
brw-rw---- 1 root disk 1, 9 May 5 1998 ram9
lrwxrwxrwx 1 root root 4 Nov 1 15:39 ramdisk -> ram0
*** Csak az általam használt IDE partíciók számára csatoltam az eszközöket.
*** Ha SCSI-t használsz, akkor a /dev/sdXX eszközöket kell ezek helyett használod.
crw------- 1 root root 4, 0 May 5 1998 tty0
crw--w---- 1 root tty 4, 1 Nov 1 15:39 tty1
crw------- 1 root root 4, 2 Nov 1 15:29 tty2
crw------- 1 root root 4, 3 Nov 1 15:29 tty3
crw------- 1 root root 4, 4 Nov 1 15:29 tty4
crw------- 1 root root 4, 5 Nov 1 15:29 tty5
crw------- 1 root root 4, 6 Nov 1 15:29 tty6
crw------- 1 root root 4, 7 May 5 1998 tty7
crw------- 1 root tty 4, 8 May 5 1998 tty8
crw------- 1 root tty 4, 9 May 8 12:57 tty9
crw-rw-rw- 1 root root 4, 65 Nov 1 12:17 ttyS1
crw-rw-rw- 1 root root 1, 5 May 5 1998 zero
/etc:
-rw------- 1 root root 164 Nov 1 15:39 conf.modules
-rw------- 1 root root 668 Nov 1 15:39 fstab
-rw------- 1 root root 71 Nov 1 15:39 gettydefs
-rw------- 1 root root 389 Nov 1 15:39 group
-rw------- 1 root root 413 Nov 1 15:39 inittab
-rw------- 1 root root 65 Nov 1 15:39 issue
-rw-r--r-- 1 root root 746 Nov 1 15:39 ld.so.cache
*** Az ld.so.cache-t az ldconfig készítette, és cache-li a könyvtárak helyét.
*** Több dolog összeomlik indulás-időben, ha az ld.so.cache hiányzik.
*** Vagy újragyártod az indítólemez készítése után, vagy csatolod az
*** ldconfig-ot az indítólemezen, és egy rc.x szkriptből indítod
*** a cache frissítéséhez.
-rw------- 1 root root 32 Nov 1 15:39 motd
-rw------- 1 root root 949 Nov 1 15:39 nsswitch.conf
drwx--x--x 2 root root 1024 Nov 1 15:39 pam.d
-rw------- 1 root root 139 Nov 1 15:39 passwd
-rw------- 1 root root 516 Nov 1 15:39 profile
-rwx--x--x 1 root root 387 Nov 1 15:39 rc
-rw------- 1 root root 55 Nov 1 15:39 shells
-rw------- 1 root root 774 Nov 1 15:39 termcap
-rw------- 1 root root 78 Nov 1 15:39 ttytype
lrwxrwxrwx 1 root root 15 Nov 1 15:39 utmp -> ../var/run/utmp
lrwxrwxrwx 1 root root 15 Nov 1 15:39 wtmp -> ../var/log/wtmp
/etc/pam.d:
-rw------- 1 root root 356 Nov 1 15:39 other
/lib:
*** Nekem ELF rendszerem van glibc-vel, tehát az ld-2.so betöltőre van szükségem.
-rwxr-xr-x 1 root root 45415 Nov 1 15:39 ld-2.0.7.so
lrwxrwxrwx 1 root root 11 Nov 1 15:39 ld-linux.so.2 -> ld-2.0.7.so
-rwxr-xr-x 1 root root 731548 Nov 1 15:39 libc-2.0.7.so
lrwxrwxrwx 1 root root 13 Nov 1 15:39 libc.so.6 -> libc-2.0.7.so
lrwxrwxrwx 1 root root 17 Nov 1 15:39 libcom_err.so.2 -> libcom_err.so.2.0
-rwxr-xr-x 1 root root 6209 Nov 1 15:39 libcom_err.so.2.0
-rwxr-xr-x 1 root root 153881 Nov 1 15:39 libcrypt-2.0.7.so
lrwxrwxrwx 1 root root 17 Nov 1 15:39 libcrypt.so.1 -> libcrypt-2.0.7.so
-rwxr-xr-x 1 root root 12962 Nov 1 15:39 libdl-2.0.7.so
lrwxrwxrwx 1 root root 14 Nov 1 15:39 libdl.so.2 -> libdl-2.0.7.so
lrwxrwxrwx 1 root root 16 Nov 1 15:39 libext2fs.so.2 -> libext2fs.so.2.4
-rwxr-xr-x 1 root root 81382 Nov 1 15:39 libext2fs.so.2.4
-rwxr-xr-x 1 root root 25222 Nov 1 15:39 libnsl-2.0.7.so
lrwxrwxrwx 1 root root 15 Nov 1 15:39 libnsl.so.1 -> libnsl-2.0.7.so
-rwx--x--x 1 root root 178336 Nov 1 15:39 libnss_files-2.0.7.so
lrwxrwxrwx 1 root root 21 Nov 1 15:39 libnss_files.so.1 -> libnss_files-2.0.7.so
lrwxrwxrwx 1 root root 14 Nov 1 15:39 libpam.so.0 -> libpam.so.0.64
-rwxr-xr-x 1 root root 26906 Nov 1 15:39 libpam.so.0.64
lrwxrwxrwx 1 root root 19 Nov 1 15:39 libpam_misc.so.0 -> libpam_misc.so.0.64
-rwxr-xr-x 1 root root 7086 Nov 1 15:39 libpam_misc.so.0.64
-r-xr-xr-x 1 root root 35615 Nov 1 15:39 libproc.so.1.2.6
lrwxrwxrwx 1 root root 15 Nov 1 15:39 libpwdb.so.0 -> libpwdb.so.0.54
-rw-r--r-- 1 root root 121899 Nov 1 15:39 libpwdb.so.0.54
lrwxrwxrwx 1 root root 19 Nov 1 15:39 libtermcap.so.2 -> libtermcap.so.2.0.8
-rwxr-xr-x 1 root root 12041 Nov 1 15:39 libtermcap.so.2.0.8
-rwxr-xr-x 1 root root 12874 Nov 1 15:39 libutil-2.0.7.so
lrwxrwxrwx 1 root root 16 Nov 1 15:39 libutil.so.1 -> libutil-2.0.7.so
lrwxrwxrwx 1 root root 14 Nov 1 15:39 libuuid.so.1 -> libuuid.so.1.1
-rwxr-xr-x 1 root root 8039 Nov 1 15:39 libuuid.so.1.1
drwx--x--x 3 root root 1024 Nov 1 15:39 modules
drwx--x--x 2 root root 1024 Nov 1 15:39 security
/lib/modules:
drwx--x--x 4 root root 1024 Nov 1 15:39 2.0.35
/lib/modules/2.0.35:
drwx--x--x 2 root root 1024 Nov 1 15:39 block
drwx--x--x 2 root root 1024 Nov 1 15:39 cdrom
/lib/modules/2.0.35/block:
-rw------- 1 root root 7156 Nov 1 15:39 loop.o
/lib/modules/2.0.35/cdrom:
-rw------- 1 root root 24108 Nov 1 15:39 cdu31a.o
/lib/security:
-rwx--x--x 1 root root 8771 Nov 1 15:39 pam_permit.so
*** Alkönyvtár törzs beillesztéshez
/mnt:
drwx--x--x 2 root root 1024 Nov 1 15:39 SparQ
drwx--x--x 2 root root 1024 Nov 1 15:39 cdrom
drwx--x--x 2 root root 1024 Nov 1 15:39 floppy
/proc:
/root:
-rw------- 1 root root 176 Nov 1 15:39 .bashrc
-rw------- 1 root root 182 Nov 1 15:39 .cshrc
-rw------- 1 root root 47 Nov 1 15:39 .glintrc
-rwx--x--x 1 root root 455 Nov 1 15:39 .profile
-rw------- 1 root root 4014 Nov 1 15:39 .tcshrc
/sbin:
-rwx--x--x 1 root root 23976 Nov 1 15:39 depmod
-rwx--x--x 2 root root 274600 Nov 1 15:39 e2fsck
-rwx--x--x 1 root root 41268 Nov 1 15:39 fdisk
-rwx--x--x 1 root root 9396 Nov 1 15:39 fsck
-rwx--x--x 2 root root 274600 Nov 1 15:39 fsck.ext2
-rwx--x--x 1 root root 29556 Nov 1 15:39 getty
-rwx--x--x 1 root root 6620 Nov 1 15:39 halt
-rwx--x--x 1 root root 23116 Nov 1 15:39 init
-rwx--x--x 1 root root 25612 Nov 1 15:39 insmod
-rwx--x--x 1 root root 10368 Nov 1 15:39 kerneld
-rwx--x--x 1 root root 110400 Nov 1 15:39 ldconfig
-rwx--x--x 1 root root 6108 Nov 1 15:39 lsmod
-rwx--x--x 2 root root 17400 Nov 1 15:39 mke2fs
-rwx--x--x 1 root root 4072 Nov 1 15:39 mkfs
-rwx--x--x 2 root root 17400 Nov 1 15:39 mkfs.ext2
-rwx--x--x 1 root root 5664 Nov 1 15:39 mkswap
-rwx--x--x 1 root root 22032 Nov 1 15:39 modprobe
lrwxrwxrwx 1 root root 4 Nov 1 15:39 reboot -> halt
-rwx--x--x 1 root root 7492 Nov 1 15:39 rmmod
-rwx--x--x 1 root root 12932 Nov 1 15:39 shutdown
lrwxrwxrwx 1 root root 6 Nov 1 15:39 swapoff -> swapon
-rwx--x--x 1 root root 5124 Nov 1 15:39 swapon
lrwxrwxrwx 1 root root 4 Nov 1 15:39 telinit -> init
-rwx--x--x 1 root root 6944 Nov 1 15:39 update
/tmp:
/usr:
drwx--x--x 2 root root 1024 Nov 1 15:39 bin
drwx--x--x 2 root root 1024 Nov 1 15:39 lib
drwx--x--x 3 root root 1024 Nov 1 15:39 man
drwx--x--x 2 root root 1024 Nov 1 15:39 sbin
drwx--x--x 3 root root 1024 Nov 1 15:39 share
lrwxrwxrwx 1 root root 10 Nov 1 15:39 tmp -> ../var/tmp
/usr/bin:
-rwx--x--x 1 root root 37164 Nov 1 15:39 afio
-rwx--x--x 1 root root 5044 Nov 1 15:39 chroot
-rwx--x--x 1 root root 10656 Nov 1 15:39 cut
-rwx--x--x 1 root root 63652 Nov 1 15:39 diff
-rwx--x--x 1 root root 12972 Nov 1 15:39 du
-rwx--x--x 1 root root 56552 Nov 1 15:39 find
-r-x--x--x 1 root root 6280 Nov 1 15:39 free
-rwx--x--x 1 root root 7680 Nov 1 15:39 head
-rwx--x--x 1 root root 8504 Nov 1 15:39 id
-r-sr-xr-x 1 root bin 4200 Nov 1 15:39 passwd
-rwx--x--x 1 root root 14856 Nov 1 15:39 tail
-rwx--x--x 1 root root 19008 Nov 1 15:39 tr
-rwx--x--x 1 root root 7160 Nov 1 15:39 wc
-rwx--x--x 1 root root 4412 Nov 1 15:39 whoami
/usr/lib:
lrwxrwxrwx 1 root root 17 Nov 1 15:39 libncurses.so.4 -> libncurses.so.4.2
-rw-r--r-- 1 root root 260474 Nov 1 15:39 libncurses.so.4.2
/usr/sbin:
-r-x--x--x 1 root root 13684 Nov 1 15:39 fuser
-rwx--x--x 1 root root 3876 Nov 1 15:39 mklost+found
/usr/share:
drwx--x--x 4 root root 1024 Nov 1 15:39 terminfo
/usr/share/terminfo:
drwx--x--x 2 root root 1024 Nov 1 15:39 l
drwx--x--x 2 root root 1024 Nov 1 15:39 v
/usr/share/terminfo/l:
-rw------- 1 root root 1552 Nov 1 15:39 linux
-rw------- 1 root root 1516 Nov 1 15:39 linux-m
-rw------- 1 root root 1583 Nov 1 15:39 linux-nic
/usr/share/terminfo/v:
-rw------- 2 root root 1143 Nov 1 15:39 vt100
-rw------- 2 root root 1143 Nov 1 15:39 vt100-am
/var:
drwx--x--x 2 root root 1024 Nov 1 15:39 log
drwx--x--x 2 root root 1024 Nov 1 15:39 run
drwx--x--x 2 root root 1024 Nov 1 15:39 tmp
/var/log:
-rw------- 1 root root 0 Nov 1 15:39 wtmp
/var/run:
-rw------- 1 root root 0 Nov 1 15:39 utmp
/var/tmp:
teljes 579
-rwxr-xr-x 1 root root 42333 Jul 28 19:05 cpio*
-rwxr-xr-x 1 root root 32844 Aug 28 19:50 debugfs*
-rwxr-xr-x 1 root root 103560 Jul 29 21:31 elvis*
-rwxr-xr-x 1 root root 29536 Jul 28 19:04 fdisk*
-rw-r--r-- 1 root root 128254 Jul 28 19:03 ftape.o
-rwxr-xr-x 1 root root 17564 Jul 25 03:21 ftmt*
-rwxr-xr-x 1 root root 64161 Jul 29 20:47 grep*
-rwxr-xr-x 1 root root 45309 Jul 29 20:48 gzip*
-rwxr-xr-x 1 root root 23560 Jul 28 19:04 insmod*
-rwxr-xr-x 1 root root 118 Jul 28 19:04 lsmod*
lrwxrwxrwx 1 root root 5 Jul 28 19:04 mt -> mt-st*
-rwxr-xr-x 1 root root 9573 Jul 28 19:03 mt-st*
lrwxrwxrwx 1 root root 6 Jul 28 19:05 rmmod -> insmod*
-rwxr-xr-x 1 root root 104085 Jul 28 19:05 tar*
lrwxrwxrwx 1 root root 5 Jul 29 21:35 vi -> elvis*