• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Automatisches Mounten von USB-Speicher [openSUSE 10.2]

Status
Für weitere Antworten geschlossen.
Hi Leuts,

Ich hab gerade versucht meine diversen USB-Disks, Camera und MP3-Spieler beim anstöpselt automatisch zu mounten (System ist eine OpenSUSE 10.2) und hab mir 'nen Wolf gesucht warum das nicht funktioniert. Letztendlich lag es an einer (meines Erachtens) Inkonsistenz des udev-mount-Programmes /lib/udev/mount.sh. Dieses durchsucht die /etc/fstab nach Einträgen für den gerade gefundenen Speicherträger. Dabei wird der Eintrag aus der fstab mit den vorhandenen Node-Namen verglichen, wobei letztere eben nicht nur den echte HW-Namen (sda usw) enthalten, sondern auch die 'persistenten Devicenamen' /dev/disk/by-???/*.

Und genau letztere hatte ich in der /etc/fstab verwendet um die mountpoints unabhängig davon festzulegen, in welcher Reihenfolge ich die USB-Geräte anstecke. Aber es hat nicht funktioniert. :evil:

Bis ich dann gesehen habe daß für den abschließenden mount-Befehl eben nicht der persistente Name verwendet wird, sondern der (echte) Device-Name - für den aber gar kein Eintrag in der fstab vorhanden ist!

Ich hab darum das mount-Script leicht abgeändert sodaß der gefundene persistente Name auch für den Mount-Befehl verwendet wird. Hier das diff:
Code:
asterix:udev% diff -u mount.sh.orig mount.sh
--- mount.sh.orig       2007-05-05 14:22:32.000000000 +0100
+++ mount.sh    2007-05-05 14:54:56.000000000 +0100
@@ -33,6 +33,7 @@
                        for n in $NODES; do
                                if [ "$n" == "$dn" ] ; then
                                        HOTPLUG="yes"
+                                       MOUNTPOINT=$dn
                                fi
                        done
                        ;;
@@ -49,7 +50,7 @@
 # fsck options:
 # -M : respect fs_pass_no, emulate mount
 # -a : auto repair
-MESSAGE="`fsck -M -a $DEVNAME 2>&1`"
+MESSAGE="`fsck -M -a $MOUNTPOINT 2>&1`"
 RET=$?
 case $RET in
        0|1) : ;;
@@ -68,7 +69,7 @@
 # mount options:
 # -v : be verbose
 # -a : respect noauto option
-MESSAGE="`mount -av $DEVNAME 2>&1`"
+MESSAGE="`mount -av $MOUNTPOINT 2>&1`"
 RET=$?
-test $? != 0 && err_mesg "Could not mount '$DEVNAME'."
+test $RET != 0 && err_mesg "Could not mount '$DEVNAME'."
 exit $RET

Ein weiteres Problem war daß das mount-script nur für Partitionen aufgerufen wird: In /etc/udev/rules.d/85-mount-fstab.rules steht als Selektionsparameter nur KERNEL=="sd*[0-9]|hd*[0-9]". Wer die gesamte Platte ohne Partitionstabelle formatiert hat schaut auch in die Röhre :( Ich hab darum noch ein zusätzliches "|sd*" angehängt - damit funktionieren auch solche Platten. Im Prinzip sollte es auch genügen die beiden [0-9] zu löschen - war mir nur nicht ganz sicher...

Vielleicht findet's ja jemand hilfreich....

Pit
 
Sagmal, ich muss einfach mal fragen:

Warum benutst du nicht den YaST Partitionierer? Der ist schließlich auch für die fstab zuständig. Du gehst einfach auf editieren und gibst einen Mountpoint ein. Mit FsTab-Optionen kannst du da auch die Einbindeart auswählen.
 

misiu

Moderator
Teammitglied
sprudel91 schrieb:
Sagmal, ich muss einfach mal fragen:

Warum benutst du nicht den YaST Partitionierer? Der ist schließlich auch für die fstab zuständig. Du gehst einfach auf editieren und gibst einen Mountpoint ein. Mit FsTab-Optionen kannst du da auch die Einbindeart auswählen.

Weil das allgemein bei früheren Suse-Versionen ein Problem bei Hot-Plug-Geräten darstellt.
Yast erzeugt nämlich ein fstab-Eintrag, dass entweder Probleme beim nächstem Start
verursacht oder dazu führt, dass keine USB-Geräte mehr erkannt werden.

MfG
misiu
 
Status
Für weitere Antworten geschlossen.
Oben