FreeBSD kézikönyv
Előző | Fejezet 19. GEOM: A moduláris lemezszervező rendszer | Következő

# 19.6. A lemezes eszközök címkézése

A rendszer indítása közben a FreeBSD rendszermagja a talált eszközöknek megfelelően mindegyiknek létrehoz egy-egy eszközleírót. Ezzel a próbálgatásos módszerrel együtt jár néhány gond, például mi történik akkor, ha az új lemezes eszközt USB-n keresztül adjuk a rendszerhez? Nagyon valószínű, hogy ez az eszköz megkapja a `da0` nevet és ezzel az eredeti `da0` eszköz eltolódik a `da1` névhez. Ennek köszönhetően az `/etc/fstab` állományban felsorolt állományrendszerek csatolása veszélybe kerül, aminek következtében akár meghiúsulhat a rendszerindulás is.

Az egyik lehetséges megoldása a problémának, ha sorbafűzzük a SCSI eszközeinket, és így a SCSI-kártyához kapcsolt újabb eszköz egy addig nem használt számot fog birtokba venni. Mi helyzet azonban az USB-s eszközökkel, amelyek kiüthetik az elsődleges SCSI-lemezeinket? Ez egyébként azért történhet meg, mert az USB-s eszközöket általában hamarabb keresi a rendszer, mint a SCSI kártyán levő eszközöket. Megoldhatjuk úgy ezt a gondot, hogy csak azután csatlakoztatjuk az említett eszközöket, miután a rendszer elindult. Megoldhatjuk viszont úgy is, hogy csak egyetlen ATA-meghajtót használunk és soha nem soroljuk fel a SCSI eszközöket az `/etc/fstab` állományban.

Ezeknél kínálkozik azonban egy jobb megoldás! A `glabel` nevű segédprogrammal a rendszergazda vagy a felhasználó úgy tudja címkézni a lemezmeghajtókat, hogy azok a `/etc/fstab` állományban szereplő címkéket használják. Mivel a `glabel` a címkét az adott szolgáltató utolsó szektorában tárolja el, ez a címke megmarad az újraindítás után is. Ha ezt a címkét eszközként használjuk, az állományrendszerek mindig ugyanarról a meghajtóról fognak csatolódni, függetlenül attól, hogy milyen eszközleírón keresztül érjük el ezeket.

> Megjegyzés: Egyáltalán nem állítottuk, hogy egy címke csak állandó lehet. A `glabel` segítségével egyaránt létre lehet hozni állandó és átmeneti címkéket, de csak az állandó címke képes az újraindítás után is megmaradni. A két címketípus közti különbségeket a glabel(8) man oldal tárgyalja részletesebben.

## 19.6.1. Címketípusok és példák

A címkéknek két típusa létezik, az általános címke és az állományrendszer-címke. A címkék lehetnek állandóak vagy ideiglenesek. Az állandó címkék a tunefs(8) vagy newfs(8) parancsokkal hozhatóak létre. Ezek a címkék az adott állományrendszer típusa alapján elnevezett alkönyvtárakban jönnek létre a `/dev` könyvtáron belül. Például az UFS2 állományrendszer-címkék a `/dev/ufs` könyvtárban keletkeznek. Állandó címkék a `glabel label` paranccsal hozhatóak létre. Az ilyen címkék nem függenek az állományrendszerek típusától, a `/dev/label` könyvtárban jönnek létre.

Az ideiglenes címkék a következő induláskor elvesznek. Ezek a címkék a `/dev/label` könyvtárban keletkeznek, és ideálisak a kísérletezgetésre. Ideiglenes címkéket a `glabel create` paranccsal hozhatunk létre. Ezzel kapcsolatosan részletesebb felvilágosítást a glabel(8) man oldalon találhatunk.

Ha egy UFS2 állományrendszerre szeretnénk tenni egy állandó címkét az adataink megsemmisítése nélkül, adjuk ki a következő parancsot:

    # tunefs -L home /dev/da3

> Figyelem: Ha az érintett állományrendszeren nincs üres hely, ennek a parancsnak a használata adatvesztéshez vezethet. Ilyen esetben inkább a felesleges állományok eltávolításával kellene törődnünk, nem pedig címkék hozzáadásával.

Ezután egy címkének kell megjelennie a `/dev/ufs` könyvtárban, amelyet vegyünk is fel az `/etc/fstab` állományba:

    /dev/ufs/home		/home            ufs     rw              2      2

> Megjegyzés: Az állományrendszert tilos csatolni a `tunefs` futtatása alatt!

Most már a megszokott módon csatolhatjuk az állományrendszert:

    # mount /home

Ettől a ponttól kezdve, amíg a `geom_label.ko` modul betöltődik a rendszerindítás során a `/boot/loader.conf` állományon keresztül, vagy a `GEOM_LABEL` opció megtalálható a rendszermag konfigurációs állományában, az eszközleíró a rendszerre nézve minden komolyabb következmény nélkül megváltozhat.

Állományrendszereket létrehozhatunk alapértelmezett címkével is a `newfs` `-L` paraméterével. Erről részletesebben a newfs(8) man oldalon olvashatunk.

Az alábbi paranccsal tudjuk törölni a címkét:

    # glabel destroy home

A következő példában azt láthatjuk, hogyan címkézzük fel a rendszerindító lemezünk partícióit.

Példa 19-1. Partíciók címkézése a rendszerindító lemezen

A rendszerindításra használt lemezen levő partíciók felcímkézésével a rendszer képes lesz akkor is minden probléma nélkül elindulni, amikor áthelyezzük egy másik vezérlőre vagy átrakjuk egy másik számítógépbe. Például most tegyük fel, hogy van egy ATA csatolós lemezünk, amelyet a rendszer `ad0` néven ismert fel. Továbbá azt is feltételezzük, hogy a FreeBSD telepítése esetén megszokott partícionálási sémát választottuk, ahol `/`, `/var`, `/usr` és `/tmp` állományrendszereink, valamint egy lapozóterületünk van.

Indítsuk újra a rendszerünket és a loader(8) menüjében a 4 billentyű lenyomásával válasszuk az egyfelhasználós módot. Ezt követően adjuk ki a következő parancsokat:

    # glabel label rootfs /dev/ad0s1a
    GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs
    # glabel label var /dev/ad0s1d
    GEOM_LABEL: Label for provider /dev/ad0s1d is label/var
    # glabel label usr /dev/ad0s1f
    GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr
    # glabel label tmp /dev/ad0s1e
    GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp
    # glabel label swap /dev/ad0s1b
    GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap
    # exit

A rendszer indítása ezután többfelhasználós módban folytatódik. A rendszerindítás befejeződése után nyissuk meg az `/etc/fstab` állományt és írjuk át a hagyományos eszközneveket a hozzájuk tartozó címkékre. Az `/etc/fstab` végleges változata ennek megfelelően körülbelül így fog kinézni:

    # Eszköz                 Csatlakozási pont  Típus   Beállítások     Dump    Menet
    /dev/label/swap          none               swap    sw              0        0
    /dev/label/rootfs        /                  ufs     rw              1        1
    /dev/label/tmp           /tmp               ufs     rw              2        2
    /dev/label/usr           /usr               ufs     rw              2        2
    /dev/label/var           /var               ufs     rw              2        2

A rendszer most már újraindítható. Ha mindent jól csináltunk, akkor a rendszer indítása problémáktól mentesen fog zajlani és a `mount` parancs eredménye a következő lesz:

    # mount
    /dev/label/rootfs on / (ufs, local)
    devfs on /dev (devfs, local)
    /dev/label/tmp on /tmp (ufs, local, soft-updates)
    /dev/label/usr on /usr (ufs, local, soft-updates)
    /dev/label/var on /var (ufs, local, soft-updates)

A FreeBSD 7.2 kiadásától kezdődően a glabel(8) osztály az UFS esetén támogatja az `ufsid`, az állományrendszer egyedi rendszerszintű azonosítójából származtatott új címketípus használatát. Ezek a címkék a rendszer indítása során a `/dev/ufsid` könyvtárban jönnek automatikusan létre. Az `ufsid` címkéken keresztül tudunk az `/etc/fstab` állományban állományrendszereket csatlakoztatni. A jelenleg aktív állományrendszereket és azok `ufsid` azonosítóit a `glabel status` paranccsal tudjuk lekérdezni:

    % glabel status
                      Name  Status  Components
    ufsid/486b6fc38d330916     N/A  ad4s1d
    ufsid/486b6fc16926168e     N/A  ad4s1f

Ebben a példában az `ad4s1d` képviseli a `/var` állományrendszert, míg a `ad4s1f` a `/usr` állományrendszert. Az adott `ufsid` értékek megadásával az `/etc/fstab` állományban a következőképpen tudjuk csatlakoztatni ezeket az állományrendszereket:

    /dev/ufsid/486b6fc38d330916        /var        ufs        rw        2      2
    /dev/ufsid/486b6fc16926168e        /usr        ufs        rw        2      2

Minden `ufsid` címkével rendelkező partíció csatlakoztatható ezen a módon. Ekkor nem kell manuálisan létrehoznunk a számunkra állandó címkéket, így automatikusan élvethezhetjük az eszköznévtől független csatlakoztatás előnyeit.

Előző | Tartalom | Következő
Eszközök hálózati illesztése a GEOM-ban | Fel | Naplózó UFS GEOM-on keresztül

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.