autofs4 und udev

29/03/2008 - 23:45 von Sieghard Schicktanz | Report spam
Hallö alle,

ich möchte hier auch mal eine recht erfreuliche Sache berichten.
Aufgrund einer Anregung hier vor kurzem habe ich mir jetzt mal wieder das
autofs eingerichtet - einen Automounter für Wechselmedien.

Funktioniert recht schön, die Datentràger sind erreichbar, wenn gbraucht,
und werden (wieder - ich hatte da früher auch schon Probleme) zuverlàssig
freigegeben.

Ganz angenehm geht das mit dem mc, wenn man für jeden Datentràger,
sinnvollerweise in einem dafür reservierten Verzeichnis, jeweils einen Link
auf den autofs-mount-point setzt. Dann wird der automatisch gemountet,
sobald man mit dem mc das Verzeichnis öffnet, und man kann sofort mit den
Daten arbeiten. (Natürlich muß dafür das zustàndige Kernel-Modul vorhanden
sein und geladen werden können.)

Um die erwàhnten Links anzulegen, hab' ich mich ein wenig mit udev
"verkünstelt" und ein rules-file für meine Wechselmedien (Kartenleser,
diverse Sticks, USB-Floppy u.à.) gebaut, das mithilfe eines kleinen Skripts
die autofs-map erweitert und die Zugriffs-Links für den mc setzt und auch
wieder beseitigt. Damit sind immer nur die auch tatsàchlich vorhandenen
Datentràger sichtbar und können benutzt werden.
(Ein wenig weniger glücklich war ich dabei über die Erkenntnis, daß die
"executable maps" des autofs offenbar nur und ausschließlich mit nfs
funktionieren - ein entsprechender Versuch, an dem weit und breit kein nfs
hàtte beteiligt sein sollen, hat jedenfalls nur nfs-Fehlermeldungen
produziert... Schade, das hàtte die Sache vereinfacht.)

Der Hauptaufwand war dabei, die relevanten Daten für die udev-Regeln und
das Skript zum Anpassen der autofs-map (ich hab's "auto.map" genannt)
herauszufinden. udev ist ja sowas von übersichtlich dokumentiert... :-(
Da habe ich mir schon früher mal mit einem Skript geholfen, das ebenfalls
von einer udev-Regel aufgerufen werden kann und einiges an Information zu
dem gerader angeleten Device liefert. Es ist recht simpel:

#!/bin/bash

LOG="$1"
shift
(
echo "`date +%d.%m.%Y%t%T` $*"
set
echo ""
) >> /etc/udev/rules.d/$LOG.log

Unter dem Namen "logit" kann es z.B. wie folgt benutzt werden:

<rule>, RUN+="/etc/udev/scripts/logit USBcard n %n k %k M %M m %m b %b"

Dabei steht <rule> für die Regeldefinition, die das gewünschte Ereignis
selektiert, das man sich z.B. mit dem "udevmonitor" herausgesucht hat.
Es erzeugt dann ein File mit einem Namen, der per Parameter an den Aufruf
übergeben wird ("USBcard" im Beispiel) und das die udev-Variablen und das
Aufruf-environment des Skripts enthàlt.

Damit habe ich mir die nötigen Daten zum Aufbau des auto.map-Skripts
zusammengesucht und kann jetzt ohne weitere Eingriffe meine
Wechsedatentràger benutzen.

Vielleicht interessiert's ja jemanden... ;-)

-
(Weitergabe von Adressdaten, Telefonnummern u.à. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder àhnlichem)
Mit freundlichen Grüßen, S. Schicktanz
 

Lesen sie die antworten

#1 Florian Diesch
30/03/2008 - 20:23 | Warnen spam
Sieghard Schicktanz wrote:


Der Hauptaufwand war dabei, die relevanten Daten für die udev-Regeln und
das Skript zum Anpassen der autofs-map (ich hab's "auto.map" genannt)
herauszufinden. udev ist ja sowas von übersichtlich dokumentiert... :-(
Da habe ich mir schon früher mal mit einem Skript geholfen, das ebenfalls
von einer udev-Regel aufgerufen werden kann und einiges an Information zu
dem gerader angeleten Device liefert. Es ist recht simpel:



udevmonitor --environment finde ich oft hilfreich




Florian
<http://www.florian-diesch.de/>
** Hi! I'm a signature virus! Copy me into your signature, please! **

Ähnliche fragen