Mount Disk - Festplatte in Linux einbinden

Beim Raspberry bietet es sich an das Betriebsystem und System-Dateien auf der SD-Karte zu speichern. Produktive Daten sind allerdings besser auf einer externen Festplatte aufgehoben. Damit Linux auf einen externen Datenträger zugreifen kann muss dieser explizit via Mounting eingebunden werden.

Dieser Artikel ist Bestandteil der Artikelserie "Home Server mit dem Raspberry Pi". Zum Inhaltsverzeichnis gelangt ihr hier.

Format der Festplatte

Bevor Ihr eine Festplatte über USB anbindet solltet Ihr euch entscheiden welches Dateiformat Ihr verwenden wollt. Zur Auswahl stehen NTFS und ext4 (es gibt noch weitere Formate aber für unseren Einsatzzweck sind nur diese beiden relevant).

Format - NTFS

NTFS (New Technology File System) ist ein Dateiformat welches von Microsoft entwickelt wurde. Wenn Ihr möglichst plattformunabhängig sein möchtet ist dieses Format zu empfehlen da Linux (über speziellen Treiber NTFS-3G) recht unkompliziert damit umgehen kann. Natürlich müsst ihr einige Nachteile in Kauf nehmen.

Nachteile (unter Linux):

  • Deutlich langsamer als ext4
  • Benutzerrechte gehen nicht
  • Home-Ordner von Usern können hier nicht deklariert werden

Wenn NTFS unter Linux unterstützt werden soll führt folgendes Kommando aus:

sudo apt-get install ntfs-3g

Format - ext4

Das "fourth extended filesystem" ist ein Linux Dateiformat. Unter Windows kann man über Drittprogramme darauf zugreifen (teilweise umständlich).

Meine Empfehlung

Wenn die USB-Platte als Wechselmedium häufig zwischen verschiedenen OS verwendet wird, sollte NTFS verwendet werden.
Wenn allerdings die Platte primär für das Raspberry Verwendung findet, sollte man unbedingt ext4 wählen.

Hinweis: Auf eine ext4 Platte kann man ganz normal von Windows aus über das Netzwerk zugreifen wenn Samba auf dem Pi aktiv ist!
Siehe: blog.rollnut.com/file-server-einrichten/

Festplatte als ext4 formatieren

Steckt die Festplatte an das Raspberry an und gebt anschließend folgenden Befehl ein:

sudo blkid

Es werden nun alle Datenträger (inkl. Partitionen) dargestellt. Mein Ergebnis sieht folgend aus:

/dev/mmcblk0: PTUUID="e5efb5a4" PTTYPE="dos"
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="B176-EFEE" TYPE="vfat" PARTUUID="e5efb5a4-01"
/dev/mmcblk0p2: UUID="0aed834e-8c8f-412d-a276-a265dc676112" TYPE="ext4" PARTUUID="e5efb5a4-02"
/dev/sda1: LABEL="MyHardDrive" UUID="86A8AB18A8AB0631" TYPE="ntfs" PARTUUID="0598a1f7-01"

Sucht aus der Liste nun eure Festplatte (achtet auf den Wert von "LABEL". Dort steht der selbe Name wie in Windows). Wenn Ihr nicht wisst welcher Eintrag der Richtige ist dann steckt die Festplatte einfach ab und führt noch einmal den Befehl aus. Dadurch könnt Ihr sehen welche Platte dazugekommen ist wenn Ihr sie wieder ansteckt.

Wir benötigen lediglich das erste Stück des Eintrags. Also in meinem Falls /dev/sda1.

Mit diesem Befehl wird nun die Festplatte als ext4 formatiert (alle aktuellen Daten darauf gehen verloren!).

sudo mkfs.ext4 /dev/sda1 -L pidisk1

Das letzte Argument bestimmt das Alias der Festplatte (ich habe meine Platte pidisk1 genannt).

Mounten der USB-Festplatte

Meine Version von Raspbian erkennt externe Festplatten automatisch und bindet diese bereits automatisch ein. Die Platte hat den Pfad: /media/pi/pidisk1.

Das automatische Einbinden funktioniert eigentlich recht gut, allerdings können neu erstellte User nicht auf die Festplatte zugreifen (NTFS). Wenn dies sowieso nicht benötigt wird kann man das automatische mounting beibehalten. In meinem Fall wird es aber je Programm einen speziellen User geben und daher ist der Zugriff unbedingt nötig.

Pfad anlegen

Im Gegensatz zu Windows erfolgt der Zugriff auf externe Datenträger in Linux über einen regulären Ordner. Dieser muss erst einmal angelegt werden. Normalerweise erstellt man diesen in /media oder /mnt (ich werde den media-Ordner verwenden). Außerdem geben wir dem User pi Vollzugriff.

// Create mount directory (can be any name)
sudo mkdir /media/pidisk1

// Give user pi permission to disk
sudo chown -R pi:pi pidisk1

UUID auslesen

Zuerst muss die UUID von der USB-Platte herausgefunden werden. Dafür gibt es zwei Wege (geht natürlich nur wenn die Festplatte angeschlossen ist).

// Variante 1:
ls -l /dev/disk/by-uuid

// Variante 2:
sudo blkid

Bei Variante 1. Notiert euch die Zeichen der Zeile die mit sda1 endet (wenn am Pi mehrere Platten/Partitionen angeschlossen sind kann der Name abweichen).
Habt ihr Variante 2. gewählt erkennt Ihr den gesuchten Eintrag anhand des LABLEs. Dort steht der Name der Platte den Ihr auch unter Windows seht.

fstab konfigurieren und mounten

Nun müssen wir Linux erklären welches Medium in unser eben erstelltes Verzeichnis gemountet werden soll. Dies kann man mit der Datei fstab machen.

// Open fstab in order to configurate the mount
sudo nano /etc/fstab

Dort fügen wir am Ende folgende Zeile hinzu.

UUID=YourIndiviuelUUID /media/pidisk1 auto auto,nouser,exec,rw 0 0

Mehr Infos über die Konfigurationsparameter könnt Ihr hier erfahren: wiki.ubuntuusers.de/fstab/

Nach einem Neustart vom Pi dürfte die NTFS-Festplatte auch schon eingebunden sein. Alternativ reicht auch folgender Befehl.

sudo mount -a

Anmerkung: Das Linux-Rechtesystem, welches über chown und chmod gesteuert wird, funktioniert nicht mit NTFS-Festplatten. Man kann lediglich in der fstab-Datei für die komplette Disk einmalig Rechte hinterlegen (siehe gid und uid).

Weitere geht's ...

Die Artikelserie „Home Server mit dem Raspberry Pi“ geht jetzt mit dem Thema File-Server mit Samba weiter.