Start   Impressum   Lizenz         online lesen   Download         Online-Shop   Jumping Blue Turtle

Debian für Unternehmer - Debian-Know-how

4110: Persistente Gerätenamen mit UDEV

Wenn Sie mehrere externe Festplatten verwenden, dann sind Sie sehr bald mit dem Problem konfrontiert, dass grob gesagt die Vergabe der Gerätenamen für diese Platten von der Reihenfolge abhängt, in der Sie die Festplatten einschalten. Das Ziel dieses Moduls ist es, Ihnen zu zeigen, wie Sie externe Festplatten ansprechen können, ohne auf die Reihenfolge des Einschaltens Rücksicht nehmen zu müssen.

Der Lösungsansatz hierfür heißt "udev". Zunächst geht es hier also darum, UDEV zu verstehen. Danach zeige ich Ihnen, wie Sie externe Festplatten eindeutig identifizieren können.

1. "udev" verstehen

Folgende Literatur liefert Ihnen erste Hintergrundinformationen zu dem Thema:

Die erste interessante Erkenntnis ist, dass bis zu Kernel 2.4 "devfs" zum Einsatz kam und ab Kernel 2.6 "devfs" durch "udev" vollständig ersetzt wurde.

Mit Kernel 2.6 wurde noch eine weitere Neuerung eingeführt: Das schon vorher existierende "procfs", welches für das Erscheinen des virtuellen Verzeichnisses "/proc" und dessen Inhalte verantwortlich ist, wurde um das "Sysfs" ergänzt. Mit "Sysfs" wurde ein neues virtuelles Verzeichnis mit dem Namen "/sys" eingeführt. Einige Informationen, die man vorher bei "/proc" hinterlegt hätte, die aber eigentlich keine prozessrelevanten Informationen sind, sondern eher Gerätetreibern und Objekten allgemein zuzuordnen sind, befinden sich nun in dem extra dafür erschaffenen Verzeichnis "/sys".

Für unsere Zwecke relevant ist das Verzeichnis "/sys" deswegen, weil es eindeutige Informationen über alle Geräte hergibt, die am Rechner angeschlossen sind. Durch das Schreiben von sogenannten "Rules" können z.B. Festplatten anhand dieser eindeutigen Informationen identifiziert werden.

Um Geräte (speziell Festplatten) persistent zu machen, können wir Rules schreiben, die einen veränderlichen "Geräteknoten" (z.B. "/dev/sda") per Symlink um einen persistenten "Geräteknoten" mit selbst ausgedachtem Namen (z.B. "/dev/festplatte1") ergänzen.

Jetzt die gute Nachricht: Nur ganz selten werden Sie gezwungen, Rules schreiben zu müssen. Warum? Ganz einfach! "udev" bringt schon per Default einige sinnvoll vordefinierte Rules mit. Diese Rules haben bereits Geräteknoten erzeugt, die wir sofort nutzen können. Für unseren Zweck, externe Festplatten eindeutig identifizieren zu können, reicht das völlig aus! Daher werde ich auf die Beschreibung, wie man eine Rule erzeugt, verzichten. Wir brauchen das nicht.

2. Eine Festplatte persistent verwenden

An einem Beispiel zeige ich Ihnen nun, wie Sie eine Festplatte persistent verwenden können.

Wenn Sie die zweite Partition der dritten Festplatte vom Typ "scsi disk" mounten und anschließend wieder umounten wollen, dann gehen Sie üblicherweise wie folgt vor:

mount /dev/sdc2 mountverzeichnis
umount mountverzeichnis

Der Nachteil dieser Methode ist, dass Sie einen Tag später die zweite Festplatte vom Typ "scsi disk" gar nicht eingeschaltet haben und Ihr Skript für das Mounten der zweiten Partition der dritten Festplatte vom Typ "scsi disk" nicht mehr funktionieren wird, weil die Festplatte nun nicht mehr die dritte, sondern die zweite ist und daher nicht mehr "/dev/sdc" heißt, sondern "/dev/sdb".

Damit das nicht passiert, bewegen Sie sich zunächst mit einem Dateibrowser (z.B. Midnight Commander) in folgendes Verzeichnis:

/dev/disk/by-id

Dort sind alle vorhandenen Festplatten und ein paar der vorhandenen DVD-Laufwerke in Form von Symlinks aufgelistet, und zwar so, dass immer eine eindeutige Geräteseriennummer im Namen der Symlinks vorhanden ist.

Suchen Sie nun den symbolischen Link heraus, der auf die Festplatte "/dev/sdc" verweist. Er könnte z.B. "ata-ST3500320NS-XSERIALX" heißen.

Jetzt, da Sie diese Information kennen, können Sie die oben gezeigten Mount- und Umount-Skripte wie folgt umschreiben:

mount /dev/disk/by-id/ata-ST3500320NS-XSERIALX-part2 mountverzeichnis
umount mountverzeichnis

Von nun an ist es den Skripten egal, in welcher Reihenfolge Ihre Festplatten eingeschaltet wurden. Es ist nur wichtig, dass die gewünschte Festplatte eingeschaltet ist.