USB-Datenträger automatisch einbinden
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Unter einem USB-Datenträger versteht man meist einen USB-Stick oder eine USB-Festplatte.
Wenn man unter Linux einen USB-Datenträger einsteckt, dann muss dieser erst in ein Verzeichnis eingehängt werden, damit man Zugriff auf ihn hat. Unter einigen Desktop-Umgebungen geschieht dies mittlerweile automatisch, unter anderen jedoch nicht. Hängt die Desktop-Umgebung, die man benutzt, USB-Datenträger nicht automatisch ein, hat man die Möglichkeit, den Stick von Hand mit mount einzuhängen und wieder auszuhängen oder man lässt dies automatisch durch Dienste übernehmen.
GNOME¶
Unter GNOME werden USB-Datenträger nach dem Einstecken automatisch erkannt und es erscheint ein Symbol auf dem Desktop, über das der Datenträger eingehängt werden kann. Will man den Datenträger wieder abziehen, macht man einen Rechtsklick auf das Symbol und klickt auf "aushängen" (sicher entfernen).
KDE¶
Bei KDE werden USB-Datenträger nach dem Einstecken automatisch erkannt, es erscheint aber kein Symbol auf dem Desktop. Stattdessen können die Datenträger über das Miniprogramm "Geräteüberwachung" ein- und ausgehangen werden. Zudem erscheint der Datenträger in Dolphin unter Orte → Geräte, wo er beim erstem Zugriff automatisch eingebunden wird.
Mit Hilfe von autofs¶
Installation¶
Zuerst muss aus den Paketquellen das Programm [6]:
autofs
Befehl zum Installieren der Pakete:
sudo apt-get install autofs
Oder mit apturl installieren, Link: apt://autofs
installiert [1] werden.
auto.master Konfiguration¶
Jetzt muss man den USB-Datenträger in autofs konfigurieren, damit er automatisch eingehängt wird. Dazu editiert man zuerst die /etc/auto.master-Datei mit einem Editor [4] mit Root-Rechten [5] und fügt eine Zeile für das übergeordnete Verzeichnis, in welches der Datenträger eingehängt werden soll, ein. Eine gültige Zeile besteht dabei aus der Angabe des übergeordneten Verzeichnisses, der Angabe der Konfigurationsdatei für das Verzeichnis und weiteren Optionen.
Zu beachten ist hierbei, dass autofs das übergeordnete Verzeichnis blocken wird, man also nur Zugriff auf die Ordner in ihm haben wird, die von autofs verwaltet werden. Deswegen sollte man nicht die üblichen Linux-Verzeichnisse zum Mounten verwenden, wie /media oder /mnt, da dort unter anderem das CD/DVD-Laufwerk liegen. Es empfiehlt sich also mit Root-Rechten [5] ein neues Verzeichnis auf der Root-Partition zu erstellen, zum Beispiel:
sudo mkdir /automnt
Wenn man als übergeordnetes Verzeichnis nun /automnt und als Konfigurationsdatei /etc/auto.automnt verwendet, sieht die Zeile für einen USB-Datenträger so aus:
/automnt /etc/auto.automnt --timeout=5 --ghost
Hinweis:
Die Option --timeout=5
sorgt dabei dafür, dass der Datenträger nach 5 Sek. Inaktivität automatisch ausgehängt wird und --ghost
sorgt dafür, dass autofs das Mountverzeichnis nach dem Aushängen nicht automatisch löscht. Dadurch wird durch ein Klicken auf das Verzeichnis bzw. das Aufrufen des Verzeichnisses aus der Konsole direkt der Datenträger eingehängt, wenn er eingesteckt ist. Beide Optionen sind essentiell für das automatische Einhängen und Benutzen eines USB-Datenträgers und sollten nicht verändert werden. Ohne die Angabe von --timeout=5
gilt der Defaultwert: 300 (5 Minuten).
Device-Pfad¶
Als nächstes muss man den Device-Pfad, unter dem der USB-Datenträger erkannt wird und dessen Dateisystem in Erfahrung bringen. Man steckt dazu den USB-Datenträger ein und führt dann im Terminal [3]:
sudo blkid -o list -w /dev/null
aus. Man bekommt eine Auflistung aller angeschlossenen Datenträger, aus der man alle Informationen beziehen kann:
device fs_type label mount point UUID ----------------------------------------------------------------------------------------------------------------------------- /dev/sda1 ext4 / 1847456f-c740-48ac-bff9-198f2591c90c /dev/sda2 ext4 Home /home 69979c60-4739-4a50-aac2-f74654478544 /dev/sdb1 vfat USB-Platte1 (not mounted) 94B46829B4681052 /dev/sdc1 vfat Erde (not mounted) ACDC-0002 /dev/sdd1 vfat Sonne /media/SANDISK CCB6-9B80
In diesem Fall wird der USB-Datenträger unter der UUID 94B46829B4681052 erkannt, hat das Label (Namen) USB-Platte1 und benutzt das FAT-Dateisystem.
Konfiguration der Mount-Einstellungen¶
Jetzt öffnet man die Konfigurationsdatei, die man in der /etc/auto.master angegeben hat (im Beispiel oben /etc/auto.automnt), mit einem Editor [4] mit Root-Rechten [5] und fügt eine Zeile für den USB-Datenträger hinzu. Diese Zeile besteht aus dem Unterordner, in den der Datenträger eingehängt werden soll, der Angabe des Dateisystems und dessen Optionen und der Angabe des Device-Pfades, unter welchem der Datenträger erkannt wird.
Will man, dass der Datenträger aus dem Beispiel in /automnt/usb-stick eingehängt werden soll, sieht die Zeile so aus:
usb-stick -fstype=vfat,sync,uid=0,gid=46,umask=007 :/dev/disk/by-uuid/94B46829B4681052
Hinweis:
-fstype=
verweist auf das Dateisystem. Alle weiteren Optionen nach vfat
sind davon abhängig, ob das Dateisystem sie unterstützt. sync
sorgt dafür, dass die Daten in Echtzeit auf den Datenträger geschrieben wird. Setzt man diese Option nicht, werden die Daten erst auf den Datenträger geschrieben, sobald man ihn aushängen will. uid=0
setzt den Besitzer des Datenträgers auf root
und gid=46
die Gruppe auf plugdev
. umask=007
gibt dem Besitzer und der Gruppe volle Rechte und allen anderen gar keine Rechte auf dem Datenträger. Der normale User-Account unter Ubuntu ist Mitglied der Gruppe plugdev
und hat somit volle Rechte.
Entscheidet man sich für ein anderes Dateisystem als FAT und NTFS für den USB-Datenträger, kann es sein, dass manche dieser Optionen nicht existieren oder anders heißen. Eine Auflistung aller möglichen Dateisysteme und deren Optionen findet man in den Manpages von mount und in dessen Wikiartikel. Es sollte jedoch beachtet werden, dass es bei anderen Dateisystemen als FAT, insbesondere bei Linuxdateisystemen wie ext2, ext3 oder reiserfs, nicht die Möglichkeit gibt, die richtigen Rechte direkt beim Mounten zu setzen. Man kann höchstens danach die Rechte manuell setzen, sollte jedoch beachten, dass diese dann an die UID bzw. GID gekoppelt sind. Wenn man den Datenträger auf einem anderen System einhängt, hat dort dann nur ein User mit der richtigen UID/GID zugriff, und diese muss nicht auf jedem System gleich sein.
Wurde die Datei erfolgreich editiert, muss zuletzt nur noch der autofs-Dienst neu geladen werden:
sudo systemctl reload autofs
Bei Problemen statt reload
jeweils den Befehl restart
verwenden.
Ab jetzt wird der USB-Datenträger beim Einstecken automatisch ein- und wieder ausgehängt.
Mit Hilfe von udev¶
Mit udev geht das ganze etwas einfacher, jedoch hat diese Methode den Nachteil, dass der Datenträger nicht mehr automatisch ausgehängt wird. Man muss also jedes mal umount von Hand durchführen.
Konfiguration¶
Man findet ebenfalls, wie oben unter autofs erklärt, den Device-Pfad und das Dateisystem heraus. Danach öffnet man mit Root-Rechten [5] einen Editor [4] und erstellt eine Datei mit dem Namen: 80-usbdevice.rules und speichert sie unter /etc/udev/rules.d/. In diese fügt man nun eine Regel zum automatischen Einhängen ein:
RUN+="/bin/mount -t vfat -o uid=0,gid=46,umask=007 /dev/sdb1 /automnt/usb-stick"
Die Bedeutung der einzelnen Optionen hier sind identisch mit denen, die im autofs-Abschnitt oben erklärt sind. Auch hier findet man weitere Informationen wieder in den Manpages von mount und in dessen Wikiartikel.
Zuletzt muss der udev-Dienst neugeladen werden:
sudo systemctl reload udev
Ab jetzt wird der USB-Datenträger beim Einstecken automatisch eingehängt.