USB Datenträger automatisch mounten

Aus Zenega Wiki

Wechseln zu: Navigation, Suche

Um unter Zenslack USB Medien automatisch zu mounten, wenn diese eingesteckt werden, habe ich mich für eine Lösung auf Cron Jobs basierend entschieden, da dieses schnell zu konfigurieren ist, auch unter älteren Kernelversionen funktioniert und wenig Speicher verbraucht. Da Cron Jobs nicht für diese Aufgabe gedacht sind, gibt es allerdings zwei kleine Einschränkungen:

-Es wird nicht automatisch unmounted

-Es kann im schlechtesten Fall eine Minute dauern, bis das Medium eingehangen wird


Trotzdem ist diese Lösung in meinen Augen praktikabel und gut genug. Es wird einfach ein fstab Eintrag für ein USB Medium erstellt und per Cron Job regemäßig versucht, dieses mit mount -a einzuhängen. Der Lösungsweg im Detail:

1) Loggt euch in Zenslack auf einer Konsole ein (ob direkt oder z.B. per ssh ist egal.) Gebt den Befehl „crontab -e“ (ohne Anführungszeichen) ein. Kommt eine Meldung, die besagt, dass der Befehl crontab nicht gefunden wurde, muss DCron noch installiert werden. Hierfür ladet ihr euch von http://packages.slackware.it/ das entsprechende Paket herunter. Ich habe bei mir das Paket dcron-2.3.3-i386-4.tgz verwendet. Dieses entpackt ihr nach / (das Root Verzeichnis) und löscht danach den ordner /install.

2) Nachdem ihr „crontab -e“ eingegeben habt, öffnet sich der Standardeditor von Zenslack mit der Tabelle der vordefinierten Cron Jobs. Ans ende dieser tragt ihr folgende Zeile ein: „*/1 * * * * /home/zenega/mount“ Diese bewirkt, dass jede Minute das unter /home/zenega liegende Skript „mount“ ausgeführt wird.

3)Dieses müssen wir natürlich noch anlegen. Dazu geben wir in der Konsole folgenden Befehl ein: vi /home/zenega/mount. Jetzt tragen wir die Zeile „mount -a“ ein. Der Befehl bewirkt, dass alle in fstab stehende Medien eingehängt werden. Noch fehlt aber der Eintrag für unser USB Medium, welchen wir jetzt ergänzen.

4) Dafür öffnen wir mit „vi /etc/fstab“ die Datei fstab. Für ein USB Medium verwenden wir folgenden Eintrag: „/dev/sda1 /mnt/usb1 auto noatime,auto,rw,sync,users 0 0“. Bootet ihr Zenslack von einem USB Medium, so muss dass /dev/sda1 in /dev/sdb1 geändert werden. Dieser Eintrag bewirkt, dass wenn ein USB Stick/ eine USB Festplatte angeschlossen ist, diese nach /mnt/usb1 gemountet wird Damit dies funktioniert, müssen wir mit „mkdir /mnt/usb1“ dieses Verzeichnis erst noch erstellen.

Wenn ihr alles richtig gemacht habt, könnt ihr jetzt im laufenden Betrieb ein USB Speichermedium einstecken und nach spätestens einer Minute ist es unter /mnt/usb1 verfügbar!


Einschränkungen

Allerdings gibt es gewisse Einschränkungen. Mit der hier beschriebenen Methode wird nur die erste Partition eingehangen. Hat das Medium mehrere Partitionen, könnt ihr auf diese nicht zugreifen. Als Lösung bietet es sich an, hier „auf verdacht“ die Möglichkeit zu ergänzen, mehrere Partitionen einzuhängen. Erstellt einfach mehrere Ordner (/mnt/usb2; /mnt/usb3;...) und ergänzt die fstab folgendermaßen: „/dev/sda2 /mnt/usb2 auto noatime,auto,rw,sync,users 0 0“ usw. Ich habe mir die Möglichkeit für 5 Partitionenen vorbehalten (/dev/sdb1-5 nach /mnt/usb1-5).

Desweiteren habe ich noch nicht ausprobiert, was passiert, wenn man das Medium herauszieht (es wird ja nicht ordentlich ausgehangen) und danach ohne Neustart ein weiteres Medium einsteckt. Ob dieses nachwievor unter sda läuft, oder ob sich der Zähler auf sdb, sdc, ... erhöht. Ist dies der Fall, kann man einfach weitere Einträge nach obigen Vorbild mit /dev/sdax, /dev/sdbx, /dev/sdcx,... erzeugen, die alle nach /mnt/usbx mounten. Hierbei ist jedoch zu beachten, dass wenn man beide USB Ports frei hat und in beide ein USB Medium hängt, diese an die gleiche Stelle gemountet werden. Um das zu vermeiden, baut man seine fstab nach folgendem Schema auf: sdax, sdcx, sdex,... werden nach /mnt/usbx1 gemountet und sdbx, sddx, sdfx,... werden nach /mnt/usbx2 gemountet. Wie gesagt, ich weiß nicht ob diese Verrenkung überhaupt nötig ist, falls nicht darf der letzte Absatz getrost gelöscht werden.


Quellen:

fstab: http://slackwiki.org/Fstab Cron Jobs http://slackwiki.org/Cron_Jobs