Kapitel 7. Benutzerdefinierte Gerätenamen

Das Verzeichnis /dev/ enthält virtuelle Dateien, die Geräte darstellen. Jede virtuelle Datei steht für ein Gerät im System, wie zum Beispiel Speichergeräte, USB-Geräte oder Drucker. Diese virtuellen Dateien nennen sichGerätenamen.

Gerätenamen für IDE-Geräte beginnen mit hd und Gerätenamen für SCSI-Geräte beginnen mit sd. Diese beiden Buchstaben werden dann durch einen weiteren, beginnend mit a, ergänzt, was die Reihenfolge der Geräte festlegt. Zum Beispiel ist /dev/hda die erste IDE-Festplatte, /dev/hdb die zweite, /dev/hdc die dritte und so weiter.

Ist an den Gerätenamen eine Ziffer angehängt, steht diese für die Nummer der Partition. So steht zum Beispiel /dev/hda1 für die erste Partition auf der ersten IDE-Festplatte.

Wird die Festplatte auf eine andere Stelle im Computer verlegt oder die Initialisierung dieser schlägt fehl, dann ändern sich einige der Gerätenamen, wodurch womöglich einige Referenzen zu Gerätenamen ungültig werden. Wie unter Abbildung 7-1 angezeigt, wird bei einem System mit drei SCSI-Festplatten, bei dem die zweite SCSI-Festplatte entfernt wird, /dev/sdc zu /dev/sdb, was Referenzen zu/dev/sdc und außerdem zu /dev/sdb ungültig werden lässt.

Abbildung 7-1. Entfernen einer Festplatte

Jede Festplatte hat eine eindeutige und einzigartige Identifikation, die mit UUID bezeichnet wird. Um das Problem wechselnder Gerätenamen zu lösen, ermöglicht devlabel benutzerdefinierte Gerätenamen, die mit diesem UUIDs in Verbindung stehen. Ein symbolischer Link wird vom benutzerdefinierten Gerätenamen zum tatsächlichen Gerätenamen hergestellt. Ändert sich der tatsächliche Gerätename, wird der symbolische Link aktualisiert, so dass dieser wieder auf die gleiche Festplatte mit der gleichen UUID weist. Es kann so auf IDE und SCSI Speichergeräte über die benutzerdefinierten Namen verwiesen werden.

Devlabel ermöglicht desweiteren das automatische Mounten von Hotplug-Geräten wie externe Festplatten und USB-Geräte wie die Speicherkarten für Digitalkameras. Wird das automatische Mounten konfiguriert, wird das Gerät nach dem Anschließen mit dem benutzerdefinierten Namen gemountet.

7.1. Konfiguration von Devlabel

Benutzerdefinierte Gerätenamen können basierend auf dem Gerätenamen, Partitionsnamen oder der UUID der Festplatte hinzugefügt werden.

Verwenden Sie die folgende Syntax, um einen benutzerdefinierten Gerätenamen für ein Speichergerät hinzuzufügen. Das angegebene Gerät kann entweder das gesamte Gerät sein, oder eine einzelne Partition auf einem Gerät.

devlabel add -d <device> -s <symlink>

Um zum Beispiel den symbolischen Link /dev/work alsDarstellung der /dev/hdb1-Partition zu verwenden, geben Sie folgenden Befehl ein:

devlabel add -d /dev/hdb1 -s /dev/work

War der Befehl erfolgreich, wird folgendes angezeigt:

Created symlink /dev/work -> /dev/hdb1
Added /dev/work to /etc/sysconfig/devlabel

Um einen Gerätenamen für ein Gerät basierend auf einer UUID zu vergeben, verwenden Sie folgende Syntax:

devlabel add -u <uuid> -s <symlink>

Um devlabel zum Herausfinden der UUID eines Geräts (oder um sicherzustellen, das dies Gerät eine besitzt), zu verwenden, geben Sie folgenden Befehl ein:

devlabel printid -d <device>

Der Name des symbolischen Links muss einzigartig sein. Wird versucht, einen Link hinzuzufügen. obwohl es diesen schon gibt, wird die Konfigurationsdateo nicht geändert, und das Folgende wird angezeigt:

The file /dev/work already exists.
Failure. Could not create a symlink.

Um einen symbolischen Link aus der devlabel-Liste zu entfernen, verwenden Sie den folgenden Befehl:

devlabel remove -s <symlink>

Der Eintrag wird aus der Konfigurationsdatei entfernt und der symbolische Link geläscht.

Um den Status der symbolischen Links unter devlabel festzustellen, verwenden Sie den folgenden Befehl:

devlabel status

Eine Ausgabe ähnlich wie folgende wird angezeigt:

lrwxrwxrwx    1 root            9 Apr 29 13:20 /dev/work -> /dev/hdb1
lrwxrwxrwx    1 root            9 Apr 29 13:41 /dev/tcf -> /dev/hda1

7.1.1. Hotplug-Geräte

Ein Programm mit dem Namen Hotplug führt Aktionen aus, wenn eine Systemvorgang, wie das Hinzufügen oder Entfernen von Hardware, stattfindet während das System läuft. Wenn zum Beispiel eine USB-Festplatte oder ein USB-Medienkartenleser ans das System angeschlossen wird, benachrichtigt hotplug Benutzer über eine Nachricht in der System-Log-Datei (/var/log/messages) und lädt das richtige Kernel-Modul, damit das Gerät funktioniert.

Wird ein PCI, USB oder IEEE 1394 (auch als FireWire bekannt) Gerät angeschlossen, starten die hotplug Skripte auch devlabel neu, so dass die Speichermedien einen benutzerdefinierten Gerätenamen (z.B. /dev/usbcard) erhalten und optional dazu das Speichergerät automatische gemountet wird.

Nachdem der USB-Kartenleser in den USB-Port des Computers eingesteckt wurde, geben Sie den folgenden Befehl als root ein (wobei /dev/sda1 der Gerätename für die Medienkarte und /dev/usbcard der zu verwendene benutzerdefinierte Gerätename ist):

devlabel add -d /dev/sda1 -s /dev/usbcard --automount

Dieser Befehl fügt einen Eintrag für den Mount-Punkt zu /etc/sysconfig/devlabel hinzu und erstellt einen symbolischen Link von /dev/usbcard zu /dev/sda1. Die Option --automount für devlabel gibt an, dass das Gerät automatisch bei einem Neustart von devlabel gemountet werden soll, wenn ein Eintrag in /etc/fstab vorhanden ist und das Gerät existiert (ein Gerät mit der gleichen UUID gefunden wird).

updfstab ist ein Programm, das die IDE- und SCSI-Busse auf neue Geräte hin scannt und Einträge für diese in /etc/fstab hinzufügt, falls es noch keine Einträge gibt. Es fügt außerdem Einträge für USB-Geräte hinzu, da diese als SCSI-Geräte angezeigt werden. Weitere Informationen hierzu finden Sie auf den updfstab man-Seiten.

Wenn ein USB-Gerät angeschlossen wird, führt hotplug das Programm updfstab aus, welches wiederum einen Eintrag in die Datei /etc/fstab für das Speichergerät (z.B. eine Medienkarte) hinzufügt, wenn diese existiert. (Wird ein Kartenleser ohne Karte installiert, wird kein Eintrag hinzugefügt). Die hinzugefügte Zeile enthält den tatsächlichen Gerätenamen (z.B. /dev/sda1) und die Option kudzu. Die Option kudzu sagt Kudzu, [1] dass es die Zeile entfernen kann, wenn das Gerät nicht existiert. Da die Zeile von devlabel benötigt wird, muss die Option kudzu entfernt werden, damit die Zeile in der Datei bleibt. Ändern Sie auch den Gerätenamen in devlabel-Gerätenamen (z.B. /dev/usbcard) und erstellen Sie den Mountpunkt (z.B. /mnt/usbcard).

Nach den Änderungen sollten die Zeile wie folgt aussehen:

/dev/usbcard   /mnt/usbcard   auto    noauto,owner 0 0

Durch --automount wird, nachdem devlabel neu gestartet und das USB-Gerät an den Computer angeschlossen wurde, das Speichermedium im USB-Kartenleser unter /mnt/usbcard gemountet. Der Trick dabei ist, dass beim Anschließen des USB-Kartenlesers an den Computer sich die Karte bereits im Leser befinden muss. Sonst kann devlabel das Speichergerät nicht finden, und daher auch nicht automatisch mounten.

Ist der USB-Kartenleser bereits angeschlossen, aber ohne Karte, müssen Sie als root den Befehl devlabel restart eingeben, wenn die Karte eingelegt wurde, um diese zu mounten.

Fußnoten

[1]

Kudzu ist ein Hardware-Test-Tool, das zum System-Bootzeitpunkt ausgeführt wird, was festlegt, welche Hardware vom System entfernt oder zum System hinzugefügt wurde.