Raspberry Pi: Externe Speichermedien
Es ist möglich externe Speichermedien wie Festplatten oder USB-Sticks am Raspberry Pi zu verwenden und größere Datenmengen extern zu speichern. Die Anbindung eines externen Speichermdiums muss in Raspbian immer bekannt gemacht werden und funktioniert nicht nach dem Prinzip Plug’n’Play wie in Windwos. Eine externe Festplatte ist immer dann empfehlenswert, wenn du große Datenmengen speichern willst oder häufige Lese- und Schreibzugriffe erfolgen, die bei SD-Karten schnell zu Ausfällen führen.
Inhaltsverzeichnis
Mountpoint erstellen
Zunächst installieren wir Treiber, damit NTFS und HFS+ Speichermedien eingebunden werden können. Solltest du nur ext-Dateisysteme von Linux nutzen, ist das installieren dieser Treiber nicht notwendig.
sudo apt-get -y install ntfs-3g hfsutils hfsprogs exfat-fuse
Wir legen nun einen Ordner im Verzeichnis /media an, in den das USB-Speichermedium eingebunden wird. Dieser Ort wird mountpoint genannt. In meinem Fall nenne ich den Ordner usbdrive. Der Mountpoint und der Name können frei gewählt werden, sollten aber keine Sonder- und Leerzeichen enthalten. Du kannst den Mountpoint also auch in einem anderen Ordner anlegen.
sudo mkdir /media/usbdrive
Nun führen wir folgenden Befehl in der Konsole aus und stecken anschließend das USB-Medium an. Daraufhin sollte in der Konsole eine Ausgabe aller angeschlossenen Speichermedien erscheinen. USB-Sticks werden meistens mit sda und externe Festplatten mit hd, ggf. mit anhängender Nummer, bezeichnet. Bei mehreren USB-Sticks heißen die Geräte dann sda, sdb, sdc usw. Bei mehreren Festplatten entsprechend hd1, hd2, hd3 usw.
sudo blkid -o list -w /dev/null
Uns interessiert die erste und letzte Spalte des richtigen Gerätes mit dessen device Pfad und UUID. Außerdem ist die Angabe unter Type wichtig, da sie das Dateiformat anzeigt, mit der die Festplatte formatiert ist.
Speichermedium mounten
Nachdem wir nun den device Pfad und den Typ des Dateisystems kennen und einen Mountpoint erstellt haben, können wir das Speichermedium mit folgendem Kommando im erstellten Mountpoint einbinden. Dabei muss je nach Dateisystem ein anderes Kommando verwendet werden. Du musst dabei außerdem die Gerätebezeichnung sda durch den Namen deines USB-Speichermediums und /media/usbdrive/ durch deinen Mountpoint ersetzen. Die zwei Angaben des Benutzers pi müssen durch den Benutzernamen ersetzt werden, der auf das Speichermedium zugreifen soll.
FAT32
sudo mount -t vfat -o utf8,uid=pi,gid=pi,noatime /dev/sda /media/usbdrive
NTFS
sudo mount -t ntfs-3g -o utf8,uid=pi,gid=pi,noatime /dev/sda /media/usbdrive
HFS+
sudo mount -t hfsplus -o utf8,uid=pi,gid=pi,noatime /dev/sda /media/usbdrive
exFAT
sudo mount -t exfat -o utf8,uid=pi,gid=pi,noatime /dev/sda /media/usbdrive
ext4
sudo mount -t ext4 -o defaults /dev/sda /media/usbdrive
Bedeutung der Parameter nach -o für Option:
- utf8: Die Dateinamen verwenden den UTF-8-Zeichensatz und dürfen somit auch Umlaute enthalten
- uid=pi,gid=pi: Das Speichermedium wird dem Benutzer (uid) und der Gruppe (gpi) pi zugewiesen
- noatime: Die Inode Access Time (letzter Lesezugriff) wird nicht aktualisiert und damit werden unnötige Schreiboperatoren vermieden
- defaults: Dem Gerät werden die Optionen rw, suid, dev, exec, auto, nouser und async zugewiesen
Falls es Probleme gibt, ist es durchaus hilfreich den Raspberry Pi neuzustarten. Außerdem ist zu beachten, dass für jedes Laufwerk ein eigener Mountpoint erstellt werden muss. D. h. es kann in dem oben erstellten Pfad /media/usbdrive nur ein einzelnes externes Speichermedium eingebunden werden.
Speichermedium formatieren
Nun hast du die Möglichkeit die Festplatte noch zu formatieren, um belegten Speicherplatz freizugeben und das verwendete Dateisystem zu ändern. Unter Linux sind die ext-Dateisysteme, vorzugsweise das neuste ext4-Dateisystem zu empfehlen. Gänzlich abzuraten ist vom ntfs-Dateisystem von Windows, da hiermit nur sehr geringe Lese- und Schreibraten erreicht werden können.
Der Befehl mkfs.ext4 gibt hierbei das Ziel-Dateisystem an. In diesem Fall formatiere ich die Festplatte also mit ext4.
sudo mkfs.ext4 /media/usbdrive
Durch das Formatieren erhält die Festplatte eine neue UUID. Diese muss anschließend in die fstab eingetragen werden, um ein automatisches Mounten beim Bootvorganng zu ermöglichen.
Automount beim Booten
Soll der USB-Stick oder die USB-Festplatte nun bei jedem Start des Raspberry Pis automatisch eingebunden werden, können wir dies für einen Eintrag in der Datei fstab erlauben, wozu wir die zuvor ausgelesene UUID benötigen. Beachte, dass sich die UUID geändert hat, wenn du eine Formatierung durchgeführt hast. Je nach Dateisystem muss man eine der folgenden Zeilen am Ende der Datei /etc/fstab eintragen. Die UUID musst du dabei durch deine eigene ersetzen. Zum Bearbeiten der Datei nutzen wir den Editor nano, in dem wir zum Speichern [STRG] + [X], [Y] und anschließend [Enter] drücken müssen.
sudo nano -w /etc/fstab
FAT32
UUID=3241-40CE /media/usbdrive vfat utf8,uid=pi,gid=pi,noatime 0
NTFS
UUID=3241-40CE /media/usbdrive ntfs-3g utf8,uid=pi,gid=pi,noatime 0
HFS+
UUID=3241-40CE /media/usbdrive hfsplus utf8,uid=pi,gid=pi,noatime 0
exFAT
UUID=3241-40CE /media/usbdrive exfat utf8,uid=pi,gid=pi,noatime 0
ext4
UUID=3241-40CE /media/usbdrive ext4 defaults 0
Gut das Du auf einen Schreibfehler im fstab hinweist.
Alle Deine Beispielangaben für den Eintrag in die /etc/fstab sind fehlerhaft.
Z. B. für „UUID=3241-40CE /media/usbdrive / ext4 defaults 0“
Der „/“ nach mountpoint „/media/usbdrive“ gehört nicht dort hin.
Trägt man es so in im /etc/fstab ein, ist ein booten nicht mehr möglich und der Rasp. geht in den emergency mode.