Eigentlich bin ich gerade beim Ueberarbeiten meines Artikels ueber die verschluesselte Backup-Festplatte aber da ich fuer weitgehende Automation ein festes Device brauche, schiebe ich hier etwas udev-Kram ein.
Mit udev ist es moeglich bestimmten Geraeten feste Devices zuzuweisen um diese fest ansprechen zu koennen. Bei USB- Festplatten und Sticks entscheidet zum Beispiel die Reihenfolge in der die Geraete eingeteckt wurde welches Device sie bekommen. So koennte die USB-Platte /dev/sda, /dev/sdb etc. sein.
Um einen Vorgang aber komplett zu automatisieren ist es notwendig ein festes Device zu kennen das man ansprechen kann. Soll so zum Beispiel ein Script die Festplatte automatisch mounten um ein Backup auszufuehren, sollte man das Script nicht jedes mal umschreiben muessen wenn sich das Device geaendert hat. Solche Regeln kann man mit udev recht einfach erstellen.
Um eine Regel zu erstellen, werden ein paar Infos zum Geraet gebraucht. Um es eindeutig identifizieren zu koennen wird eine ID gebraucht. Diese erhaellt man mit diesem Befehl:
udevinfo -a -p
udevinfo -q path -n /dev/sdb | grep ATTRS{serial}
ATTRS{serial}=="1234567898253894C400000123456789"
Wobei /dev/sdb das derzeitige Device der Festplatte ist. Die Seriennummer wurde absichtlich verfaelscht.
Weitere Infos, die man nutzen kann waeren zum Beispiel die Produktbezeichnung:
udevinfo -a -p
udevinfo -q path -n /dev/sdb | grep ATTRS{product}
ATTRS{product}=="USB TO IDE"
ATTRS{product}=="EHCI Host Controller"
Ich nutze hier nur die Serial. Damit lassen sich nun lustige Regeln erstellen.
Da ich das urspruengliche Device behalten will und nur einen Link darauf moechte, habe ich die Datei /etc/udev/rules.d/00.rules mit folgendem Inhalt erstellt:
# pfleidis own Rules
BUS=="usb", ATTRS{serial}=="1234567898253894C400000123456789", KERNEL=="sd?1", NAME="%k", SYMLINK+="ext/usbhdd", GROUP="storage"
Hiermit sollte beim Einstecken ein Symlink /dev/ext/usbhdd erstellt werden, der auf das urspruengliche Device zeigt. Nun wird die Platte ausgesteckt und wieder eingesteckt und siehe da:
ls -la /dev/ext/usbhdd
lrwxrwxrwx 1 root root 7 2007-05-30 20:53 /dev/ext/usbhdd -> ../sdb1
Nun kann man die USB-Festplatte dauerhaft mit /dev/ext/usbhdd ansprechen, ohne dass man das eigentliche Device kennen muss. Das macht auch die Automation fuer Backups etc. sehr viel einfacher, da man hier in Scripten mit einem festen Device arbeiten kann. Das selbe gillt nun natuerlich auch fuer die /etc/fstab. Spaeter werde ich dann noch Regeln erstellen um die Platte automatisch per Keyfile zu entschluesseln und einzuhaengen. Somit kann man diesen Vorgang komplett automatisieren.
Erklaerungen zu den Befehlen oder weiterfuehrende Optionen koennt ihr aus den folgenden Links und den Manpages entnehmen. Da ist das ganze etwas genauer erklaert.
Weiterfuehrende Links:
http://de.gentoo-wiki.com/UdevRules
http://wiki.archlinux.org/index.php/Udev
http://www.linuxforen.de/forums/showthread.php?t=178406
http://wiki.archlinux.org/index.php/Usingudevtomapmultipleentriestoa_device
Sehr guter Beitrag! Fand ich sehr interessant und werde es selbst mal ausprobieren.
Wirklich gut freu
Greez Markus
[...] Erstellen der udev-Regeln [...]
[...] nicht wie andere Sticks und Player als /dev/sd*1 angesprochen. Ich habe mir hierzu sowieso wie im UDEV-Howto beschrieben eine Regel erstellt, die mir ein extra Device anlegt. Das ist hilfreich wenn man z.B. [...]


