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