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 /etc/fstab
aufgeführt sind und kann 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.
Eine bessere Lösung ist die Verwendung von
glabel
, um die Laufwerke zu mit Labeln zu
versehen und diese in /etc/fstab
zu
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.
glabel
kann permanente (dauerhaft) und
vorübergehende Label erstellen. Aber nur dauerhafte
Label bleiben konsistent über Neustarts hinweg. Lesen
Sie die glabel(8) für weitere Unterschiede zwischen den
Label-Typen.
Permanente Label können generische Label oder
Dateisystem-Label sein. Permanente Dateisystem-Label können
mit tunefs(8) oder newfs(8) erzeugt werden. Dieser
Typ von Label wird in einem Unterverzeichnis von
/dev
angelegt und wird dem Dateisystem
entsprechend benannt.
UFS2-Dateisystem-Label werden zum Beispiel
in /dev/ufs
angelegt. Permanente Label
können außerdem durch den Befehl
glabel label
erzeugt werden. Diese Label
sind nicht dateisystemspezisch und werden im Unterverzeichnis
/dev/label
erzeugt.
Temporäre Label werden beim nächsten Systemstart zerstört.
Diese Label werden im Verzeichnis
/dev/label
erzeugt und sind ideal für
Testzwecke. Ein temporäres Label kann mit
glabel create
erzeugt werden.
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
In /dev/ufs
sollte nun ein Label
vorhanden sein, welches zu /etc/fstab
hinzugefügt werden kann:
/dev/ufs/home /home ufs rw 2 2
Das Dateisystem darf nicht gemountet sein beim
Versuch, tunefs
auszuführen.
Nun kann das Dateisystem eingehängt 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 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 das System derzeit als ad0
erkennt. Weiters nehmen wir an, dass Sie das
Standard-Partionierungsschema von FreeBSD vewendet haben und
die 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
/etc/fstab
und ersetzen die
konventionellen Gerätedateien durch die entsprechenden
Label. Die modifizierte /etc/fstab
sollte wie folgt aussehen:
# Device Mountpoint FStype Options Dump Pass# /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
Starten Sie das System neu. Treten 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)
glabel(8) unterstützt einen Labeltyp für
UFS-Dateisysteme. Dieser basiert auf der
eindeutigen Dateisystem-ID ufsid
.
Derartige Label finden sich in
/dev/ufsid
und werden
während des Systemstarts automatisch erzeugt. Es ist
möglich, diese ufsid
-Label zum
automatischen Einhängen von Partitionen in
/etc/fstab
einzusetzen. Verwenden Sie
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 ad4s1f
In 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:
/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2 /dev/ufsid/486b6fc16926168e /usr ufs rw 2 2
Jede Partition, die ein ufsid
-Label
aufweist, kann auf diese Art gemountet werden. Dies hat den
Vorteil, dass Sie die permanenten Label nicht manuell anlegen
müssen, wobei sich die Platten nach wie vor über
geräteunabhängige Namen ansprechen und einhängen
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>.