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

Verschiedene USB automatisch mounten

Hi Leute,

habe jetzt lange nach einer lösung (durch ausprobieren und hier im forum) gesucht, aber bin leider noch nicht fündig geworden. Es geht um folgendes Problem:

Ich habe 3 verschiedene USB-Sticks, auf denen unterschiedliche Daten sind. Wenn der Stick angesteckt wird, dann ist er mal unter "/dev/sda1" oder "/dev/sdb1" erreichbar. Das macht mir das mounten schwer... D.h. ich möchte für den reibungslosen ablauf dass USB1 nach /usr/usb1, USB2 nach /urs/usb2, etc. gemountet wird. Es kann vorkommen, dass z.B. /dev/sdb1 mal der USB1 ist, und /dev/sda1 = USB2!!

Ich arbeite auf einem Embedded-Linux. es gibt die möglichkeit sogenannte "autoexec"-dateien auf dem stick zu speicher, die dann beim einstecken des sticks ausgeführt werden, so wäre ein automounten denkbar, nur dann müsste ich wissen wie der gerade eingesteckte stick erreichbar ist (sda1 oder sda2), kann ich das irgenwie rausfinden?

hier meine idee, ich habe nur probleme sie umzusetzen, bzw. es funktioniert nicht :(

auf dem sticks befindet sich jeweils eine txt-datei um den stick zu identifizieren und ein weiteres script, das nach dem einstecken ausgeführt wird:

Code:
#/bin/sh

# rausfinden welche daten auf dem stick sind, dann mounten

if [ -f ${DIR}/stick1.txt ]; then
  mkdir -p /usr/usb1
  mount  ${DIR} /usr/usb1
fi

if [ -f ${DIR}/stick2.txt ]; then
  mkdir -p /usr/usb2
  mount  ${DIR} /usr/usb2
fi


um hilfe wäre ich sehr dankbar!!

lg
holly
 

misiu

Moderator
Teammitglied
Es ist auf jeden Fall möglich auf einem bestimmtem Rechner die Automount-Mechanismen
so zu gestallten, dass für bestimmte USB-Speichergeräte auch z.B. Eigennamen verwendet
werden
( http://www.linux-club.de/viewtopic.php?f=61&t=92285&p=552688&hilit=fdi+usb+namen#p552688 . Umgekehrt, also, dass der USB-Stick den Namen nach Vorlieben dem Betriebssystem vorgibt? Na ja, da muss ich passen......

MfG
misiu
 
Ich kenne mich nicht so besonders gut mit Shell-Programmierung aus. Aber aus logischen Gründen würde ich sagen, dass es so wie du es dir vorstellst nicht geht. Auf den Stick kann nur zugegriffen werden, wenn er gemountet ist, d.h. er muss gemountet sein, bevor er die Datei auslesen kann.
Deshalb funktioniert es so noch nicht, aber du könntest ja die automatische Mountfunktion vorschalten und dann die Datei auslesen und den Stick um mounten.
 
um das autoexec-script auszuführen muss das system schon zugriff auf den stick haben, das sehe ich auch so...

aber folgendes passiert beim einstecken eines sticks:
für kurze zeit ist der inhalt des sticks in einem temporären verzeichnis sichtbar, und zwar unter /tmp/ + einer zufälligen buchstabenkomibation (z.B. /tmp/Za03ls). dann wird das script ausgefürht und dann verschwindet das temporäre verzeichnis wieder... außer es ist eine *.iso-datei auf dem stick die mit

Code:
mount -loop,ro ${DIR}/irgendeinedatei.iso /usb/irgendeinordner

gemountet wird. Dann nämlich bleibt auch der temporäre ordner (z.B. /tmp/Za03ls) erhalten und ich kann den "restlichen" stick auf mein gewünschtes verzeichnis mounten...

darum meine idee, sobald das script ausgeführt wird, schauen wie der stick erreichbar ist (z.B. /dev/sda1 oder /dev/sdb1) und dann mounten... das müsste doch möglich sein. leider steht zu diesem zeitpunkt noch kein eintrag in der fstab, den man auslesen könnte...
 
holly123 schrieb:
leider steht zu diesem zeitpunkt noch kein eintrag in der fstab, den man auslesen könnte...
Und da wird auch nie was stehen! Die gemounteten Filesysteme findet man unter /etc/mtab. Ist das root-Filesystem readonly gemountet, dann unter /proc/mounts nach schauen.
 
die datei /etc/mtab gibt es bei meinem system nicht und die datei /proc/mounts ist leer... komisch

da aber kurzzeitig ein ordner im /tmp/ erstellt wird, muss doch irgendwas gemounted werden... sonst können ja die auto-scripts nicht gestartet werden....

werde mich wohl mit einem workaround zufrieden geben müssen und die sticks auf einen temporären ordner mounten, dann schauen was es für ein stick ist (anhand der gespeicherten datei auf dem stick) und dann den temporären ordner auf den "richtigen" ordner mounten...
 
Wenn man den Befehl mount ohne Parameter eingibt, werden dann die gemounteten Filesysteme angezeigt?
Was sagt
ls -l /dev/disk/by-id/*
Normaler Weise wird dort ein link mit einer eindeutigen Geräte-ID auf das eigentliche Device erstellt.
Beispiel:
  • /dev/disk/by-id/usb-0930_USB_Flash_Memory_Geräte-ID-0:0-part1 -> ../../sdd1
Vielleicht kommst du auf diese Weise an die richtigen Gerätedateien.
 
Oben