Montag, 29. Oktober 2012

Umstieg auf Linux: Externe HDDs fest einbinden

Bevor ich mich an meine Backup-Lösung mache, muß ich mich wegen chronischem Speichermangels um die Einbindung meiner externen Festplatte kümmern. Diese soll ja schließlich in die Backup-Lösung mit einbezogen werden.  Und wenn ich schon das Experiment Linux eingehe, dann möchte ich auch alles ganz sauber konfigurieren und Provisorien soweit möglich vermeiden. Das heißt, die externe Festplatte soll nicht unbedingt in meinem System als solche erkennbar sein, sondern sich "unsichtbar" in die Dateistruktur einfügen. Externe Speicher werden häufig erst im laufenden Betrieb eingeschaltet, so daß sie über "Hotplug" eingebunden werden. Als Folge dessen ist es dadurch möglich, daß sich die Einhängepunkte namentlich von mal zu mal ändern, was mich sehr stört und für eine automatische Backup-Lösung natürlich problematisch ist.

Mein erster Schritt war deshalb, über das Hotplug-System die externe Festplatte so einzubinden, daß sie einen festen Einhängepunkt erhält. Dazu benötigt man einen eindeutigen Identifizierer der Festplatte, damit man später eine Regel in udev erstellen kann. Hierbei habe ich mich sehr konsequent an die Anleitung bei  ubuntuusers.de gehalten, in der die Erstellung einer udev-Regel gut erklärt ist. Meine Festplatte wird als SCSI-Platte erkannt, obwohl sie über USB angeschlossen ist, so daß ich den Abschnitt

Daten über beliebige Geräte auslesen mit udevadm

beachten mußte.

Unter  /lib/udev/rules.d habe ich eine Textdatei mit dem Namen 70-externe-hdd.rules angelegt.

In der Datei steht dann die Regel:

SUBSYSTEMS=="usb", KERNEL=="sd?1",ATTRS{serial}=="xxxxxxxxxxxx" , SYMLINK+="trekstor1"

Anstelle xxx steht bei mir meine Seriennummer der Festplatte. Sobald ich meine Festplatte einschalte, erhält sie bei mir den Namen /dev/trekstor1. Die fstab habe ich nun so angepaßt, daß die Platte einen Einhängepunkt unter /mnt/trekstor1 erhält. Der Eintrag in der fstab sieht bei mir so aus:

/dev/trekstor1 /mnt/trekstor1 ext4 users,atime,noauto,rw,nodev,exec,nosuid 0 0

Wichtig ist hier, daß die Option

noauto
 
gesetzt wird, damit sie beim Hochfahren nicht automatisch mit eingebunden wird, denn wie schon oben erwähnt, muß sie ja nicht unbedingt eingeschaltet sein. Es könnte somit zu einem unerwünschten Verhalten kommen. Damit die Festplatte beim Einschalten auch eingebunden wird, muß die Regel für udev noch ergänzt werden.

SUBSYSTEMS=="usb",ACTION=="add", KERNEL=="sd?1",ATTRS{serial}=="xxxxxxxxxxxxxxxxxxxx" , SYMLINK+="trekstor1", RUN+="/usr/local/bin/trekstor1"

Darin bedeutet

ACTION=="add", 


daß bei einem Hotplug-Ereignis dieser Festplatte ein Befehlt bzw. ein Skript ausgeführt werden soll. Mit RUN+="/usr/local/bin/trekstor1" wird das Skript bezeichnet, das ausgeführt wird. Jetzt heißt es also, schnell noch ein kleines Skript zu schreiben, das einen mount-Befehl ausführt.

Unter  /usr/local/bin/ wird einfach mit einem Texteditor eine Datei erstellt. In meinem Fall heißt sie trekstor1 und beinhaltet:

 #!/bin/sh
mount /mnt/trekstor1


Mit chmod habe ich die Datei noch ausführbar gemacht. Meinen Ordner Bilder habe ich auf die Festplatte verschoben und mit einem symbolischen Link verbunden. Nun ist mein Dateisystem so geordnet wie vorher, obwohl ich eine zusätzliche externe Festplatte mit eingebunden habe. Jetzt geht es an die Backup-Lösung.

Keine Kommentare:

Kommentar veröffentlichen