NFS-Root Mini HOGYAN


Andreas Kostyrka, andreas@ag.or.at

1997, augusztus 8. Verziószám:8

Ez a Mini-HOGYAN megpróbálja elmagyarázni, hogy hogyan kell beállítani az olyan ,,lemez nélküli'' (,,disk-less'') Linux munkaállomásokat, amelyek a saját root fájlrendszerüket NFS-en keresztül mountolják. Ennek a Mini-Hogyannak a legfrissebb verziója mindig megtalálható az ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/NFS-Root címen, vagy bármely HOZZÁD KÖZEL ESŐ sunsite tükrön.


    Tartalomjegyzék

    1. Szerzői jog

    • 1.1 Közreműködők

    2. Általános áttekintés

    3. A szerver beállításai

    • 3.1 A kernelek összeállítása
    • 3.2 A root fájlrendszer létrehozása
      • 3.2.1 A fájlrendszer másolása
      • 3.2.2 Változtatások a root fájlrendszerhez képest
      • 3.2.3 A fájlrendszer exportálása
      • 3.2.4 A RARP beállítás
      • 3.2.5 A BOOTP beállítása
      • 3.2.6 A hardvercímek kitalálása

    4. A munkaállomás boolotása

    • 4.1 Boot rom használata
    • 4.2 Nyers kernel lemez használata
    • 4.3 Bootbetöltő (bootloader) és a RARP együttes használata
    • 4.4 Bootbetöltő használata RARP nélkül

    5. Az ismert problémák

    • 5.1 A /sbin/init nem indul.
    • 5.2 A /dev problémák.

    6. Egyebek


    1. Szerzői jog

    (c) 1996 Andreas Kostyrka e9207884@student.tuwien.ac.at vagy andreas@ag.or.at

    Hacsak a dolog másképp nem áll, a Linux Hogyan dokumentumok szerzői joga mindig a szerzőket illeti meg. Bár a Linux HOGYAN dokumentumok másolása, illetve terjesztése teljes egészében vagy részlegesen is történhet - bármilyen fizikai vagy elektronikus adatközvetítő eszközön -, ám ezen szerzői jogot tartalmazó megjegyzést is tartalmaznia kell valamennyi másolatnak. Kereskedelmi viszontterjesztése is engedélyezett, illetve támogatott; mindemellet, a szerzőt valamennyi disztibúcióban fel kell tüntetni.

    Valamennyi fordításnak, ezen dokumentum felhasználásával készült egyéb dokumentációnak vagy kiegészítő anyagnak - értve itt bármilyen Linux HOGYAN dokumentumot - biztosítania kell ezen szerzői jog megjegyzést. Ez az amit egy a HOGYAN-ból származtatott munkában nem írhatsz a magad nevére. Bizonyos körülmények esetén engedélyezett az e szabályok alóli kívétel: kérjük, hogy az ilyen ügyekben lépj kapcsolatba a Linux HOGYAN koordinátorával az alábbi címen.

    Röviden, mi elő kívánjuk segíteni ezen információk terjesztését a lehetséges legtöbb csatornán keresztül. Ám mindezek mellet e dokumentumok szerzői jogát is meg kívánjuk tartani, és szeretnénk, hogy bármely viszontterjesztett HOGYAN-ban fel legyen tüntetve.

    Ha kérdéseid merülnének fel, kérjük lépj kapcsolatba Andreas Kostyrka-val andreas@ag.or.at , e Mini-HOGYAN szerzőjével, vagy Tim Bynum-mal, a Linux HOGYAN koordinátorával a linux-howto@sunsite.unc.edu email címen.


    Copyright
    (c) 1996 Ofer Maor (ofer@hadar.co.il)

    Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

    All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below.

    In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.

    If you have questions, please contact Ofer Maor (ofer@hadar.co.il), the author of this mini-HOWTO, or Greg Hankins, the Linux HOWTO coordinator, at gregh@sunsite.unc.edu via email, or at +1 404 853 9989.

    If you have anything to add to this Mini-Howto, Please mail the author (Ofer Maor, ofer@hadar.co.il), with the information. Any new relevant information would be appreciated.


    1.1 Közreműködők

    • Avery Pennarun apenwarr@foxnet.net (Hogyan bootoljunk LILO nélkül.)

    • Ofer Maor ofer@hadar.co.il (aki gondoskodott egy jobb mini hogyanról a ,,lemez nélküli'' munkaállomások beállításával kapcsolatban.)

    • Christian Leutloff leutloff@sundancer.tng.oche.de (aki a halózatibootolással (netboot) kapcsolatos információkkal látott el.)


    2. Általános áttekintés

    Általánosan a következő problémák merülnek fel a munkaállomásokkal kapcsolatosan:

    • Ki kell derítenie a saját IP címét és - amennyiben szükséges - a maradék Ethernet konfigurációt is.

    • Ismernie kell az NFS szervert és a saját, mountolt root fájlrendszerének elérési útját.

    A Linux kernel jelenlegi NFSROOT kivitelezése (az 1.3.7x verziótól) engedélyezi a következő ,,megfejtéseket'':

    • Az IP cím felfedhető a RARP segítségével, vagy a teljes ethernet konfiguráció kernelparaméterként csatolható a kernelhez a LILO vagy a LOADLIN-en keresztül.

    • Az NFS mountolás elérési útja megadható kernel paramáterként. Ha ez nincs megadva, akkor a kernel feltételezi, hogy az RARP szerver egyben az NFS szerver is és ugyanazt az elérési utat használja alapértelmezésben mindkettőre. (pillanatnyilag az alapértelmezett érték a kernelben: /tftpboot/<számítógép-IP-címe>.)

    • A kliens konfiguráció a BOOTP által is felfedezhető.

    Mielőtt azonban elkezdenénk a lemezegység nélküli (diskless) környezet beállítását, el kell döntened, hogy a LILO vagy a LOADLIN felhasználásával fogsz-e bootolni. A mesterkedés előnye a rugalmasság, hátránya viszont a sebesség. A Linux kernel bootolása a LILO felhasználása nélkül gyorsabb. Ez persze lehet szempont, de lehet, hogy nem az.


    3. A szerver beállításai


    3.1 A kernelek összeállítása

    Jó, ha a szerver kerneljében benne van a RARP támogatás. Ennek mindenképpen benne kell lennie, ha a bootolást kernelparaméterek nélkül kívánjuk véghezvinni. Másrészről viszont nincs a segítségedre, ha a kliens nincs a szerverrel egyazon alhálózaton (subnet).

    A munkaállomások kerneljébe a következő minimum beállításokat kell belefordítani:

    • Az NFS fájlrendszert. (Nem szükséges az ext2 támogatás befordítása, ezért elegendő, ha csak modulként adjuk meg.)

    • A ,,Root on NFS''-t engedélyezni kell.

    • A munkaállomás hálózati kártyájának Ethernet meghajtóját (driver).

    • Attól függően, hogy szükséges-e a jelenéte, kívánatos lehet a RARP vagy a BOOTP támogatás is az NFS számára. (Arra a kérdésre gondoltam, amit az NFS után tesz fel a ,,make config''-ban.)


    3.2 A root fájlrendszer létrehozása


    3.2.1. A fájlrendszer másolása

    Figyelem: bár ezek az útmutatások valószínűleg működnek nálad, ez természetesen nem jelenti azt, hogy teljes értelemben jellemzőek valamennyi Linux disztibúció környezetében. Hogy jobban be tudd állítani a root fájlrendszert a kliensek számára, nézd meg az NFS-Root-Kliens mini hogyan-t, amit Ofer Maor ofer@hadar.co.il írt.

    Miután eldöntötted, hogy merre legyen a /root könyvtárfa, hozd létre azt - például a következő parancsokkal:

    mkdir -p <könyvtár> és a tar cClf / - | tar xpCf <könyvtár> -

    Ha a LILO nélkül bootolod a kernelt, a rootkönyvtár megadása a /tftpboot/<IP-cím> módon történik. Ha nem kultiválod ezt a formát, megváltoztathatod a Makefile kezdeti részét a kernelforrásban. Keress valami ilyen sort, hogy:

    NFS_ROOT = -DNFS_ROOT="\"/tftpboot/%s\""

    Ha ezt a sort megváltoztatod, újra kell fordítanod a kernelt.

    3.2.2. Változtatások a root fájlrendszerben

    Most válogassuk ki a szükségtelen fájlokat és ellenőrizzük le a /etc/rc.d szkripteket. Néhány fontos pont:

    • Fontos rész az eth0 beállítása. A munkaállomáshoz szükséges is egy eth0 - legalább részleges - beállítása. Nem okos dolog a munkaállomás IP címének átállítása a szerver IP címére.
      .(Legalábbis ez történt az író egyik korai probálkozásainál.)

    • A másik pont a munkaállomás /etc/fstab fájlja. Ezt az NFS fájlrendszer számára kell beállítani.

    • FIGYELEM: Ne keverd össze a szerver root fájlrendszerét a munkaállomás root fájlrendszerével. (Már kijavítottam az rc.inet1 fájlt a szerveren, és csodálkoztam, hogy a munkaállomás még mindig nem működött.)

    3.2.3. A fájlrendszer exportálása

    Exportáld ki a könyvtárat a munkaállomás felé. Nézd meg az exports(5) kézikönyvlapját (manual page). Az a legvalószínűbb, hogy újra kell majd indítani az nfsd/mountd démonokat ezen változtatások után. A RedHat Linux alatt ez könnyen megtehető begépelve a következõket: /etc/rc.d/init.d/nfs stop ; /etc/rc.d/init.d/nfs start .

    3.2.4. A RARP beállítása

    Állítsd be a RARP szolgáltatást valahol a hálózaton. Ha az nfsroot paraméter nélkül bootolsz, a RARP szervernek kell lennie az NFS szervernek is egyben. Általában amúgy is ennek kell lennie az NFS szervernek. Hogy ezt megtedd, a kernelt a RARP támogatással futtatsd. Ez megtehető, futtatva (és installálva ezt valahová a szerver /etc/rc.d könyvtárába!) a:

    /sbin/rarp -s <ip-cím> <hardver-cím>

    ahol

    az ip-cím

      a munkaállomás IP címe, és

    a hardver-cím

      a munkaállomás hálózatikártyájának Ethernet címe.

    például:

    /sbin/rarp -s 131.131.90.200 00:00:c0:47:10:12

    Természetesen használhatsz szimbolikus nevet is az IP cím helyett, hiszen a szerver éppúgy képes kitalálni ebből az IP címet. (a /etc/hosts fájl, vagy a DNS visszakeresések (lookups) alapján).

    3.2.5. A BOOTP beállítása

    A BOOTP beállításához szerkeszd át a /etc/bootptab fájlt. Ennek nézz utana a bootp(8) és a bootptab(5) kézikönyvlapokon (man pages).

    3.2.6. A hardvercímek meghatározása

    Nem tudom a harver címét! Ezt honnan tudhatom meg?

    • Bootold az általad készített kernellemezt és figyeld meg azt a sort, ahol a hálózati kártya felismerése történik. Ez általában 6 hexadecimális byte-ot tartalmaz és ennek kell lennie a kártya címének.

    • Bootold a munkaállomást olyan operációs rendszerrel, amely engedélyezi a TCP/IP hálózatot. Majd ping -eld meg a szerverről. Nézz bele az ARP-cache-be, futtatva a következő parancsot: /sbin/arp -a


    4. A munkaállomás bootolása


    4.1 Boot rom használata

    Mivel vagyok olyan állat és ezt eddig még nem használtam, ezért csak a következő tippeket tudom erre adni (Christian Leutloff figyelme jóvoltából <leutloff@sundancer.tng.oche.de>:

    • Nem használhatsz ,, normál'' boot romokat.

    • Hozzáférhető Gero Kuhlmann hálózati bootolási csomagja (netboot), amely gondoskodik a Linux számára szükséges bootromokról és további információkról. A netboot csomag beszerezhető a helyi Linux tükörről, vagy a Debian csomagból is (netboot-0.4).

    • Figyelmesen olvasd el a boot romoddal érkező dokumentációt.

    • Esetleg engedélyezned kell a szerveren a tftpd démont, de ez persze függ a boot romod kernelbetöltési módjától.

    • További információk találhatók az említett Linux változatok boot rom forgalmazóiról a fentiekben hivatkozott csomagokban, mivelhogy nem mindenki fér hozzá prom égetőkhöz sem :( (különösen érvényes ez Európára, legalábbis ahogyan eddig ezt megállapítottam). Remélhetőleg előbb-utóbb az ilyen információkat is közzétehetem.


    4.2. Egy nyers kernel lemez használata

    Amennyiben rendelkezel egy - az alapértelmezett elnevezési módnak megfelelő - hibátlan nevű root fájlrendszerrel és a NFS szervered egyben a RARP szerver is (amelyik azonos alhálózaton van (subnet) a többi számítógépeddel), nos ebben az esetben bootolhatsz egy lemezre (disc) felhajított kernelt is. (A kernelben a root eszközmeghajtót 0:255 értékre kell állítanod.) Ez feltételezi, hogy a szerveren található root könyvtár a /tftpboot/IP-cím (ez az érték megváltoztatható a kernel fordításakor).


    4.3 A bootbetöltő (bootloader) és a RARP együttes használata

    Add meg a kernelnek a bootoláshoz valamennyi szükséges paramétert, és tedd még hozzá az nfsroot=<szerver-ip-címe>:</mountolás/elérési/útja>, ahol a szerver-ip-címe az NFS szervered IP címe, és a /mountolás/elérési/útja pedig egyenlő a root könyvtár elérési útjával.

    Tippek:

    • A LILO használatakor vedd figyelembe a ,,lock'' - azaz a lezárási - sajátosságot: Valamennyi megfelelő paraméter begépelése után a paraméterekhez add még hozzá a ,,lock''-ot. A legközelebbi bootolás alkalmával hagyd, hogy a LILO timeout-ot kapjon.

    • Egy munkaállomás-specifikus bootlemez létrehozásakor használhatod a lilo.conf fájlban az append= lehetőséget is.

    4.4. A bootbetöltő (bootloader) használata RARP nélkül

    Ezenkívűl az nfsroothoz add még hozzá az nfsaddrs=<wst-IP>:<srv-IP>:<gw-IP>:<netm-IP>:<számítógépnév> parancssori paraméter utasítást a kernel számára. A kernel be fogja állítani az eth0 értékeit a kapott paraméterekkel:

    wst-IP

      a számítógép (wst=munkaállomás) IP címe

    srv-IP

      az NFS szerver IP címe

    gw-IP

      a gateway IP címe

    netm-IP

      a hálózati maszk (netmask) IP értéke

    számítógépnév

      a számítógép neve


    5. Ismert problémák


    5.1. A /sbin/init nem indul el.

    Egy igen ismert probléma a /sbin/init esetében, hogy némelyik jelenlegi disztribúcióban a /sbin/init dinamikusan linkelt. Így neked kell ellátnod a helyes /lib beállítást a klienshez. Ezt könnyen ellenőrizheted, ha megpróbálod helyettesíteni a /sbin/init -et (a kliens részére) egy statikusan likelt ,,Hello Világ'' programmal. Ezzel meggyőződhetsz arról, hogy valami nagyobb zűrről van-e szó, vagy ,,csak'' a dinamikus linkelés miatt van a probléma.


    5.2 A /dev zűrjei.

    Ha kapsz néhány elferdített üzenetet a tty-okról a bootolás ideje alatt, akkor biztos lehetsz benne, hogy le kell futtatnod a MAKEDEV parancsot a kilenstől a /dev könyvtárban. Vannak olyan híresztelések, hogy ez nem működik együtt olyan operációs rendszerekkel, amelyek 64 bites dev számértékeket használnak Emiatt kell lefuttatnod a MAKEDEV parancsot a /dev könyvtárban. Kérlek értesíts arról, hogy mely operációs rendszerek esetében lép fel ez a probléma. Időlegesen megoldás lehet a problémára, ha létrehozol egy kisméretű /dev ram diszket a boot folyamat még korai szakaszában, és újrainstallálod a eszköz csomópontokat (device nodes) minden alkalommal.


    6. Egyebek

    • BOOTP kliens szerezhető be a következő ftp helyről:
      :ftp://sunsite.unc.edu/system/Network/admin/bootpc.v045.tgz

    • Az initrd -vel (amelyet már tartalmaz a Linux 2.0) igen jól működésre bírhatók a lemez nélküli (diskless) munkaállomások. Az initrd valójában mindig jó alternatíva a még inkább testreszabott beállítások végrehajtására.

    • A tervezett bootpd alapú bootolásokra ez valójában talán nem is volt szükséges, mivel a Linux 2.0 tartalmazza is azt a lehetőséget, hogy a BOOTP-t használjuk a RARP helyett. (Hogy még precízebb legyen a dolog, mindkettőt belefordíthatod a kernelbe és majd a gyorsabban reagáló győz.)

    • A kernelforrás Documentation könyvtárában található egy fájl az NFS-Root rendszerekről.

    • Közkézen forog egy patch is, amely engedi az NFS feletti swappolást. Ezt el is küldték a részemre (éppen egy erőteljes leterheltségi munkafázis közepén), de bárhogy is irányítottam a levelezésemet, sajnos valahogy elvesztettem a levelet. :(

      Talán be tudod szerezni a http://www.linuxhq.com/ címen, a nem hivatalos patch-ek csoportjában.

    • A publikus PGP kulcsom beszerezhető az andreas@ag.or.at címről.

      Az aláírásom: F1 F7 43 D5 07 C4 6C 87 BF 6B 33 A2 2C EE 5A F9.


    Magyar változat: Murzsa Norbert email: kuksi@igyuk.hu