USB-Datenträger automatisch einbinden

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Bearbeiten von Paketquellen

  3. Ein Terminal öffnen

  4. Einen Editor öffnen

  5. Programme als Root ausführen

  6. Autofs (Partitionen bei Bedarf automatisch einhängen)

Inhaltsverzeichnis
  1. GNOME
  2. KDE
  3. Mit Hilfe von autofs
    1. Installation
    2. auto.master Konfiguration
    3. Device-Pfad
    4. Konfiguration der Mount-Einstellungen
  4. Mit Hilfe von udev
    1. Konfiguration
    2. Geschwindigkeitsproblem USB 1.1

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 rechte Maustaste 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 OrteGeräte, wo er beim erstem Zugriff automatisch eingebunden wird.

Mit Hilfe von autofs

Installation

Zuerst muss aus den Paketquellen das Programm [6]:

Paketliste zum Kopieren:

sudo apt-get install autofs 

Oder mit apturl die Pakete 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 service autofs reload 

bzw. ab Ubuntu 16.04 mit systemd

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 service udev reload 

bzw. ab Ubuntu 16.04

sudo systemctl reload udev 

Ab jetzt wird der USB-Datenträger beim Einstecken automatisch eingehängt.

Geschwindigkeitsproblem USB 1.1

Bei älterer Hardware könnte es sein, dass nur USB 1.1 Anschlüsse vorhanden sind. Oder der PC hat sowohl USB 1.1 als auch USB 2.0. USB 2.0 Geräte sind mit 480 MBit/s erheblich schneller als ihr Vorgänger.

Zunächst muss folgendes Paket installiert werden:

Paketliste zum Kopieren:

sudo apt-get install hwinfo 

Oder mit apturl die Pakete installieren. Link: apt://hwinfo

Dann kann man eine Auflistung der angeschlossenen USB-Geräte erstellen:

hwinfo --usb 
01: SCSI 700.0: 10600 Disk                                            
  [Created at block.243]                                              
  UDI: /org/freedesktop/Hal/devices/storage_serial_TrekStor_DS_maxi_g_u_200901052248_0_0
  Unique ID: ADDn.tDKPVCgzqj6                                                           
  SysFS ID: /class/block/sdd                                                            
  SysFS BusID: 7:0:0:0                                                                  
  SysFS Device Link: /devices/pci0000:00/0000:00:13.3/usb1/1-1/1-1:1.0/host7/target7:0:0/7:0:0:0
  Hardware Class: disk                                                                          
  Model: "TrekStor DS maxi g.u"                                                                 
  Vendor: usb 0x1e68 "TrekStor"                                                                 
  Device: usb 0x001b "DS maxi g.u"                                                              
  Serial ID: "200901052248"                                                                     
  Driver: "usb-storage", "sd"                                                                   
  Driver Modules: "usb_storage"                                                                 
  Device File: /dev/sdd (/dev/sg4)                                                              
  Device Number: block 8:48-8:63 (char 21:4)                                                    
  Features: Hotpluggable                                                                        
  Speed: 480 Mbps                                                                            
  Module Alias: "usb:v1E68p001Bd0000dc00dsc00dp00ic08isc06ip50"                                 
  Driver Info #0:                                                                               
    Driver Status: usb_storage is active                                                        
    Driver Activation Cmd: "modprobe usb_storage"                                               
  Drive status: no medium                                                                       
  Config Status: cfg=new, avail=yes, need=no, active=unknown   

Am Eintrag Speed erkennt man die Geschwindigkeit des Ports, hier 480 Mbps (USB 2.0). Bei 1,5 Mbps oder 12 Mbps ist es ein Anschluss mit USB 1.1.

Wenn man trotz USB 2.0 langsame Dateioperationen hat, kann das auch am USB-Kabel liegen, empfehlenswert sind kurze oder Y-USB-Kabel, die eine bessere Stromversorgung von Platten ohne eigenem Netzgerät gewährleisten.