Wenn man eine externe Festplatte ansteckt, kommt es häufig vor, dass diese automatisch gemounted wird und Rechte gesetzt bekommt, die die sinnvolle Arbeit damit behindern. Um dies zum umgehen, sind ein paar kleine Eingriffe in das System nötig:
UDev sorgt für die Behandlung von Hotplugging-Events. Dazu arbeitet es die Regeln ab, die in /etc/udev/rules.d/
definiert sind. Dort fügen wir nun unsere eigene Regel ganz zu Beginn der Kette ein, um unsere Platte extra zu behandeln.
Zuerst müssen wir dazu herausfinden, wie wir die Platte erkennen können. Dazu stecken wir die Platte an und führen den Befehl lsusb -v
als Root (wichtig!) aus. In der Ausgabe suchen wir nach unserer Platte und dort nach dem Eintrag iSerial. Ist dieser nicht vorhanden, müssen wir stattdessen mit iVendor oder anderen Erkennungskriterien arbeiten. Der Einfachheit halber nehme ich an, dass iSerial existiert.
Jetzt erstellen wir eine Datei /etc/udev/rules.d/01-usb-custom.rules
und schreiben in diese folgendes rein:
BUS=="usb", KERNEL="sd?1", SYSFS{serial}="01234", SYMLINK+="exthdd", RUN+="/usr/local/bin/automount-exthdd.sh"
Zur Erklärung:
Jetzt müssen wir in /etc/fstab
eine Regel definieren, die festlegt wie unser Gerät /dev/exthdd
gemountet wird. Zuerst erstellen wir ein Verzeichnis /media/exthdd
(oder /mnt/exthdd
) und dann fügen wir in /etc/fstab
diese Zeile hinzu:
/dev/exthdd /media/exthdd vfat user,auto,uid=1000,gid=1000,iocharset=utf8 0 0
So oder ähnlich. Hier muss natürlich der korrekte Dateisystem-Typ eingetragen werden (vfat
) und die Optionen entsprechend sinnvoll gewählt werden. Man sollte hier schon wissen, was man tut. :) Details dazu finden sich aber in jedem Mount-Tutorial.
Tja. Und zuletzt müssen wir noch das Script schreiben, das wir in unserer UDev-Regel automatisch aufrufen lassen. Wir erstellen also die Datei /usr/local/bin/automount-exthdd.sh
und schreiben hinein:
#!/bin/sh mount /media/exthdd
Jetzt nur noch mit chmod +x /usr/bin/local/automount-exthdd.sh
das Script ausführbar machen und schon ist alles fertig.
Wenn jetzt die Platte angesteckt wird, sollte sich in /dev
die Datei exthdd
finden und diese sollte in /media/exthdd
eingehängt werden (mit mount
überprüfen!).