Das FreeBSD-Handbuch
Zurück | Kapitel 20. GEOM: Modulares Framework zur Plattentransformation | Weiter

# 20.6. Das Labeln von Laufwerken

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.

> Anmerkung: 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.

## 20.6.1. Label-Typen und Beispiele

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

> Warnung: 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:

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

> Anmerkung: 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.

Beispiel 20-1. Die Partitionen einer Bootplatte labeln

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:

    # 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 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  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 keine permanenten Label mehr anlegen müssen, wobei sich die Platten nach wie vor über geräteunabhängige Namen ansprechen und mounten lassen.

Zurück | Zum Anfang | Weiter
GEOM Gate Netzwerkgeräte | Nach oben | UFS Journaling in GEOM

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>.