Während der Initialisierung des Systems legt der
FreeBSD-Kernel für jedes gefundene Gerät Knotenpunkte
an. Diese Methode für die Überprüfung auf
vorhandene Geräte wirft einige Fragen auf. Was passiert
beispielsweise, wenn ein neues
USB-Laufwerk hinzugefügt wird?
Es ist sehr wahrscheinlich, dass ein
Flash-Speicher-Gerät den Gerätenamen
da0
erhält, während
gleichzeitig das bisherige da0
zu da1
wird. Dies verursacht
Probleme beim Einhängen von Dateisystemen, wenn diese
in der /etc/fstab
aufgeführt
sind und schlussendlich mag das auch dazu führen,
dass das System nicht mehr startet.
Eine Lösung für dieses Problem ist das
Aneinanderketten der SCSI-Geräte,
damit ein neues Gerät, welches der
SCSI-Karte hinzugefügt wird,
unbenutzte Gerätenummern erhält. Aber was
geschieht, wenn ein USB-Gerät
möglicherweise die primäre
SCSI-Platte ersetzt? Dies kann
passieren, weil USB-Geräte
normalerweise vor der SCSI-Karte
geprüft werden. Eine Lösung ist das
Hinzufügen dieser Geräte, nachdem das System
gestartet ist. Eine andere Lösung könnte sein,
nur ein einzelnes ATA-Laufwerk zu
nutzen und die SCSI-Geräte niemals
in der /etc/fstab
aufzuführen.
Es gibt allerdings eine bessere Lösung. Durch
Verwendung des glabel
-Dienstprogramms
kann ein Administrator oder Benutzer seine Laufwerke mit
Labeln versehen und diese in der /etc/fstab
nutzen. Da glabel
seine Label im letzten
Sektor jedes vorhandenen Datenträgers speichert, wird
das Label persistent bleiben (auch über Neustarts hinweg).
Durch Nutzung dieses Labels als Gerät kann das
Dateisystem immer gemountet sein, unabhängig davon,
durch welchen Geräte-Knotenpunkt auf ihn zugegriffen
wird.
Der Label muss permanent (dauerhaft) sein.
Man kann das Dienstprogramm glabel
nutzen, um sowohl transiniente als auch permanente Label
zu erzeugen. Aber nur permanente (persistente) Label
bleiben konsistent über Neustarts hinweg. Lesen
Sie die glabel(8)-Manualpage für weitere
Unterschiede zwischen den Label-Typen.
Es gibt zwei Arten von Labeln: generische Label und
Dateisystem-Label. Label können dauerhaft (permanent)
oder temporär sein. Permanente Label können mit
tunefs(8) oder newfs(8) in einem speziellen
spezielles Verzeichnis in /dev
erzeugt werden, welches
entsprechend der Dateisystem-Art benannt wird.
UFS2-Dateisystem-Label werden zum
Beispiel im Verzeichnis
/dev/ufs
angelegt. Permanente Label können außerdem durch
den Befehl glabel label
erzeugt werden.
Diese Label sind dann allerdings nicht dateisystemspezisch
und werden im Unterverzeichnis /dev/label
erzeugt.
Ein temporäres Label verschwindet mit dem
nächsten Systemstart. Diese Label werden im
Verzeichnis /dev/label
erzeugt und sind ideal für Testzwecke. Ein temporäres
Label kann durch den Befehl glabel create
erzeugt werden. Weitere Informationen finden sich in der
Manualpage glabel(8).
Um ein permanentes Label auf einem UFS2-Dateisystem ohne Löschung von Daten zu erzeugen, kann man folgenden Befehl verwenden:
#
tunefs -L home
/dev/da3
Wenn das Dateisystem voll ist, kann dies zu Datenkorruption führen; aber egal wie, falls das Dateisystem voll ist, sollte das Hauptziel die Entfernung ungenützter Dateien und nicht das Hinzufügen von Labeln sein.
Ein Label sollte nun in
/dev/ufs
vorhanden
sein, der zu /etc/fstab
hinzugefügt wird:
Das Dateisystem darf nicht gemountet sein beim
Versuch, tunefs
auszuführen.
Nun kann das Dateisystem wie üblich gemountet werden:
#
mount /home
Von nun an kann der Geräte-Knotenpunkt sich ohne
negative Effekte auf das System ändern, solange das
Kernelmodul geom_label.ko
beim
Systemstart mittels /boot/loader.conf
geladen wird oder die
GEOM_LABEL
-Kernel-Option aktiv ist.
Dateisysteme können auch mit einem Standard-Label
erzeugt werden (mittels des Flags -L
in
newfs
). Lesen Sie bitte die Manualpage
von newfs(8) für weitere Informationen.
Der folgende Befehl kann genutzt werden, um das Label zu beseitigen:
#
glabel destroy home
Das folgende Beispiel zeigt Ihnen, wie Sie Label für die Partitionen einer Bootplatte erzeugen.
Durch das Erstellen von permanenten Labeln für die
Partitionen einer Bootplatte sollte das System selbst dann noch
normal starten können, wenn Sie die Platte an einen
anderen Controller anschließen oder in ein anderes
System installieren. In diesem Beispiel nehmen wir an, dass
nur eine einzige ATA-Platte verwendet wird,
die Ihr System derzeit als ad0
erkennt. Weiters nehmen wir an, dass Sie das
Standard-Partionierungsschema von FreeBSD vewendet haben und Ihre
Platte daher die Dateisysteme
/
,
/var
,
/usr
sowie
/tmp
aufweist.
Zusätzlich wurde eine Swap-Partition angelegt.
Starten Sie das System neu. Am loader(8)-Prompt drücken Sie die Taste 4, um in den Single-User-Modus zu gelangen. Dort führen Sie die folgenden Befehle aus:
#
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
Das System startet daraufhin in den Multi-User-Modus.
Nachdem der Startvorgang abgeschlossen ist, editieren Sie die
Datei /etc/fstab
und ersetzen die
konventionellen Gerätedateien durch die entsprechenden
Label. Ihre modifizierte /etc/fstab
sollte nun ähnlich der folgenden Ausgabe aussehen:
Starten Sie Ihr System neu. Traten keine Probleme auf,
wird das System normal hochfahren und Sie erhalten die folgende
Ausgabe, wenn Sie den Befehl mount
ausführen:
#
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)Beginnend mit FreeBSD 7.2, unterstützt
glabel(8) einen neuen Labeltyp für
UFS-Dateisysteme. Dieser basiert auf der
eindeutigen Dateisystem-ID ufsid
.
Derartige Label finden sich im Verzeichnis
/dev/ufsid
und werden
während des Systemstarts automatisch erzeugt. Es ist
möglich, diese ufsid
-Label zum
automatischen Einhängen von Partitionen in der Datei
/etc/fstab
einzusetzen. Verwenden Sie
den Befehl glabel status
, um eine Liste
aller Dateisysteme und ihrer ufsid
-Label
zu erhalten:
%
glabel status
Name Status Components
ufsid/486b6fc38d330916 N/A ad4s1d
ufsid/486b6fc16926168e N/A ad4s1fIn diesem Beispiel repräsentiert
ad4s1d
das
/var
-Dateisystem,
während ad4s1f
dem
/usr
-Dateisystem
entspricht. Wenn Sie die angegebenen
ufsid
-Werte verwenden, können
diese Dateisysteme durch die folgenden Einträge in
der Datei /etc/fstab
gemountet
werden:
Jede Partition, die ein ufsid
-Label
aufweist, kann auf diese Art gemountet werden. Dies hat
den Vorteil, dass Sie keine permanenten Label mehr anlegen
müssen, wobei sich die Platten nach wie vor über
geräteunabhängige Namen ansprechen und mounten
lassen.
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.