USB-Stick und USB-Festplatten mit "fstab" automatisch mounten/einhängen

Mit Raspbian Jessie geprüft.

Standardmäßig bindet Raspbian Jessie neue USB-Laufwerke automatisch im Pfad "/media/{USERNAME}/{LABEL}" ein. Das macht es aber nur dann, wenn sich ein Benutzer am System anmeldet. Wenn aber das System im Headless-Betrieb und/oder ohne angemeldeten Benutzer läuft, dann werden USB-Laufwerke nicht automatisch eingebunden.
Zum automatischen Einhängen/Mounten/Einbinden von USB-Sticks und USB-Festplatten, auch ohne Benutzeranmeldung, empfiehlt sich grundsätzlich "usbmount".

Allerdings hat "usbmount" den Nachteil, dass alle Laufwerke gleich behandelt werden. Gemeint ist, dass nicht sicher ist, unter welchem Verzeichnis ein bestimmtes Laufwerk zu finden ist. Es kann lästig sein, wenn man einen USB-Stick einstecken will und dann immer zuerst herausfinden muss wo man den dann im Dateisystem findet.
Die zufällig Zuordnung kann auch dann ein Problem sein, wenn man zum Beispiel ein Backup auf einen bestimmten USB-Stick oder eine Festplatte automatisieren möchte. In dem Fall ist man darauf angewiesen, dass das Laufwerk immer im selben Verzeichnis eingehängt wird.

Die Anforderungen:

  1. Feste Zuordnung zwischen einem bestimmten Laufwerk und einem bestimmten Verzeichnis im Dateisystem.
  2. Einbindung auch im Headless-Betrieb, wenn keine Benutzeranmeldung erfolgt ist.

Aufgabe

  1. Verfügbare Unterstützung für Dateisysteme prüfen.
  2. Automatisches Einhängen von Laufwerken mit "fstab".

Lösung: Verfügbare Unterstützung für Dateisysteme prüfen

Damit ein Dateisystem auf einem Laufwerk erkannt und eingehängt werden kann, müssen die entsprechenden Dateisystem-Module installiert sein. Zu diesem Zweck sollte man prüfen, welche Dateisysteme der laufenden Kernel unterstützt.

ls -1 /lib/modules/$(uname -r)/kernel/fs

Um auf NTFS-Partitionen zugreifen zu können, benötigt man das Paket "ntfs-3g", das bei Raspbian Jessie automatisch installiert ist. Wenn nicht, dann kann man es nachträglich installieren.

sudo apt-get install ntfs-3g

Hinweis: NTFS mag unter Linux in den meisten Fällen ganz brauchbar sein. Trotzdem gibt es Stimmen, die es unter Linux als "nicht stabil" bezeichnen. Probieren Sie es aus und entscheiden selber.

Lösung: Laufwerke mit der Datei "/etc/fstab" mounten/einhängen

Diese Lösung eignet sich gleichermaßen für USB-Sticks und USB-Festplatten.

Bevor man den USB-Stick oder die Festplatte anschließt, sollte man prüfen, welche Laufwerke schon eingehängt sind.

lsblk

und

df -h

Dann kann man das Laufwerk anschließen und prüfen, ob das Laufwerk erkannt wurde.

lsblk

und

df -h

In der Regel werden USB-Sticks und Festplatten mit der Bezeichnung "sda", "sdb" usw. angezeigt und die darauf befindlichen Partition mit der Bezeichnung "sda1", "sda2" usw. geführt. Wichtig ist, dass wir an der Stelle das richtige Laufwerk und die dazugehörigen Partitionen identifizieren.

Anschließend geht es darum die sogenannte UUID (Universally Unique Identifier) oder das LABEL (benutzerdefinierter Name) der einzuhängenden Partition herauszufinden, anhand der wir später das Einhängen definieren.

sudo blkid

Wichtig ist, dass das Kommando "blkid" mit "sudo" oder als "root" ausgeführt wird, weil es ansonsten eine unvollständige bzw. eine falsche Ausgabe erzeugt.

Beispielhafte Ausgabe von einem Laufwerk (sda), das eine Partition (sda1) mit "FAT" formatiertes Dateisystem enthält:

/dev/sda1: SEC_TYPE="msdos" LABEL="USB" UUID="BB30-110E" TYPE="vfat" PARTLABEL="USB" PARTUUID="724fd228-1c4b-450a-bc1a-087008c2a3fc"

Beispielhafte Ausgabe von einem Laufwerk (sda), das eine Partition (sda1) mit "ext2" formatiertes Dateisystem enthält:

/dev/sda1: LABEL="USB" UUID="3f21afb1-15d1-43f9-9e0f-664afd587a6b" TYPE="ext4" PARTUUID="0004f309-01"

Beispielhafte Ausgabe von einem Laufwerk (sda), das eine Partition (sda1) mit "NTFS" formatiertes Dateisystem enthält:

/dev/sda1: LABEL="USB" UUID="74EA618724897ACE" TYPE="ntfs" PARTUUID="00034166-01"

Je nach System kann sich die Ausgabe von "sudo blkid" unterscheiden. Exemplarisch interessiert uns entweder die UUID oder das LABEL der Partition und das Dateisystem (TYPE). Aber Achtung, wenn man das Dateisystem durch Formatieren ändert, dann ändert sich auch die UUID.

Die UUID oder das LABEL ist deshalb wichtig, weil der Gerätedateiname in Form von "/dev/sda", "/dev/sdb" usw. sich ändern kann. Nur die UUID des Dateisystems ist eindeutig, solange man es nicht formatiert.

Jetzt geht es darum, die Partition bzw. das Dateiystem fest einem Mount-Point in der Datei "/etc/fstab" zuzuordnen. Dazu öffnen wir folgende Datei:

sudo nano /etc/fstab

In dieser Datei werden keine Laufwerke (USB-Stick oder Festplatte) sondern Dateisysteme eingetragen, mit denen eine oder mehrere Partitionen auf dem Laufwerk formatiert sind.

Beachten Sie bitte, dass die folgenden Zeilen individuell geändert werden müssen. Und zwar die UUID oder das LABEL (hier verwenden wir die UUID), den Mount-Point, das Dateisystem und ggf. auch die Optionen. Die UUID und das Dateisystem bekommen Sie über das Kommando "blkid" heraus. Der Mount-Point ist das Verzeichnis unter Sie das Dateisystem später finden wollen.

Beispiel für ein mit "FAT" formatiertes Dateisystem:

UUID=BB30-110E   /media/usb   vfat   auto,nofail,sync,users,rw,umask=000   0   0

Beispiel für ein mit "ext4" formatiertes Dateisystem:

UUID=3f21afb1-15d1-43f9-9e0f-664afd587a6b   /media/usb   ext4   auto,nofail,sync,users,rw   0   0

Beispiel für ein mit "NTFS" formatiertes Dateisystem:

UUID=74EA618724897ACE   /media/usb   ntfs   auto,nofail,sync,users,rw   0   0

Wenn Sie den Eintrag vorgenommen oder geändert haben, dann die Datei noch speichern und schließen mit Strg + O, Return, Strg + X.

Anschließend muss das lokale Verzeichnis für den Mount-Point erstellt werden.

sudo mkdir -p /media/usb

Anschließend kann man das Laufwerk bzw. das Dateisystem manuell einhängen/mounten.

sudo mount -a

Dabei prüft man, ob man den Eintrag in der Datei "/etc/fstab" korrekt angelegt hat.

Mit "df -h" und "lsblk" kann man prüfen ob und wo (Mount-Point) das eingehängt wurde.

Nach eine Reboot sollte das Laufwerk automatisch eingebunden sein.

Erweiterung: Berechtigungen im Dateisystem FAT

Ein FAT-Dateisystem kennt im Gegensatz zu Linux-Dateisystemen keine Dateibesitzer oder Benutzergruppen. Wenn man einem bestimmten Benutzer und/oder einer bestimmten Benutzergruppe Zugriff auf das Dateisystem geben möchte, dann muss man in der Datei "/etc/fstab" zusätzliche Angaben in der Spalten mit den Mount-Optionen machen. Hier kann man über die Optionen "uid" und "gid" den Besitzer und/oder die Gruppenzugehörigkeit definieren.
Im Beispiel oben ist der Besitzer der Benutzer "pi" und die Benutzergruppe ist "users".

...,uid=pi,gid=users,...

Hinweis: Die Benutzergruppe "users" hat in dem Fall nichts mit der fstab-Option "users" zu tun.

Troubleshooting

Es kann Gründe geben, warum das Einbinden nicht funktioniert. Beispielsweise, weil beim Abarbeiten der Datei "/etc/fstab" das Laufwerk noch nicht angesprochen werden kann. Dann hilft ein "mount -a" vor dem "exit 0" in der Datei "/etc/rc.local".

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • Sofort Loslegen mit All-in-one-Set

Elektronik-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!