<!doctype linuxdoc system>

<!--
$Id: Indítólemez-HOGYAN.sgml,v 1.7 1999/07/10 16:28:13 fawcett Exp $

    fordította: Bábos Balázs (bbk@swi.hu)
    fordítás legutolsó frissítése: 1999.12.07.23:15
-->

<article>

<title>Linux Indítólemez HOGYAN</title>
<author>Tom Fawcett (<tt>fawcett@croftj.net</tt>)
</author>
<date>3.5, July 1999</date>

<abstract>

Ez a dokumentáció azt mutatja be, hogyan készítheted el a saját Linux 
indító/gyökér lemezeidet. Ezeket a lemezeket a rendszered biztonsági
lemezeként, vagy új rendszerkomponensek tesztelésére használhatod. 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észhelyzet esetére szeretnél
biztonsági lemezt készíteni, nézd meg a <ref id="distbootdisks" name="Előre-gyártott
indítólemezek"> Függeléket.

</abstract>

    <toc>

    <sect>Bevezetés.<p>

<bf>Megjegyzés: Ez a dokumentáció elavult lehet.</bf> Ha a címlapon
szereplő dátum több, mint hat hónappal ezelőtti, nézd meg a Linux 
Documentation Project holapon (<url url="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, <em/sokkal/ 
jobban néz ki Postscript (<tt/.ps/) vagy HTML formátumban, mert tipográfiai
jeleket is használunk. Ajánljuk, hogy ezek valamelyikét használd. 

<sect1>Verzió megjegyzések.<p>
<nidx/kernel, versions/

Graham Chapman (<tt>grahamc@zeta.org.au</tt>) írta az eredeti
Bootdisk-HOWTO-t és a 3.1-es verzióig ő támogatta. 
Tom Fawcett (<tt>fawcett@croftj.net</tt>) 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 <bf/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 <url
url="http://www.zeta.org.au/~grahamc/linux.html" name="Graham
Chapman honlapja"> helyről szerezhetsz be.

Ezek az információk kifejezetten <bf/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. 

<sect1>Visszacsatolás és köszönet-nyilvánítás.<p>

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 <ref id="troubleshooting" name="Hibajavítást">-t.

<!--  Változások története

v3.4, 1999. április  Változások ebben a verzióban:
- Ellenőrzött és megváltoztatott URL-ek.
- Moved NIDX expressions around.  Seems to be a bug in sgmltools that NIDX
  expressions kill anything left on the line, though this doesn't happen
  with IDXs or anything else.
- Added troubleshooting item about "Kernel panic: VFS: Unable to mount root
  fs" which has become a FAQ.
- Removed warning about pruning users from /etc/passwd.  I thought
  archivers stored user/group names; they store UIDs and GIDs.
- Pruned some of the discussions of libraries, added direct mention of need
  to strip libraries (a FAQ because new libcs are huge).
- Updated ldd and file examples in /lib section.

v3.3, 1999. november  Változások ebben a verzióban:
- Added section on PAM and PAM configuration
- Added section on the /lib/libnss_* stuff
- Added mention of debugfs utility
- Re-checked all the URLs and updated some.  Removed some specific
  filenames so URL points to FTP directory.
- Replaced Graham's root filesystem listing with a Yard listing, since some
  of Graham's file choices were obsolete.
- Added paragraph on dead login prompts, mantioning PAM, NSS and shadow passwords.
- Cleaned up a few indexing problems.  sgml-tools still has a few bugs.

v3.2, 1998. június  Változások ebben a verzióban:
- Removed Graham Chapman as a co-author, on his request.  Added paragraph to
  Version Notes crediting him with the original versions.
- Fixed up a few index commands that were producing spurious output.
- Updated mount filename and version at ftp.win.tue.nl
- In section "Reducing root filesystem size", added paragraph on reformatting
  diskete to higher density.
- Added paragraph and URLS for tomsrtbt rescue disk to the Pre-made Bootdisks
  section.
- Changed Makefile so that Info versions of this document are no longer
  produced or distributed, because they are completely broken.
- Changed lots of double quotes, fixed a few indexing commands.


v3.1, 1998. március

v3.0, 1998. eleje, Jelentős újraírás

v2.3, 1997. április 4., Változások ebben a verzióban:
- Moved first FAQ question ("Why doesn't my disk boot?")
  into its own section ("Troubleshooting") and added Yard
  troubleshooting information to it.
- Made a few changes suggested by D.Hill and J.R.Ganuza.
- Added ref and label tags in various places.
- Moved scripts and resources to appendices.
- Added URLs for distributions' bootdisks plus mirrors.

v2.2, 1996. szeptember 1  Változások ebben a verzióban:
- Fix: set ramdisk word via rdev on /dev/fd0 instead of zImage.


v2.1, 1996. augusztus 18.  Változások ebben a verzióban:
Summary: this was a major cleanup to reflect changes between kernel
version 1.2 and 2.0. Specific changes are:

- Chg: replaced shell scripts and directory listings. 
- Chg: removed most of the text of "oversize ramdisk" FAQ question.
- Fix: mkfs -i should have been mke2fs -i.
- Fix: missing parameter name in dd command to zero rootdisk device.
- Fix: remove accidental extra parameter from mke2fs command to create
    rootdisk filesystem.
- Chg: minor changes to reflect less reliance on the Bootkit utility.
- Chg: change section cross-references to refer to section title, not
    number (sometime I'll add hypertext links...)
- Add: use cpio as an alternate way of copying files.
- Add: tips for removing unnecessary device special files.
- Add: FAQ question - what to do if nothing happens at boot time.
- Add: various minor changes.


v2.0, 1996. júnuis 12.  Változások ebben a verzióban:
- Add: additional author and maintainer, Tom Fawcett.
- Add: section 6.3, Ramdisk Usage.
- Add: section titled Advanced Bootdisk Creation, which describes how
    to take advantage of ramdisk changes in kernels 1.3.48+
- Chg: rewrite section on /lib directory.
- Chg: various minor tips on changed ramdisk usage.


======================= VÁLTOZÁSOK TÖRTÉNETE VÉGE  -->

<sect1>Terjesztési jogosultság.<p>

Copyright &copy; 1995,1996,1997,1998,1999 by Tom Fawcett and Graham
Chapman. Ez a dokumentáció szabadon terjeszhető a Linux Documentation 
Project License (<url url="http://metalab.unc.edu/LDP/COPYRIGHT.html">)
figyelembevételével. Fordulj a készítőkhöz, ha nem tudsz hozzájutni a
licenszhez. 

<p>
Ez egy ingyenes dokumentáció. Abban a reményben terjesztjük, hogy hasznos lehet,
de <bf>bármiféle garancia nélkül</bf>.

<p>
<sect>Bevezetés.<p>

A Linux indítólemezek több esetben hasznosak lehetnek, mint például:
<itemize>

<item>Új kernel tesztelése.

<item>Lemezhiba utáni helyreállítás -- bármi, az elveszett indító szektortól
kezdve a merevlemez fejének összetöréséig.

<item>Letiltott rendszer javítása. Súlyos hiba, ha root-ként használhatatlanul
hagyva a rendszert kiléphetsz belőle, és indító lemezre lesz szükséged a 
helyreállításához.  

<item>Olyan kritikus rendszer állományok frissítésekor, mint például a <tt/libc.so/.

</itemize>

Több lehetőség áll rendelkezésedre, hogy beszerezz indító lemezeket:

<itemize>

<item>Használhatod például a Slackware disztribúció lemezeit. 
Ezek legalább lehetővé teszik, hogy Linux rendszert indíts.

<item>Használhatsz mentő csomagokat, amiket arra terveztek, hogy biztonsági 
indító lemezt készíthess velük.

<item>Vizsgáld meg, hogy mi szükséges az összes lemez működéséhez,
és készítsd el a sajátod.

</itemize>

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
<tt/mount/ és a <tt/df/ parancsokat, valamint ismerned kell, hogy a 
<file>/etc/passwd</file> és <file>fstab</file> á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, <em>sokkal</em> egyszerűbb, ha letöltesz egy
megfelelő változatot magadnak. Nézd meg a <ref id="distbootdisks" 
name="Előre elkészített indítólemezek"> függeléket lejjebb, hogy hol 
is találod ezeket. 

<sect>Indítólemezek és az indítás folyamata. <p>
<nidx/boot process/

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. 

<sect1>Az indítási folyamat.<p>
<nidx/boot sector/

Minden PC rendszer az indítási folyamatot a ROM-ban lévő kód végrehajtásával
(pontosabban a <idx/BIOS/-ban) kezdi, hogy betöltse az indító meghajtó 
0. szektor, 0. cylinderén található szektort. Az <idx/indító meghajtó/
általában az első floppy lemez meghajtó (DOS alatt <tt>A:</tt>-val
jelölik, Linuxban <file>/dev/fd0</file>). 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:

<itemize>

<item>indító betöltő, mint például a LILO kódja, ami majd megtalálja
a kernelt, betölti, és végrehajtja, hogy elindítsa a teljes betöltőt.

<item>egy olyan operációs rendszer magjának kezdete, mint például a Linux.

</itemize>

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 
<bf><idx/gyökér állományrendszert/</bf> 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 <bf><idx/memórialemezre/</bf> 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 
<bf><idx/tömörített állományrendszerről/</bf> 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:

<verb>
        VFS: Mounted root (ext2 filesystem) readonly.
</verb>

<ncdx>init</ncdx>
<ncdx>inittab</ncdx>
<ncdx>sysinit</ncdx>

Ennél a pontnál a renszer megkeresi az gyökér állományrendszeren az 
<tt/init/ programot (a <tt>/bin</tt> vagy az <tt>/sbin</tt> alkönyvtárban),
és végrehajtja. Az <tt/init/ az <file>/etc/inittab</file> állományból
olvassa a konfigurációt, megkeresi a megfelelő <tt/sysinit/ sort, és 
végrehajtja a named szkriptet. A <tt/sysinit/ szkript általában valami 
olyasmi, mint az <file>/etc/rc</file> vagy az <file>/etc/init.d/boot</file>.
Ez a szkript parancsértelmező parancsok halmaza, amik az olyan alap 
rendszer szolgáltatásokat állítják be, mint:

<itemize>

<item><tt><cdx/fsck/</tt> futtatása minden lemezen,
<item>Megfelelő kernel <idx/modulok/, betöltése
<item>Swap indítása,
<item>Hálózat inicializálása,
<item>Az <tt><cdx/fstab/</tt>-ban felsorolt lemezek beillesztése.

</itemize>

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 <file>/etc/rc.d/</file> 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 <tt/init/-nek,
ami ezután az <tt/inittab/ <tt/initdefault/ kulcsszavával megadott
<em/alapértelmezett futásszintre/ lép. A futásszint sor általában
meghatároz egy <tt><cdx/getty/</tt>-hez hasonló programot, ami a 
konzolon és tty-ken keresztüli kommunikációért felelős. A <tt/getty/
az a program, ami a már ismerős ``<tt/login:/'' promptot írja ki. A
<tt/getty/ program hívja meg a <tt><cdx/login/</tt> programot, hogy
a bejelentkezéseket lekezelje, és beállítsa a felhasználói környezetet.

<sect1>Lemez típusok.<p>

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.

<descrip>

<tag/betöltő(boot)/ 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 ``<tt/make zdisk/'' parancs automatikusan készít
    ilyen betöltő lemezt a kernel forráskódjából).

<tag>gyökér(root)</tag> 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). <nidx/root disk/
    
    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. 

<tag>betöltő/gyökér(boot/root)</tag> 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.
    <nidx>boot/root disk</nidx>

<tag>eszköz(utility)</tag>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. 
    <nidx/utility diskette/

</descrip>

Á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. 

<sect>Gyökér állományrendszer készítése.<p>
<label id="buildroot">

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 <em><idx/tömörített gyökér állományrendszert/</em> 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 <ref id="nonramdiskroot"
name="Nem-memórialemez gyökér állományrendszer"> fejezetben mutatjuk be.

<sect1>Áttekintés.<p>

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:

<itemize>
<item>Az alap állományrendszer-struktúra,
<item>Minimális alkönyvtár-struktúra: <tt>/dev, /proc, /bin, /etc, /lib, /usr,
        /tmp</tt>,
<item>Alap eszközök: <tt>sh, ls, cp, mv</tt>, stb.,
<item>Minimálisan szükséges konfigurációs állományok: <tt>rc, inittab, fstab</tt>, stb.,
<item>Eszközök: <tt>/dev/hd*, /dev/tty*, /dev/fd0</tt>, stb.,
<item>Eszközök által használt alap függvényeket nyújtó futásidejű eljáráskönyvtárak.
</itemize>

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:

<itemize>

<item>Másik meghajtón állományt ellenőrzöl, például azért, hogy leelenőrizd
a merevlemezeden lévő gyökér állományrendszeredet, másik meghajtóról 
el kell, hogy tudd indítani a Linux rendszeredet, mint ahogy azt egy
gyökér lemezről meg is teheted. Ezután lefuttathatod az <tt><cdx/fsck/</tt>-t
az eredeti gyökér meghajtódra, amíg nincs beillesztve.

<item>Visszaállíthatod az eredeti gyökér meghajtódat biztonsági mentésből
olyan archiváló és tömörítő eszközök használatával, mint a <tt/cpio, tar, gzip/
és az <tt/ftape/.

</itemize>

Megmutatjuk, hogy hogyan készíthetsz <em/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.  <nidx/compressed root filesystem/

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.

<sect1>Az állományrendszer elkészítése.<p>
<label id="creatingrootfs">

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: 

<itemize>

<item>Használhatsz <bf><idx/memórialemezt/</bf> (ESZKÖZ = <file>/dev/ram0</file>).
Ebben az esetben a memóriát használjuk a lemez szimulálására. A memórialemeznek
elég nagynak kell lennie, hogy a megfelelő méretű állományrendszer elférjen rajta.
Ha LILO-t használsz, nézd meg a konfigurációs állományát (<file>/etc/lilo.conf</file>),
hogy szerepel-e benne a 

<verb>
        RAMDISK_SIZE = nnn
</verb>

sor, 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. 
<nidx/RAMDISK&lowbar;SIZE, LILO parameter/

Nézd meg, hogy vannak-e olyan eszközeid, mint a <file>/dev/ram0, /dev/ram</file>,
vagy a <file>/dev/ramdisk</file>.  Ha nincsenek, készítsd el a <file>/dev/ram0</file>-t 
az <tt/mknod/ (major 1, minor 0) paranccsal.

<item>Jó megoldás, ha van egy elég nagy (néhány megabájt) használaton kívüli
merevlemez-partíciód.

<item>Használj <bf><idx/loopback eszközt/</bf>, amivel lemez állományt
eszközként kezelhetsz. Loopback eszközzel elkészíthetsz egy 3 megabájtos
állományt a merevlemezeden, és felépítheted benne az állományrendszert.

A loopback eszközök használatának bővebb ismertetéséhez használd a <tt/man losetup/
parancsot. Ha nincs <tt/losetup/-od, az <url url="ftp://ftp.win.tue.nl/pub/linux/utils/util-linux/">
címről letöltheted a <tt/mount/ és <tt/unmount/ programokkal 
kompatibilis <tt/util-linux/ csomagot, amiben megtalálod.

<p>
Ha nincs a rendszereden (<file>/dev/loop0</file>, <file>/dev/loop1</file>, stb.)
loop eszköz, készítened kell egyet az ``<tt>mknod /dev/loop0 b 7 0</tt>''
paranccsal. Miután feltelepítetted ezeket a különleges <tt/mount/ és <tt/umount/ 
binárisokat, készíts egy elegendő kapacitással rendelkező ideiglenes
állományt a merevlemezeden (pl. <file>/tmp/fsfile</file>).
Használhatod a 

<verb>
        dd if=/dev/zero of=/tmp/fsfile bs=1k count=<it/nnn/
</verb>

parancsot a <em/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 ``<tt>-o loop</tt>'' kapcsolót is használnod
kell, hogy megmond a mount-nak, hogy loopback eszközt használjon. 
<nidx/loopback device/
Például a

<verb>
        mount -o loop -t ext2 /tmp/fsfile /mnt
</verb>

parancs beilleszti a <file>/tmp/fsfile</file>-t (loopback eszközön keresztül)
az <tt>/mnt</tt> illesztési pontba.  Egy <tt/df/ parancs ezt meg is erősíti.

</itemize>

Miután kiválasztottad valamely opciót, készítsd el az ESZKÖZt a

<verb>
        dd if=/dev/zero of=DEVICE bs=1k count=3000
</verb>

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.

<nidx/inodes, allocation/
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 <tt>-i</tt> kapcsolót, hogy az
alapértelmezettnél több inode-t adhass meg; a <tt/-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 <tt>/dev</tt> alkönyvtárból. Az  <tt/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 <tt>/dev</tt> 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:
<verb>
        mke2fs -m 0 -i 2000 ESZKÖZ
</verb>

(Ha loopback eszközt használsz, meg kell adnod hogy az ESZKÖZ hol található.
Ebben az esetben az <tt/mke2fs/ meg fog kérdezni, hogy biztosan ezt szeretnéd-e,
válaszolj igennel.)
<nidx/loopback device/

Az <tt/mke2fs/ utasítás automatikusan megállapítja a szabad hely méretét, és
annak megfelelően konfigurálja be magát. A <tt/-m&space;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:
<verb>
        mount -t ext2 ESZKÖZ /mnt
</verb>

(Létre kell hoznod a <tt>/mnt</tt> beillesztési pontot, ha még nem létezik.)
A további fejezetekben minden alkönyvtárnevet az <tt>/mnt</tt>-hez képest 
relatív alkönyvtárnak tekintünk.

<sect1>Az állományrendszer benépesítése.<p>

Íme egy kellően lecsupaszított alkönyvtárcsoport a gyökér 
állományrendszered számára:
<itemize>

<item> <tt>/dev</tt> -- Eszközök, melyek a B/K műveletekhez szükségesek
<item> <tt>/proc</tt> -- Alkönyvtár-rendszer, amire a proc állományrendszernek van szüksége
<item> <tt>/etc</tt> -- Rendszerkonfigurációs állományok
<item> <tt>/sbin</tt> -- Kritikus rendszer-binárisok
<item> <tt>/bin</tt>  -- A rendszer részét alkotó alap binárisok
<item> <tt>/lib</tt> -- Futásidejű támogatást nyújtó osztott eljáráskönyvtárak
<item> <tt>/mnt</tt> -- Más lemezek karbantartására szolgáló beillesztési pont
<item> <tt>/usr</tt> -- Egyéb eszközök és alkalmazások
</itemize>

(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.)

<ncdx/proc/<ncdx/mnt/<ncdx/usr/

A gyökér lemezen három alkönyvtár üresen marad, tehát csak az <tt/mkdir/
parancsra van szükség a létrehozásukhoz. A <tt>/proc</tt> alkönyvtár 
tulajdonképpen csak egy törzs, ahova a proc állományrendszer kerül. Az
<tt>/mnt</tt> és az <tt>/usr</tt> 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.

<!--
    Megjegyzés: <tt>/dev</tt>-et kellene itt használnom, de az sgml2txt
    hibásan összekavarja a tartalomjegyzéket, ha ilyen dolgokat teszek
    bekezdés fejlécébe.
-->

<sect2>/dev<p>

<nidx/device (dev) directory/

A <tt>/dev</tt> alkönyvtár minden Linux rendszerben használatos eszköz számára
egy-egy különleges állományt tartalmaz. A <tt>/dev</tt> alkönyvtár maga hagyományos 
alkönyvtár, és az <tt/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 <tt><cdx/mknod/</tt> paranccsal. 

Azonban létezik egy gyosabb módszer is -- másold le a már létező <tt>/dev</tt> 
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 <tt/-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. <em>Figyelj nagyon,
hogy nagybetűs R-t használj!</em>. Ha kisbetűs <tt/-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:

<verb>
        cp -dpR /dev /mnt
</verb>

feltéve, hogy a lemezt a <tt>/mnt</tt> alkönyvtárba illesztetted. A <tt/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 <tt/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 <tt/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 <tt><cdx/ftape/</tt> 
á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 <idx/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 <tt>/dev</tt> 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
<tt/sd/-vel kezdődő eszköz állományt. Hasonlóképpen, ha nem akarsz
soros csatolót használni, minden <tt/cua/-val kezdődő eszköz törölhető.


<em>Bizonyosodj meg arról, hogy a következő állományokat csatolod ebből az
alkönyvtárból:</em>
<tt>console, kmem, mem, null, ram, tty1</tt>.

<sect2>/etc<p>
<nidx/etc directory/

Ez az alkönyvtár számos konfigurációs állományt tartalmaz. A legtöbb
állományrendszeren ezeket három csoportba sorolhatjuk:

<enum>
<item>Minden esetben szükségesek, <it/pl./ <tt/rc, fstab, passwd/.
      <ncdx/rc/<ncdx/fstab/<ncdx/passwd/
<item>Lehet, hogy kellenek, de senki sem elég biztos benne.
<item>Szükségtelen hulladék.
</enum>

A lényegtelen állományokat a következő utasítással ismerheted fel:

<tscreen><verb>
        ls -ltru
</verb></tscreen>

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:

<enum>
<item>Állományok, melyeket be kell konfigurálni az indító/gyökér rendszerhez. 

<enum>
<item><tt>rc.d/*</tt> -- rendszerindító és futásszint váltó szkriptek
<item><tt><cdx/fstab/</tt> -- beillesztendő állományrendszerek listája
<item><tt><cdx/inittab/</tt> -- az <tt/init/ folyamat állományai, az indításkor
		elsőként elinduló folyamat.<ncdx/init/
</enum>

<item>Állományok, melyekről gondoskodni kell az indító/gyökér rendszerhez. 
<enum>
        <item><tt><cdx/passwd/</tt> -- felhasználók listája, home könyvtárak, stb.
        <item><tt/group/ -- felhasználói csoportok <nidx/user groups/
        <item><tt/shadow/ -- felhasználók jelszavai. Nem kötelező ezt használnod.<nidx/shadow passwords/
        <item><tt/termcap/ -- a terminál képesség-adatbázisa.
</enum>

Ha fontos a biztonság, a <tt/passwd/ és a <tt/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.<nidx/restoring files/

Győződj meg arról, hogy a <tt><cdx/passwd/</tt> legalább a <tt/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.

<tt/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 <tt/linux-console/ bejegyzés.

<item>A maradék. Működnek ebben a pillanatban, így békén hagyom őket.

</enum>

Ezután ténylegesen lét állományt kell konfigurálnom, és meglepően 
kevés dolgot fognak tartalmazni.
<itemize>

<item><tt/rc/-nek a következőket kellene tartalmaznia:
<verb>
        #!/bin/sh
        /bin/mount -av
        /bin/hostname Kangaroo
</verb>

Bizonyosodj meg róla, hogy az alkönyvtárak helyesek. Nem kell a 
<tt><cdx/hostname/</tt>-t futtatnod, egyszerűen csak jól 
néz ki, ha teszed.

<item><tt><cdx/fstab/</tt>-nak legalább a következőket kell tartalmaznia:
<verb>
        /dev/ram0       /               ext2    defaults
        /dev/fd0        /               ext2    defaults
        /proc           /proc           proc    defaults
</verb>

Lemásolhatod a már létező <tt/fstab/-od bejegyzéseit, de nem célszerű
automatikusan beillesztened a merevlemezed partícióit. Használd a <tt/noauto/
kulcsszót esetükben. A merevlemezed sérült, vagy halott is lehet, amikor az
indító lemezt használod.
</itemize>

Az <tt><cdx/inittab/</tt>-ot úgy kell megváltoztatnod, hogy a <tt><cdx/sysinit/</tt> 
sora a <tt>rc</tt>-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 <tt/getty/ 
bejegyzést, ami a sor végén <tt/ttys/ vagy <tt/ttyS/ eszközre hivatkozik, 
csak a <tt/tty/ portokat hagyd meg, így csak a konzolon tudsz bejelentkezni.

Egy minimális <tt><cdx/inittab/</tt> állomány például így nézhet ki:
<verb>
        id:2:initdefault:
        si::sysinit:/etc/rc
        1:2345:respawn:/sbin/getty 9600 tty1
        2:23:respawn:/sbin/getty 9600 tty2
</verb>

Az <tt><cdx/inittab/</tt> á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 <tt/inittab/-ban hivatkozott állománynevek
helyességéről. Ha az <tt/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.
<nidx/hardcoded locations/

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 <file>/etc/shutdown</file> a <file>/etc/reboot</file>-ba van bedrótozva.
Ha <tt/reboot/-ot átmozgatom <file>/bin/reboot</file>-ra, és kiadom a 
<tt/shutdown/ parancsot, az nem fog működni, mert nem találja a <tt/reboot/
állományt.

A többiről annyit, hogy az <tt>/etc</tt> alkönyvtáradban levő összes szöveges
állományt egyszerűen csak másold át, és az összes olyan <tt>/etc</tt>-beli
összes olyan futtatható állományt, amiről nem tudod biztosan, hogy nem lesz
rá szükség. Támpontot adhat ebben a <ref id="listings" name="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 <tt/inittab/-ból kiindulva megvizsgálod, hogy mire van szükség.
<nidx/etc directory/

A legtöbb mai rendszer a <file>/etc/rc.d/</file> alkönyvtárat tartalmazza a
különböző futásszintek parancsértelmező szkriptjeinek tárolására. Az alkönyvtár
állhat egyetlen <tt/rc/ szkriptből is, de talán egyszerűbb átmásolni az 
<tt><cdx/inittab/</tt> és az <file>/etc/rc.d</file> alkönyvtárat a már
működő rendszeredről, és kiszedni a <tt/rc.d/ alkönyvtár szkriptjeiből a
lemezes rendszerkörnyezet számára nem fontos dolgokat. 

<sect2>/bin és /sbin<p>
<nidx/bin directory/
<nidx/sbin directory/

A <tt>/bin</tt> 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 <tt/ls/, <tt/mv/, <tt/cat/ és a <tt/dd/. A <ref id="listings" 
name="Sample rootdisk directory listings"> függelékben találsz egy példát a
<tt>/bin</tt> alkönyvtár állományairól, illetve az <tt>/sbin</tt> 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 <tt/cpio/, <tt/tar/ és <tt/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 <tt>/usr</tt> alkönyvtárba 
illesztem be. 

Az <idx/eszköz lemez/ készítését ebben a fejezetben olvashatod a 
<ref id="utilitydisk" name="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.

<em>Győződj meg róla, hogy csatoltad-e a következő programokat:</em> 
<tt/init/, <tt/getty/ vagy ezzel egyenértékű program, <tt/login/, 
<tt/mount/, valamelyik az rc szkriptjeidet futtatni tudó parancsértelmező,
az <tt/sh/-ból a parancsértelmezőre mutató lánc.

<ncdx/init/<ncdx/getty/<ncdx/login/<nidx/shells/

<sect2>/lib<p>
<nidx/library (lib) directory/
<nidx/libraries/

A <tt>/lib</tt> 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 <tt>/lib</tt>
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.

<ncdx/libc.so/
Majdnem minden programnak szüksége van legalább a <tt/libc/ eljáráskönyvtárra, 
<tt>libc.so.<it/N/</tt>, ahol az <it/N/ az aktuális verziószám. 
Nézd meg a <tt>/lib</tt> alkönyvtárad. A <tt/libc.so.N/ valószínűleg
csak egy szimbolikus lánc, ami egy teljes verziószámú állományra mutat:

<tscreen><verb>
% 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*
</verb></tscreen>

Ebben az esetben a <tt/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 <tt><cdx/ldd/</tt> paranccsal tudod
leellenőrizni. Például:

<verb>
        % 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)
</verb>

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 <em>elég nagy</em>, és nem 
könnyen fog ráférni a gyökér lemezedre. Például a fent is említett 
<tt/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 <ref id="slimfast" name="Reducing root filesystem size"> fejezetet, 
hogy ezt hogyan teheted meg.

<nidx/loaders/<nidx/ELF/<nidx/a.out/

A <tt>/lib</tt> alkönyvtárban az eljáráskönyvtárak betöltőjét is 
csatolnod kell. A betöltő lehet egyrészt <tt/ld.so/ (a.out 
eljáráskönyvtárakhoz), vagy <tt/ld-linux.so/ (ELF eljáráskönyvtárakhoz).
Az <tt/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 <tt/file/ parancsot az eljáráskönyvtárra. Például:  

<verb>
        % 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
</verb>

A <tt/QMAGIC/ jelzi, hogy a <tt/4.7.2/-esek az a.out eljáráskönyvtáraké, 
az <tt/ELF/ jelzi, hogy a <tt/5.4.33/-esek és a <tt/2.1.1/-ek az ELF-eké.
<nidx/ELF/<nidx/a.out/

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 <em/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. 

<sect1>PAM és NSS számára szolgáltatandók.<p>
<label id="PAMNSS">

A rendszerednek olyan dinamikusan betöltendő eljáráskönyvtárakra is
szüksége lehet, amiket a <file>ldd</file> nem mutat meg.

<sect2>PAM (Pluggable Authentication Modules: Beilleszthető Hitelesítő Modul).<p>

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 <file>/etc</file> alkönyvtárát, hogy találsz-e
benne <file>pam.conf</file> nevű állományt, vagy <file>pam.d</file> 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 <file>ldd</file>-t a <file>login</file> 
állományodra. Ha a kimenet tartalmazza a <file>libpam.so</file> á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ű <file>/etc/pam.conf</file> állomány létrehozásával a gyökér
lemezeden, ami így néz ki: 

<code>
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
</code>

Valamint másold le a <tt>/lib/security/pam&lowbar;permit.so</tt> 
á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 <file>/lib/security</file> alkönyvtárból a gyökér
állományrendszeredre. 

Az indítólemezedre rá kell tenned még a <file>/lib/libpam.so</file> 
állományt is, de már tudod, mivel futtattad a <file>/bin/login</file>-ra
az ldd-t, hogy melyiket a megjelenített függőség alapján. 

<sect2>NSS (Name Service Switch: Név Szolgáltatás Kapcsoló).<p>

Ha glibc-t (azaz libc6) használsz, külön kell foglalkoznod a 
név szolgáltatásokkal, vagy nem fogsz tudni bejelentkezni. Az
<file>/etc/nsswitch.conf</file> á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ű <file>nsswitch.conf</file>
állományt kell előkészítened, ami így néz ki:

<code>
     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
</code>

Ez azt mondja meg, hogy minden szolgáltatást csak helyi állományok 
biztosítanak. Csatolnod kell a <tt>/lib/libnss&lowbar;files.so.1</tt>
á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 <file>nsswitch.conf</file> állományra
lesz szükséged. Nézd meg az <file>nsswitch</file> manuál oldalt a 
részletekért. Tartsd észben, hogy minden <it>szolgáltatáshoz</it>, 
amit csatolsz, szükséged van a <tt>/lib/libnss&lowbar;</tt><it>szolgáltatás</it><tt>.so.1</tt>-ra.

<sect1>Modulok.<p> <nidx/modules/

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
<tt/ftape/ és <tt/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. 
<ncdx/ftape/

Ezekez a modulokat a <file>/lib/modules</file> alkönyvtárban helyezheted el.
Célszerű még az <tt/insmod/, <tt/rmmod/ és az <tt/lsmod/ parancsokat is
mellékelned. Ha automatikusan betöltődő modulokat szeretnél, mellékeld a 
<tt/modprobe/, <tt/depmod/ és a <tt/swapout/ programokat is. Ha <tt/kerneld/-t
használsz, az <file>/etc/conf.modules</file>-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. 

<em/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.

<sect1>Néhány utolsó simítás.<p>

Néhány rendszerprogram, mint például a <tt/login/, problémázik, ha nem 
létezik a <file>/var/run/utmp</file> állomány és a <file>/var/log</file>
alkönyvtár. <ncdx/utmp/ Így:

<verb>
        mkdir -p /mnt/var/{log,run}
        touch /mnt/var/run/utmp
</verb>

Végül, miután összeszedted az összes szükséges eljáráskönyvtárt, 
futtasd az <tt/ldconfig/ programot, hogy újrageneráld az <file>/etc/ld.so.cache</file>
á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 <tt/ld.so.cache/
újragenerálásához a következő parancsot kell kiadnod:
<ncdx/ld.so.cache/

<verb>
        chdir /mnt; chroot /mnt /sbin/ldconfig
</verb>

A <tt/chroot/ szükséges, mert az <tt/ldconfig/ mindig
a gyökér állományrendszer számára generálja újra a cache-t.

<sect1>Töltsük fel.<p>
<label id="wrappingitup">

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:

<verb>
        umount /mnt
        dd if=ESZKÖZ bs=1k | gzip -v9 > rootfs.gz
</verb>

Ha ezzel készen vagy, létrejön a <tt/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 <ref id="slimfast" name="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.

<sect>Kernel választása.<p>
<nidx/kernel, choosing/

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 <em/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 <cdx/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.

<nidx/kernel, building from source/

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 
<file>/usr/src/linux</file> 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
``<tt/make zImage/'' paranccsal.

<sect>Rakjuk össze őket: lemez(ek) elkészítése.<p>

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 <cdx/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 <file>/etc/lilo.conf</file> állományt
a rendszereden. Ha tartalmaz olyan sorokat, amikben szerepel az 
``<tt/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 <bf/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. 
<ncdx/lilo.conf/<nidx/lilo filesystem/<nidx/kernel, parameters/


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 <ref id="withoutlilo" 
name="Without using LILO"> fejezetre.

<sect1>A kernel másolása LILO-val.<ncdx/LILO/.<p>
<label id="usinglilo">

Az első teendő, hogy létre kell hozni egy kis konfigurációs állományt 
a LILO számára. Így kell kinéznie:

<code>
        boot      =/dev/fd0
        install   =/boot/boot.b
        map       =/boot/map
        read-write
        backup    =/dev/null
        compact
        image     = KERNEL
        label     = Bootdisk
        root      =/dev/fd0
</code>

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 <file>/etc/lilo.conf</file>
állományából hozzáadni az <tt/append=.../-t tartalmazó sorokat ehhez az
állományhoz.
<ncdx/lilo.conf/

Mentsd el ezt az állományt <tt/bdlilo.conf/ néven.

Most létre kell hoznod egy kis állományrendszert, amit 
<bf><idx/kernel állományrendszernek/</bf> 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 ``<tt>ls -l KERNEL</tt>'', 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 <tt/KERNEL&lowbar;BLOKK/-nak hívjuk.
<ncdx/KERNEL&lowbar;BLOCKS/

Helyezz egy lemezt a meghajtóba (az egyszerűség kedvéért 
feltételezzük, hogy ez az eszköz a <file>/dev/fd0</file>),
és készíts rajta ext2 kernel állományrendszert:

<verb>
        mke2fs -i 8192 -m 0 /dev/fd0 KERNEL_BLOKK
</verb>
<nidx/inodes, allocation/

Az ``<tt/-i 8192/'' mondja meg, hogy egy inode legyen minden 8192
byte-on.
Ezután beillesztheted az állományrendszert, távolítsd el a 
<tt/lost+found/ alkönyvtárat és hozz létre a <tt/dev/ és a <tt/boot/ 
alkönyvtárakat a LILO számára:

<verb>
        mount /dev/fd0 /mnt
        rm -rf /mnt/lost+found
        mkdir /mnt/{boot,dev}
</verb>

Ezután hozd létre a <file>/dev/null</file> és a <file>/dev/fd0</file>
eszközöket. Ahelyett, hogy nekiállnál eszközszámokat keresni, egyszerűen
másold át őket a merevlemezedről <tt/-R/:

<verb>
        cp -R /dev/{null,fd0} /mnt/dev
</verb>

A LILO-nak szüksége van egy másolatra az indító betöltőjéhez, a <tt>boot.b</tt>-re,
amit lemásolhatsz a merevlemezedről, amit általában a <tt>/boot</tt> könyvtárban 
találsz.

<verb>
        cp /boot/boot.b /mnt/boot
</verb>

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:

<verb>
        cp bdlilo.conf KERNEL /mnt
</verb>

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 <tt/-r/ paraméterrel
mondhatjuk meg, hogy más gyökérrel telepítse az indító betöltőt: 
<ncdx/LILO/

<verb>
        lilo -v -C bdlilo.conf -r /mnt
</verb>

A LILO-nak hiba nélkül le kell futnia, miután a kernel állományrendszernek
valahogy így kell kinéznie:

<code>
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
</code>
<nidx/kernel filesystem/

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 <ref id="ramdiskword"
name="Setting the ramdisk word"> fejezettel.

<sect1>A Kernel másolása LILO nélkül.<p>
<label id="withoutlilo">

Ha <em/nem/ LILO-t használsz, a <tt/dd/ utasítással másold át a kernelt
az indítólemezre:

<verb>
        % dd if=KERNEL of=/dev/fd0 bs=1k
        353+1 records in
        353+1 records out
</verb>

Ebben a példában a <tt/dd/ 353 teljes rekordot + 1 részleges rekordot
írt, így a kernel a lemez első 354 blokkját foglalja el. Ezt a 
számot <tt/KERNEL&lowbar;BLOKK/-nak hívjuk, és a következő fejezetben
használni fogjuk. 
<ncdx/KERNEL&lowbar;BLOCKS/

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:

<verb>
        rdev /dev/fd0 /dev/fd0
        rdev -R /dev/fd0 0
</verb>
<ncdx/rdev/

Légy óvatos, a második <tt/rdev/ utasításnál nagybetűt használj az 
<tt/-R/ kapcsoló esetén.

<sect1>Memórialemez szó beállítása.<p>
<label id="ramdiskword">

A kernel image belsejében van a <bf><idx/memórialemez szó/</bf>, 
ami megadja, hogy hol található a gyökér állományrendszer, több
más paraméterrel együtt. A szó az <tt/rdev/ utasítással érhető
el, és a következőképpen kell értelmezni:

<verb>
        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
</verb>

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.

<enum>

<item>Ha egyetlen lemezt készítesz, a tömörített gyökér állományrendszer
közvetlenül a kernel után kerül, tehát az eltolás az első szabad blokkra
(aminek meg kell egyeznie a <tt/KERNEL&lowbar;BLOKK/-al) fog mutatni.
A 14. bit 1, a 15. nulla. 
<ncdx/KERNEL&lowbar;BLOCKS/

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á.

<item>Ha két lemezes készletet készítesz, a gyökér állományrendszer
a második lemez 0. blokkjánál kezdődik, tehát az eltolást nullára kell 
állítani. A 14. bitet 1-re kell állítani, és a 15. bitet is 1-re kell
állítani. Ebben az esetben a decimális érték 2^14 + 2^15 = 49152.
</enum>
<ncdx/rdev/<nidx/ramdisk word/

Miután gondosan kiszámítottad a memórialemez szó értékét, állítsd be
az <tt/rdev -r/ paranccsal. Figyelj rá, hogy a <em/decimális/ értéket
használd. Ha LILO-t használtál, az <tt/rdev/ paraméterének a <em/beillesztett 
kernel útvonalat/ kell használnod, pl. <tt>/mnt/vmlinuz</tt>, ha 
<tt/dd/-vel másoltad a kernelt, használd inkább a lemez eszköz nevét
(<it/pl.,/ <tt>/dev/fd0</tt>).

<verb>
        rdev -r KERNEL_VAGY_FLOPPY_MEGHAJTÓ  ÉRTÉK
</verb>

Ha LILO-t használtál, most lecsatolhatod a lemezt.

<sect1>A gyökér állományrendszer átvitele.<p>

A legutolsó lépés a gyökér állományrendszer átvitele.
<itemize>

<item>Ha a gyökér állományrendszer <em/ugyanarra/ a lemezre kerül,
mint a kernel, a <tt/dd/ paranccsal vidd át, és használd a <tt/seek/ 
kapcsolót, ami megadja, hogy hány blokkot kell kihagynia:

<verb>
        dd if=rootfs.gz of=/dev/fd0 bs=1k seek=KERNEL_BLOKK
</verb>

<item>Ha a gyökér állományrendszer a <em/második/ lemezre kerül, 
távolítsd el a lemezt, tedd be a második lemezt a meghajtóba, 
majd vidd át a gyökér állományrendszert rá:

<verb>
        dd if=rootfs.gz of=/dev/fd0 bs=1k
</verb>
</itemize>

Gratulálok, készen vagy! <em>Mindig célszerű letesztelned az indítólemezed, 
mielőtt félreteszed vészhelyzet esetére! </em> Ha hibás a betöltés, olvass
tovább.

<sect>Hibakeresés, avagy a Legyőzött Gyötrődése.<p>
<label id="troubleshooting">
<nidx/troubleshooting/

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ő:

<itemize>

<item>Ilyesmi üzenetet láthatsz:

<verb>Kernel panic: VFS: Unable to mount root fs on XX:YY
</verb>

Ez gyakori probléma, és csak néhány oka lehet. Először, ellenőrizd az
<it/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 <tt/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.


<item>Nézd meg, hogy a gyökér lemez tényleg tartalmazza-e az alkönyvtárakat,
amit tartalmaznia kellene. Könnyű véletlenül rossz szintre másolni őket,
és ilyesmit kapsz végeredménynek: <file>/rootdisk/bin</file>, ehelyett:
<tt>/bin</tt> a gyökér lemezeden.

<item>Nézd meg, hogy van-e <file>/lib/libc.so</file> állomány ugyanazzal 
a lánccal, mint amit a merevlemezed <tt>/lib</tt> alkönyvtárában láthatsz.
<ncdx/libc.so/

<item>Ellenőrizd, hogy a lézető rendszered <tt>/dev</tt> 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 <tt>/dev/console</tt> láncok fontosak lehetnek.
<nidx/device (dev) directory/

<item>Ellenőrizd, hogy áttetted-e a <tt>/dev/tty1, /dev/null, /dev/zero,
/dev/mem, /dev/ram</tt> és <tt>/dev/kmem</tt> állományokat.

<item>Ellenőrizd a kernel konfigurációdat -- minden a bejelentkezés
pontjáig szükséges erőforrást bele kell fordítani, nem működik, 
ha modulba raktad. Tehát a <em>memórialemez és az ext2 támogatást
is bele kell fordítanod a kernelbe</em>.

<item>Ellenőrizd, hogy a kernel gyökér eszköz és memórialemez 
beállításai helyesek-e.

</itemize>

Ha ezeket az általános dolgokat megvizsgáltad, íme néhány konkrétabb
állomány, amit ellenőrizhetsz.

<enum>

<item>Győződj meg róla, hogy az <tt/init/-et <file>/sbin/init</file> vagy
<file>/bin/init</file> néven mellékelted. Ellenőrizd, hogy futtatható-e.
<ncdx/init/

<item>Futtasd a <tt>ldd init</tt>-et, hogy ellenőrizd az init eljáráskönyvtárait.
Általában ez csak a <tt/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. 

<item>Bizonyosodj meg róla, hogy a megfelelő betöltőket használod az
eljáráskönyvtárakhoz -- <tt/ld.so/-t az a.out-hoz, vagy <tt/ld-linux.so/-t
az ELF-hez.<nidx/loaders/

<item>Nézd meg az indítólemezed állományrendszerén az <file>/etc/inittab</file> 
állományban a <tt/getty/ (vagy valami <tt/getty/-szerű program, mint a
<tt/agetty/, <tt/mgetty/ vagy <tt/getty&lowbar;ps/) programhívásokat.
<ncdx/inittab/<ncdx/getty/ 
Kétszer is hasonlítsd össze ezeket a merevlemezeden lévő <tt/inittab/-bal.
Nézd meg az általad használt program manuálját, hogy egyáltalán értelmes
dolgok vannak-e benne. Az <tt/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 <tt/init/ és <tt/inittab/ programokra vonatkozó manuál 
oldalakat, valamint pontosan megvizsgálod, hogy mit is csinál a rendszered
induláskor. Ellenőrizd, hogy az <file>/etc/inittab</file>-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.

<item>Mint az <tt/init/-nél, futtasd az <tt/ldd/-t a <tt><cdx/getty/</tt>-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.

<item>Győződj meg róla, hogy csatoltál-e parancsértelmezőt (pl. <tt/bash/ vagy 
<tt/ash/), mely képes futtatni az rc szkriptjeidet.
<nidx/shells/

<item>Ha van <file>/etc/ld.so.cache</file> állomány a mentő lemezeden, 
generáld újra. 
<ncdx/ld.so.cache/

</enum>

<p>

Ha az <tt/init/ elindul, de a következő üzenetet kapod:
<verb>
        Id xxx respawning too fast: disabled for 5 minutes
</verb>
<ncdx/respawning too fast/

az az <tt/init/-ből jön, általában azt jelzi, hogy a <tt/getty/ vagy
<tt/login/ az elindulása után közvetlenül meg is hal.
<ncdx/init/<ncdx/getty/<ncdx/login/ 
Ellenőrizd a <tt/getty/ és a <tt/login/ futtatható állományokat és az
eljáráskönyvtárakat, amiktől függenek. Nézd meg, hogy a <file>/etc/inittab</file> 
állománybeli meghívásuk helyes-e. Ha szokatlan üzeneteket kapsz a <tt/getty/-től,
az jelentheti azt, hogy hibásan hívod a <file>/etc/inittab</file>-ból.
A <it/getty/ paraméterei változnak, még az <tt/agetty/ különböző verziói
között is számos inkompatibilis hívásformát jeleztek.
<ncdx/inittab/

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 <ref id="PAMNSS" 
name="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  
<file>/etc/shadow</file> állományt. 

Ha megpróbálsz néhány futtatható állományt lefuttatni, mint például a <tt/df/
parancsot, ami megtalálható a mentő lemezeden, és ilyen üzenetet kapsz:
<tt/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.

<sect>Vegyes témakörök.<p>

<sect1>A gyökér állományrendszer méretének csökkentése<p>
<label id="slimfast">

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:

<descrip>

<tag/Lemez sűrűségének növelése/ Alapértelmezés szerint a formázott
floppy lemezek 1440K méretűek, de nagyobb sűrűségre is formázhatók. 
Az <file>fdformat</file> 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 <file>fdformat</file> manuált és a 
<file>/usr/src/linux/Documentation/devices.txt</file>-t.

<tag/Parancsértelmező cseréje/ A Linux néhány népszerű parancsértelmezője,
mint a <tt/bash/ és a <tt/tcsh/, nagy és sok eljáráskönyvtárat igényel. 
Léteznek könnyű súlyú alternatív parancsértelmezők, mint az <tt/ash/, 
<tt/lsh/, <tt/kiss/ és a <tt/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: <url url="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 <tt/rc/-beli állományt, amit csatolni szeretnél az 
indítólemezedre.
<nidx/shells/

<tag/Eljáráskönyvtárak és binárisok megnyirbálása/ A legtöbb eljáráskönyvtár 
és bináris nincs megnyirbálva (debug információt is tartalmaznak). A 
'<tt>file</tt>' programot lefuttatva ezekre az állományokra
megtudod, hogy '<tt>not stripped (nincs megnyírbálva)</tt>', vagy mégis.
Amikor binárisokat másolsz a gyökér állományrendszeredre, jó ötleg a
következőket használnod:
<nidx/libraries/

<verb>
        objcopy --strip-all HONNAN HOVÁ
</verb>

<ncdx/strip/<ncdx/objcopy/<nidx/libraries, stripping/
Amikor eljáráskönyvtárt másolsz, használd a következőt:

<verb>
        objcopy --strip-debug HONNAN HOVÁ
</verb>


<tag/Nem-kritikus állományok eszközlemezre másolása/ 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 <ref id="utilitydisk" name="Building a utility disk">
fejezetet a részletekért. Elgondolkodhatsz a modulok eszközlemezre való 
áthelyezéséről is.
<nidx/utility diskette/

</descrip>

<sect1>Nem memórialemez gyökér állományrendszerek.<p>
<label id="nonramdiskroot">
<nidx/ramdisk/

A <ref id="buildroot" name="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 <em/sokkal kevesebb helyet/ tudsz
majd használni.

<enum>

<item>Számold ki, hogy mennyi helyed lesz a gyökér állományok számára.

Ha egy indító/gyökér lemezt készítesz, rá kell hogy férjen egyetlen lemezre
a kernel összzes blokkja és a gyökér állományrendszer összes blokkja.

<item>Használd az <tt/mke2fs/-t, hogy megfelelő méretű gyökér állományrendszert
készíthess a lemezen.

<item>Méretezd az állományrendszert a fentiek szerint.

<item>Ha készen vagy vele, csatold le az állományrendszert, és 
másold át egy lemez állományba, de <em/ne tömörítsd be/.

<item>Vidd át a kernelt a fent leírt módon a lemezre. Amikor 
elkészültél a memórialemez szó kiszámolásával, <bf/állítsd a
14. bitet nullára/, hogy jelezd a rendszer számára, nem kell
a gyökér állományrendszert memórialemezre tölteni. Futtasd a
<tt/rdev/'s parancsot a fent leírt módon.
<ncdx/rdev/<nidx/ramdisk word/

<item>Vidd át a gyökér állományrendszert, mint korábban.
</enum>

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
<em/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.

<sect1>Eszközlemez készítése.<p>
<label id="utilitydisk">
<nidx/utility diskette/

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 
<tt>/usr</tt>-be illesztve is használhatjuk. Ebben az esetben a 
binárisokat a <tt>/bin</tt> alkönyvtárba kell tenni az eszköz lemezeden, 
hogy a path-ban levő <file>/usr/bin</file> megtalálja őket. Egyéb az
eszköz lemezen elhelyezett binárisokhoz szükséges eljáráskönyvtárakat
a <tt>/lib</tt> alkönyvtárba kell tenned az eszközlemezen.

Több fontos dolgot észben kell tartanod, amikor eszközlemezt tervezel:

<enum>

<item>Ne tegyél kritikus rendszer binárisokat és eljáráskönyvtárakat
az eszközlemezre, mert nem lesz beilleszthető, míg a rendszer teljesen
el nem indult.

<item>Nem tudsz egyszerre floppy lemez és floppy szalag meghajtót használni.
Ez azt jelenti, hogyha floppy szalag meghajtód van, nem fogsz tudni hozzáférni,
amíg az eszköz lemezed be van illesztve.

<item>Az eszközlemezen lévő állományok hozzáférése lassú lesz.
</enum>

A <ref id="utilitylist" name="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 (<tt/format, fdisk/), állományrendszer
vizsgáló és manipuláló programok (<tt/mke2fs, fsck, debugfs, isofs.o/), kicsi 
szövegszerkesztő (<tt/elvis, jove/), tömörítő és archiváló eszközök (<tt/gzip, 
tar, cpio, afio/), szalag eszközök (<tt/mt, tob, taper/), kommunikációs eszközök
(<tt/ppp.o, slip.o, minicom/) és eszközkezelő szerszámok (<tt/setserial, mknod/).

<sect>Hogy csinálják a profik?<p>
<label id="pros">

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.
<nidx/initial ramdisk (initrd)/

Néhány indítólemezt <bf/initrd/ (<bf/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 <tt/initrd/-vel kapcsolatos részletesebb információkért nézd meg a 
<file>/usr/src/linux/Documentation/initrd.txt</file> és a
<url url="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 <ref id="usinglilo" 
name="Transferring the kernel with LILO"> fejezetben bemutatotthoz. A 
Slackware indítólemez indításkor a LILO <tt/message/ paraméterét használva
egy ``<tt/Welcome to the Slackware Linux bootkernel disk!/'' üzenettel
fogad (<tt/Ü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 <tt/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 <tt/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 <tt><cdx/initrd/</tt>-t használja, hogy végigvezesse a felhasználót
a telepítés lépésein. Úgy tűnik, hogy egyaránt egyedi <tt/init/-et és 
egyedi parancsértelmezőt használ.

<sect>Gyakran ismételt kérdések (GYIK) listája<p>

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

Lásd a <ref id="troubleshooting" name="Troubleshooting"> fejezetet feljebb.

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

Lásd a <ref id="pros" name="What the pros do"> fejezetet feljebb.

<bf>K. Hogyan készíthetek XYZ eszközmeghajtóval indítólemezt?
</bf><p>

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 <tt/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.
<nidx/device drivers/

Le kell ellenőrizned a gyökér eszközödet a kernelben a következő paranccsal:
<verb>
        rdev zImage
</verb>

Az <tt/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
<tt/rdev/ parancsot, hogy megváltoztasd. Például az a kernel, amit
próbáltam, <file>/dev/sda2</file>-re volt állítva, de az én SCSI
gyökér partícióm a <file>/dev/sda8</file>. Ahhoz, hogy gyökér
lemezként használhassam, a következő parancsot kell kiadnom:

<verb>
        rdev zImage /dev/fd0
</verb>

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.

<bf>K. Hogy frissíthetem az indítólemezem a legfrisebb kernellel?
</bf><p>
<nidx/kernel, updating/

Á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.

<bf>K. Hogy frissíthetem a gyökér lemezem állományait újakkal? 
</bf><p>
<nidx/root filesystems, updating/

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 <ref id="creatingrootfs" name="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:

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

Miután elvégezted a változtatásokat, folytasd, mint korábban (<ref 
id="wrappingitup" name="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. 

<bf>K. Hogy távolíthatom el a LILO-t úgy, hogy újra DOS-t indíthassak?
</bf><p>
<ncdx/LILO/
<nidx/Master Boot Record (MBR)/

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

<tscreen><verb>
        /sbin/lilo -u
</verb></tscreen>

parancsot.Használhatod a <tt/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 

<tscreen><verb>
        FDISK /MBR
</verb></tscreen>

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.

<bf>Q. Hogy indítsak, ha elvesztettem a kernelem és az indító lemezem?
</bf><p>

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 <file>/dev/sda2</file>
eszközre mutat, holott az én gyökér Linux partícióm <file>/dev/sda8</file>-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 <tt/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:
<nidx/ramdisk word/<ncdx/rdev/

<tscreen><verb>
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
</verb></tscreen>

A memórialemez szót fejlebb, a <ref id="ramdiskword" 
name="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:

<tscreen><verb>
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
</verb></tscreen>

Ha beállítottad ezeket az értékeket, kiírhatod az állományt akár a
Norton Utilities Disk Editort, akár a <tt/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.

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

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 <tt/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 <tt/dd/
nyers eszköz interfészt használ.

Az eredeti lemásolásához a
<tscreen><verb>
        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
</verb></tscreen>
utasítást használd.

Ha elhagyod a <tt/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:
<tscreen><verb>
        dd if=ÁLLOMÁNYNEVE of=ESZKÖZNEVE
</verb></tscreen>

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:
<tscreen><verb>
        dd if=/dev/fd0 of=/dev/fd1
</verb></tscreen>

<bf>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?
</bf><p>
<nidx/kernel, parameters/

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.:

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

<itemize>

<item>Beírhatod minden egyes LILO-val történő rendszerindításkor a 
parancssorba. Ez meglehetősen unalmas, fárasztó.

<item>Használhatod a LILO ``<tt/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.

<item>Használhatod a <tt/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.

</itemize>

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

<tscreen><verb>
        zImage  aha152x=0x340,11,3,1 root=/dev/sda1 lock
</verb></tscreen>

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

Egy példa az APPEND sorra:
<tscreen><verb>
        APPEND = "aha152x=0x340,11,3,1"
</verb></tscreen>

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 <file>/usr/src/linux</file>  
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 <tt/indító/ leíró elővigyázatlan használata tönkreteheti a
partíciókat.

<bf>K. Bekapcsoláskor "<tt>A: cannot execute B</tt>" hibaüzenetet kapok. Miért?
</bf><p>
<nidx/hardcoded locations/

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 <tt/strings/ parancsot, és átküldöd csövön a 
<tt/grep/-nek.

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

<item>A shutdown néhány verziója a <file>/etc/reboot</file>állományt
bedrótozva tartalmazza, tehát a <tt>reboot</tt>-ot a <tt>/etc</tt> 
alkönyvtárba kell tenni.

<item>Az <tt/init/ már legalább egy embernek problémát okozott, 
nem találta meg a kernel az <tt/init/-et.

</itemize>

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. <tt/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 <tt/inittab/ 
és <file>/etc/rc.d</file> állományt, ami a merevlemezeden található.

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

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

<verb>
        Ramdisk driver initialized : 16 ramdisks of 0K size
</verb>

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: 

<tscreen><verb>
ramdisk= 0
</verb></tscreen>

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.

<APPENDIX>

<sect>Erőforrások és mutatók<label id="references">.<p>

Ha újraírsz egy csomagot, mindig a legfrisebb változatot szerezd be,
ha nincs jó indokod másként cselekedni.

<sect1>Előre elkészített indítólemezek.<p>
<label id="distbootdisks">

Ezek a disztribúciós lemezek forrásai. <em>Légyszíves tükör szervert
használj a letöltéskor, hogy csökkentsd ezen gépek terheltségét.</em>

<itemize>

<item> <url
url="http://metalab.unc.edu/pub/Linux/distributions/slackware/current/bootdsks.144/"
name="Slackware indítólemezek">,
<url
url="http://metalab.unc.edu/pub/Linux/distributions/slackware/current/rootdsks/"
name="gyökérlemezek">

és <url url="http://www.slackware.com/getslack/" name="Slackware tükör szerverek">

<item> <url
url="http://metalab.unc.edu/pub/Linux/distributions/redhat/current/i386/images/"
name="RedHat indítólemezek"> és <url
url="http://www.redhat.com/mirrors.html" name="Red Hat tükör szerverek">

<item> <url url="ftp://ftp.debian.org/pub/debian/dists/stable/main/disks-i386/current/"
name="Debian indítólemezek"> és <url
url="ftp://ftp.debian.org/pub/debian/README.mirrors.html" name="Debian tükör szerverek">

</itemize>

A disztribúciós lemezek mellett a következő mentő lemezeket használhatod.
Ha máshogy nem rendelkeztek, a <url 
url="http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html">
alkönyvtárban megtalálod őket.

<itemize>

<item><tt/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.<p>

<item><tt/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.<p>

<item><tt/resque&lowbar;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.<p>

<item><tt/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.<p>
<url url="http://metalab.unc.edu/pub/Linux/system/recovery/images">

</itemize>

<sect1>Mentő csomagok.<p>

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 <url
url="http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html"> 
címet további információkért. <bf/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.

<sect1>Graham Chapman parancsértelmező szkriptje<p>

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:

<url url="http://www.zeta.org.au/&tilde;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!

<sect1>LILO -- a Linux betöltő.<p>
<ncdx/LILO/

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 <url url="ftp://tsx-11.mit.edu/pub/linux/packages/lilo/">
címen, valamint a Metalab-on és a tükrözésein.

<sect1>Linux GYIK és HOGYANok.<p>

Több forrásból is beszerezheted őket. Nézd meg a <tt/news.answers/ 
és a <tt/comp.os.linux.announce/ usenet hírcsoportokat.

A GYIK-et megtalálod a <url
url="http://metalab.unc.edu/pub/Linux/docs/faqs/linux-faq"> címent, és a 
HOGYAN-okat a <url url="http://metalab.unc.edu/pub/Linux/docs/HOWTO">
címen.

A Linux legtöbb dokumentációját megtalálod a <url name="A Linux
Dokumentációs Project honlapja" url="http://metalab.unc.edu/LDP/">
címen.

Ha végképp kétségbeestél, küldj levelet a <tt/mail-server@rtfm.mit.edu/
címre, a levél törzse legyen ``<tt/help/'', majd kövesd a kapott utasításokat.

<sect1>Memórialemez használat.<p>
<nidx/ramdisk/

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: <file>/usr/src/linux/Documentation/ramdisk.txt</file>.
Ezt Paul Gortmaker írta, és tartalmaz egy fejezetet a tömörített 
memórialemezekről. 

<sect1>A Linux betöltési folyamata.<p>
<nidx/boot process/

A Linux betöltő folyamatának részletesebb ismertetéséhez íme néhány
kiindulási pont:

<itemize>

<item>A Linux Rendszeradminisztrátorok Kézikönyvének van egy a
betöltéssel foglalkozó fejezete, lásd:
<url url="http://metalab.unc.edu/LDP/LDP/sag/c1582.html">

<item>A LILO ``Technikai áttekintésében'' a <url
url="http://metalab.unc.edu/pub/Linux/system/boot/lilo/lilo-t-21.ps.gz">
címen megtalálható a betöltési folyamat kifejezetten technikai, 
alacsony szintű leírása, egészen addig, amíg a kernel elindul.

<item>A forráskód a kézikönyvek alapja. Alább néhány az indítás folyamatához
kapcsolódó kernel állományt találsz. Ha megvan a Linux kernel forráskódja, 
megtalálod ezeket az állományokat a gépeden az <file>/usr/src/linux</file>
alkönyvtárban. Más lehetőség, hogy megnézed Shigio Yamaguchi (shigio@wafu.netgate.net) 
nagyon szép hypertext-es kernel böngészőjét a <url url="http://wafu.netgate.net/linux/">
címen.
Néhány fontos állomány:

<descrip>

<tag>arch/i386/boot/bootsect.S,setup.S</tag>
    A bootszektor számára tartalmaz assembly kódot.

<tag>arch/i386/boot/compressed/misc.c</tag>
    A kernel kitömörítéséhez tartalmaz kódot. 

<tag>arch/i386/kernel/</tag>
    Ez az alkönyvtár tartalmazza a kernel inicializációs kódját.
    A <tt/setup.c/ tartalmazza a memórialemez szót.

<tag>drivers/block/rd.c</tag>
    A memórialemez meghajtó szoftverét tartalmazza. A <tt/rd&lowbar;load/ és
    a <tt/rd&lowbar;load&lowbar;image/ eljárások blokkokat olvasnak egy
    eszközről a memórialemezre. Az <tt/identify&lowbar;ramdisk&lowbar;image/
    eljárás meghatározza, hogy milyen állományrendszert talált, és tömörítve
    van-e.
</descrip>

</itemize>


<sect>LILO indulási hibakódok.<p>
<nidx/LILO, error codes/

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
<url url="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 ``<tt/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. 

<descrip>

<tag>(semmi)</tag>
    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.

<tag/L/   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).
    
<tag/LI/   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 
    <file>/boot/boot.b</file> elmozgatása a map telepítő futtatása nélkül.

<tag/LIL/   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.

<tag/LIL?/   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 <file>/boot/boot.b</file>
    elmozgatása a map telepítő futtatása nélkül.

<tag/LIL-/   A leíró tábla hibás. Ez lehet egyrészt a geometria hibája, vagy
    a <file>/boot/map</file> elmozgatásaa map telepítő futtatása nélkül.

<tag/LILO/   All parts of LILO have been successfully loaded.

</descrip>

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 <tt/0x00/ through
<tt/0xbb/.  See the LILO User Guide for an explanation of these.


<sect>Példa egy gyökérlemez könyvtárlistájára.<p>
<label id="listings">
<nidx/root filesystem/

Íme egy példa a gyökér állományrendszerre és egy eszközlemezre.
<p>

<tscreen><verb>
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:

</verb></tscreen>

<sect>Példa egy eszköz lemez alkönyvtár listájára.<p>
<label id="utilitylist">
<nidx/utility diskette/

<tscreen><verb>
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*
</verb></tscreen>


</article>

