2428373

Linux-Know-How: Dateisysteme und Mountpunkte

14.06.2019 | 14:04 Uhr | Thorsten Eggeling

Linux ist im Umgang mit Datenträgern und Partitionen sehr flexibel. Bei einigen Dateisystemen und Laufwerkstypen sind jedoch Besonderheiten zu beachten.

Es gibt kaum ein Dateisystem, das Linux nicht kennt und verwenden kann. Dahinter steckt komplexe Software, um die sich der Linux-Nutzer in der Regel nicht kümmern muss. Eine Standardinstallation fragt meistens nicht nach einem Dateisystem und auch ein NTFS-formatierter USB-Stick erscheint wie selbstverständlich im Dateimanager. Es lohnt sich jedoch, einen genaueren Blick auf die verfügbaren Dateisysteme zu werfen und sich mit den zugehörigen Tools vertraut zu machen. Das kann dabei helfen, auftretende Probleme zu lösen und das System optimal einzurichten.

Siehe auch: Linux-Dateisysteme für Fortgeschrittene

1. Das Linux-Standarddateisystem Ext4

Die meisten Linux-Distributionen nutzen Ext4 als Standard-Dateisystem. Ext4 (fourth extended filesystem) ist ein Journaling-Dateisystem und der Nachfolger von Ext3. Journaling bedeutet, dass alle Änderungen vor dem eigentlichen Schreiben in einem reservierten Speicherbereich aufgezeichnet werden. Kommt es zu einem Stromausfall und dabei zu unvollständigen Schreibvorgängen, lässt sich der konsistente Zustand der Daten schnell rekonstruieren. Ohne Journal beansprucht die Reparatur des Dateisystems bei großen Festplatten sehr viel Zeit.

Im Ext4-Dateisystem lassen sich Dateien mit maximal 16 TiB speichern und Partitionen können bis zu 1 EiB (Exbibyte = 1024 hoch 6 Byte = 2 hoch 60 Byte) umfassen. Derartige Dateigrößen kommen auf privaten PCs wahrscheinlich kaum vor, aber auch hier profitieren Nutzer von Ext4-Funktionen. Den Größen-und Geschwindigkeitszuwachs verdankt Ext4 vor allem den „Extents“. Wurde bislang zu jeder Datei eine Liste der Blöcke gespeichert, die diese im Dateisystem belegt, fassen Extents solche Metadaten mit drei Werten zusammen: den Anfang des Dateibereichs, dessen Größe sowie die Nummer des ersten Blocks im Dateisystem, die die Datei belegt. Das spart nicht nur Verwaltungsaufwand. Sämtliche Metainformationen benötigen bei größeren Dateien unter Ext4 deutlich weniger Speicherplatz und beschleunigen den Dateizugriff.

Eine weitere Funktion ist die „persistent preallocation“, bei der eine Anwendung dem Dateisystem im Voraus mitteilen kann, wie groß der benötigte Speicherplatz für eine bestimmte Datei sein wird, um diese später möglichst am Stück auf die Festplatte zu speichern. Das bringt vor allem bei Datenbank-oder P2P-Dateien (etwa Bittorrent) eine geringere Fragmentierung. Zusätzlich werden Dateien länger im Cache zwischengelagert. Blöcke werden also nicht mehr sofort einzeln geschrieben, sondern erst, wenn nach Möglichkeit die gesamte Datei zusammenhängend zur Verfügung steht („delayed allocation“).

2. Open Suse setzt auf BTRFS und XFS

BTRFS: Interessante Funktionen bedeuten auch mehr Komplexität.
Vergrößern BTRFS: Interessante Funktionen bedeuten auch mehr Komplexität.

Einige Linux-Distributionen bevorzugen andere Dateisysteme als Ext4. Open Suse beispielsweise richtet sich bei der Installation auf einer BTRFS-Partition ein (B-Tree-Filesystem), für die Home-Partition kommt XFS zum Einsatz. BTRFS bietet einige Funktionen, die es von Ext4 abheben.

Mit Snapshots lässt sich der Partitionszustand sichern, was die Rückkehr zu einem früheren Zustand ermöglicht. Dafür verwenden Sie Yast2-snapper oder beim Systemstart den Grub2-Menüeintrag „Start bootloader from a read-only snapshot“. Einige Zweige des Dateisystems, etwa „/opt“ und „/var/lib/mysql“, legt Open Suse als BTRFS-Subvolumes an, die einzeln in das Dateisystem eingehängt werden.

Ein Grund für die Subvolumes ist „Copy on Write“ (CoW). Dadurch werden Änderungen von Dateien beschleunigt, weil das Dateisystem zunächst alle neuen Blöcke in einen freien Speicherplatz schreibt, ohne die ursprüngliche Datei zu verändern. Bei vielen kleinen Dateien oder häufigen Schreibzugriffen wirkt CoW jedoch als Bremse. Deshalb ist die BTRFS-Funktion bei einigen Subvolumes deaktiviert, etwa bei den Datenbankverzeichnissen „/var/lib/mysql“ und „/var/lib/pgsql“.

Partitionen lassen sich beim Dateisystem BTRFS zur Laufzeit verkleinern oder vergrößern und Sie können den Speicherplatz durch Partitionen erweitern, die auf anderen Festplatten liegen. Das Dateisystem nutzt optional interne Komprimierung, defragmentiert selbständig im laufenden Betrieb und vermeidet Platzverschwendung bei sehr kleinen Dateien.

XFS verwendet Open Suse auf der Home-Partition, weil hier Snapshots und Copy on Write nicht erforderlich und sinnvoll sind. XFS lässt sich auf Partition bis zu 16 Exbibyte einsetzen, die maximale Dateigröße liegt bei acht Exbibyte. Das Dateisystem kommt häufig auf NAS-Geräten und Smart-TVs mit USB-Aufzeichnungsfunktion zum Einsatz. Es bietet gute Leistungen bei kleinen und großen Dateien und bei Multi-Threading-Anwendungen. Im direkten Vergleich mit Ext4 zeigen sich im praktischen Betrieb aber weder besondere Vor-noch Nachteile.

Insgesamt besitzt BTRFS zwar allerhand nützliche Spezialitäten, die aber auf einem Desktopsystem nicht unbedingt erforderlich sind. Die komplexe Partitionsstruktur mit BTRFS und XFS erfordert erhöhte Einarbeitungszeit ohne ersichtlichen Nutzen auf einem heimischen PC. BTRFS erleichtert vor allem Serveradministratoren das Leben, die viel Zeit mit dem Erweitern und Ersetzen von Speicherkapazitäten verbringen.

BTRFS kann allerdings auf Mini-PCs wie dem Raspberry Pi sinnvoll sein. Open Suse richtet auf dem Gerät BTRFS mit aktivierter Komprimierung ein. Das spart Platz auf der SD-Karte und sorgt für schnelleren Datentransfer. Das gleiche Prinzip lässt sich auch auf kleineren SSDs im PC anwenden.

Linux-Dateisystem - das bedeuten /bin, /boot, /etc, /opt & Co.

3. Partitionen erstellen und formatieren

Formatieren: Für jedes Dateisystem gibt es ein eigenes mkfs-Tool.
Vergrößern Formatieren: Für jedes Dateisystem gibt es ein eigenes mkfs-Tool.

Wenn Sie zusätzliche Festplatten in Ihrem Linux-System verwenden wollen, müssen Sie diese partitionieren und formatieren. Gparted erledigt beides in einem Arbeitsgang. Alternativ erstellen Sie Partitionen mit fdisk oder gdisk im Terminalfenster. Wenn Sie die Kommandozeile benutzt haben, müssen Sie die Partitionen noch formatieren. Dafür verwenden Sie beispielsweise diesen Befehl:

sudo mkfs.ext4 -L [Bezeichnung] /dev/sd[XY]

Nach „mkfs.“ („make filesystem“) folgt hier die Angabe „ext4“, und hinter „-L“ definieren Sie optional eine Bezeichnung, anhand derer sich die Partition später im Dateimanager leichter identifizieren lässt. Den Platzhalter „[XY]“ ersetzen Sie durch die Laufwerksbezeichnung und Partitionsnummer, etwa „/dev/sdb1“ oder „/dev/sdc2“. Eine Übersicht mit den verfügbaren Partitionen erhalten Sie mit

sudo fdisk -l

Überprüfen Sie die Laufwerksangabe genau, damit Sie nicht versehentlich die falsche Partition formatieren.

Für andere Dateisysteme gibt es entsprechende Tools, beispielsweise mkfs.ext3, mkfs.ntfs und mkfs.vfat (FAT32). Tools für BTRFS, XFS und ExFAT sind bei Ubuntu/Mint standardmäßig nicht installiert. Die nötigen Pakete für diese Dateisysteme heißen „btrfs-tools“, „xfsprogs“, „exfat-fuse“ und „exfat-utils“. Die Tools kennen unterschiedliche Optionen, die teilweise für das jeweilige Dateisystem spezifisch sind. Starten Sie das gewünschte Tool ohne weitere Angaben, um eine kurze Übersicht zu erhalten. Ausführliche Informationen bietet die Manpage, die Sie sich etwa mit

man mkfs.ntfs

anzeigen lassen. Ein Beispiel: mkfs.ntfs überschreibt aus Sicherheitsgründen den vorhandenen Inhalt mit Nullen, was aber relativ lange dauert. Mit dieser Variante

mkfs.ntfs --quick -L [Bezeichnung] /dev/sd[XY]

geht es deutlich schneller.

4. Partitionen in das Dateisystem einbinden

Standardbenutzer sehen zwar alle Laufwerke, dürfen aber Ext4-Partitionen nicht ohne Admin-Passwort einbinden.
Vergrößern Standardbenutzer sehen zwar alle Laufwerke, dürfen aber Ext4-Partitionen nicht ohne Admin-Passwort einbinden.

Nachdem Sie eine Partition neu formatiert haben, taucht diese sofort im Dateimanager auf. Mit einem Klick darauf binden Sie die Partition in das Dateisystem unter „/media/[Benutzername]/[Volume-Label]“ ein.

Bei Ubuntu verhält sich der Dateimanager abhängig von Benutzerrechten, Dateisystem und Laufwerkstyp unterschiedlich:

  • Benutzer mit administrativen Rechten (Systemverwalter) dürfen interne und externe Laufwerke über den Dateimanager ein-und aushängen.

  • Auch Systemverwalter erhalten Schreibzugriff nur auf FAT32-und NTFS-Partitionen. Bei Linux-Dateisystemen wie Ext4, BTRFS und XFS gibt es nur Lesezugriff.

  • Nutzer ohne administrative Rechte (Standardbenutzer) dürfen über den Dateimanager nur externe Geräte (USB-Sticks und USB-Festplatten) ein-und aushängen. Schreibzugriff ist nur auf FAT32-und NTFS-Partitionen erlaubt.

  • Standardbenutzer werden bei einem Klick auf interne, nicht eingebundene Laufwerke zur Eingabe des Systemverwalter-Passworts aufgefordert. Bei FAT32 und NTFS räumt Ubuntu Lese-und Schreibzugriff ein, auf Linux-Dateisystemen gibt es nur Leserechte.

Für den unkomplizierten Umgang mit USB-Laufwerken sollten Sie diese vorzugsweise mit den Dateisystemen FAT32 oder NTFS formatieren. Wenn Sie sich für ein Linux-Dateisystem entscheiden, müssen Sie die Rechte wie bei internen Laufwerken setzen, damit Sie Dateien darauf speichern können (siehe Punkt 5).

Tools für die Kommandozeile: Wer ohne grafische Oberfläche arbeitet, verwendet das Tool mount in einem Terminalfenster. Dieser Befehl

blkid

zeigt die verfügbaren Partitionen an – einschließlich Gerätepfad und Typ des Dateisystems. Erstellen Sie ein Verzeichnis, in das Sie das Dateisystem einhängen wollen, beispielsweise mit

sudo mkdir /mnt/Data

Danach hängen Sie die gewünschte Partition ein:

sudo mount /dev/sdb2 /mnt/Data

„sdb2“ ersetzen Sie durch den mit blkid ermittelten Gerätepfad. Mount erkennt das verwendete Dateisystem automatisch und fragt nicht danach.

Soll die interne Festplatte beim Systemstart automatisch eingehängt werden, editieren Sie mittels

sudo nano /etc/fstab

die Datei fstab. Eine zusätzliche Zeile in der Konfigurationsdatei kann dann folgendermaßen aussehen:

UUID=e9e72ace-d31b-418e-9669-a69488cc3488 /mnt/Data ext4 x-gvfs-show 0 0

Sie können am Beginn des Eintrag auch den Gerätepfad verwenden (etwa „/dev/sdb2“). Es ist jedoch sicherer, die eindeutige UUID einzutragen, die das Tool blkid ebenfalls anzeigt. Dann findet das System die Partition in jedem Fall, selbst wenn sich die Reihenfolge der Laufwerke ändert. Die Option „x-gvfs-show“ bewirkt, dass der Dateimanager die Partition anzeigt. Speichern Sie die Datei mit Strg-O und beenden Sie den Editor mit Strg-X.

Festplatten & SSDs: Tipps zum Umgang unter Linux

5. Zugriffsrechte im Dateisystem setzen

Per mount oder fstab eingehängte Dateisysteme gehören dem Benutzer „root“.
Vergrößern Per mount oder fstab eingehängte Dateisysteme gehören dem Benutzer „root“.

Bei neu in das Dateisystem eingebundenen Ext4-, XFS-oder BTRFS-Partitionen hat nur der Benutzer „root“ Schreibzugriff, andere Benutzer erhalten nur Lesezugriff. Wenn Sie der einzige Benutzer des Systems sind, können Sie es sich einfach machen. Mit der Befehlszeile

sudo chmod -R 777 /mnt/Data

setzen Sie maximale Zugriffsrechte. Alle neuen Dateien und Ordner gehören dem Benutzer, der sie erstellt hat.

Bei Mehrbenutzersystemen ist die Rechtevergabe komplizierter. Hier steuern Sie den Zugriff über die Gruppenzugehörigkeit und Access Control Lists (ACL). Das dafür nötige Tool setfacl ist unter Ubuntu 16.04.x und Linux Mint 19.x standardmäßig installiert. Führen Sie im Terminalfenster folgende fünf Befehlszeilen aus:

sudo mkdir /mnt/Data/Projekte
sudo chgrp plugdev /mnt/Data/Projekte
sudo chmod g+rwx /mnt/Data/Projekte
sudo chmod g+s /mnt/Data/Projekte
sudo setfacl -R -dm u::rwx,g:plugdev:rwx,o::rx /mnt/Data/Projekte

Diese Befehlszeilen erstellen das Verzeichnis „/mnt/Data/Projekte“ für den Datenaustausch. Es gehört der Gruppe „plugdev“, die Vollzugriff erhält. „chmod g+s“ bewirkt, dass die Gruppe erhalten bleibt, wenn ein Benutzer neue Dateien oder Ordner anlegt. Mit „setfacl“ setzen Sie die Standard-Zugriffsrechte, die auf alle enthaltenen und zukünftigen Elemente vererbt werden. Im Ergebnis erhalten alle Mitglieder der Gruppe „plugdev“ Lese-und Schreibzugriff. Zur dieser Gruppe gehören unter Ubuntu/Mint standardmäßig alle Benutzer.

6. Dateisystem schnell und einfach erweitern

In der Datei „/etc/fstab“ konfigurierte Partitionen bindet Linux beim Start automatisch ein.
Vergrößern In der Datei „/etc/fstab“ konfigurierte Partitionen bindet Linux beim Start automatisch ein.

Der Verzeichnisbaum sieht auf allen verbreiteten Linux-Systemen gleich aus. Unter „/usr/bin“ finden Sie die meisten Anwendungen, in „/var“ liegen Dateien von Webservern und Datenbanken und die Benutzerprofile sind in „/home“ untergebracht. Auf welchen Festplatten beziehungsweise Partitionen die Verzeichnisse liegen, spielt keine Rolle. Sollte einmal der Platz knapp werden, etwa auf einer kleinen SSD, können Sie einzelne Ordner schnell auf eine zweite Festplatte mit mehr Kapazität verlagern.

Wir gehen davon aus, dass Sie eine zweite Festplatte unter „/mnt/data“ eingebunden haben, wie in Punkt 4 beschrieben. Melden Sie sich beim System ab, damit keine Dateien im Homeverzeichnis geöffnet sind. Wechseln Sie mit der Tastenkombination Strg-Alt-F1 zu einer virtuellen Konsole und melden Sie sich dort an. Kopieren Sie die Home-Verzeichnisse auf das andere Laufwerk und benennen Sie das bisherige Verzeichnis um:

sudo rsync -av /home/ /mnt/data/home
mv /home /home.bak

Beachten Sie beim rsync-Befehl den abschließenden Slash hinter „/home/“.

Möglichkeit 1: Sie können den Ordner per Symlink (symbolische Verknüpfung) einbinden:

sudo ln -s /mnt/data/home /home

Danach greifen Sie über den Symlink „/home“ auf den Inhalt von „/mnt/data/home“ zu. Beim Ordner „/home“ sind dabei keine Einschränkungen zu erwarten. Es gibt jedoch Zugriffsprobleme bei Samba-Netzwerkfreigaben, wenn Ordner Symlinks enthalten.

Die nachfolgende, alternative Methode kennt diese Einschränkung nicht.

Möglichkeit 2: Erstellen Sie mit diesen zwei Befehlen den Ordner „/home“ und hängen Sie das gewünschte Verzeichnis ein:

sudo mkdir /home
sudo mount -o bind /mnt/data/home /home

Damit Linux den Ordner beim Systemstart automatisch einbindet, tragen Sie über

sudo nano /etc/fstab

diese Zeile in die fstab ein:

/mnt/data/home /home none bind 0 0

Mit Strg-Alt-F7 kehren Sie nun zur grafischen Oberfläche zurück und melden sich an. Ihr Home-Verzeichnis finden Sie so vor, wie Sie es verlassen haben – nur mit mehr Platz.

Bei anderen Verzeichnissen gehen Sie entsprechend vor. Sie müssen nur dafür sorgen, dass gerade keine Dateien geöffnet sind. Am sichersten ist es, die Maßnahme in einem Livesystem durchzuführen, etwa in Linux Mint .

Einzelne Dateien mounten

Der mount-Befehl lässt sich nicht nur für Partitionen auf Festplatten nutzen. Sie können auch Dateien einbinden, die eines der unterstützten Dateisysteme enthalten. Ein Beispiel dafür sind CD/DVD-Abbilder. Eine ISO-Datei enthält ein ISO9660-Dateisystem und lässt sich mit

sudo mount -o loop Datei.iso /mnt/iso

einbinden. Das ISO-Dateisystem ist nur lesbar. Sie können daher in „/mnt/iso“ nichts ändern.

Eine weitere Anwendung sind Containerdateien. Erstellen Sie eine Datei mit einem GB Größe und formatieren Sie diese mit dem Ext4-Dateisystem:

dd if=/dev/zero of=~/Ext4.img bs=1M count=1024
mkfs.ext4 ~/Ext4.img
sudo mkdir /mnt/file
sudo mount -o loop ~/Ext4.img /mnt/file

Der Inhalt der Datei steht nun unter „/mnt/file“ bereit und lässt sich wie jedes andere eingehängte Dateisystem verwenden.

Die Themen in Tech-up Weekly #154:

Gruß von Takis von der Microsoft-Messe “Build 2019” in Seattle (0:20)

► Radeon RX 3080 XT soll wohl zur E3 vorgestellt werden (01:31): www.pcwelt.de/news/Radeon-RX-3080-XT-soll-wohl-zur-E3-vorgestellt-werden-10588934.
html

► Das Ur-Minecraft gibt es nun kostenlos im Browser (03:05): www.pcwelt.de/news/Das-Ur-Minecraft-gibt-es-nun-kostenlos-im-Browser-10588207.html

Quick-News (04:18):

► Google arbeitet an faltbaren Smartphones: www.pcwelt.de/news/Google-arbeitet-an-faltbaren-Smartphones-10588270.html

► Frontier: AMD und Cray bauen weltweit schnellsten Supercomputer: www.pcwelt.de/news/Frontier-AMD-und-Cray-bauen-weltweit-schnellsten-Supercomputer-10588357.html

► Polizei-Auto für 3,4 Mio Dollar mit 791 PS: www.pcwelt.de/news/Polizei-Auto-fuer-3-4-Mio-Dollar-mit-791-PS-385-km-h-und-Big-Brother-inklusive-10588186.html

► Streik beim League-of-Legends-Entwickler: www.pcwelt.de/news/Sexuelle-Belaestigung-Streik-beim-League-of-Legends-Entwickler-10588098.html

► US-Luftwaffe schießt Raketen mit Laser ab: www.pcwelt.de/news/US-Luftwaffe-schiesst-Raketen-mit-Laser-ab-10586828.html

► Deutsche Telekom beschleunigt 960.000 Anschlüsse: www.macwelt.de/news/Deutsche-Telekom-beschleunigt-960.000-Anschluesse-10587317.html

Kommentar der Woche (07:13):

► Smartphone-Kamera Vergleich 2019: P30 Pro vs Galaxy S10+ vs iPhone XS Max: www.youtube.com/watch?v=yCJXWOTPJp8

Fail der Woche (08:00): Mega-Fail in Game of Thrones

► Unterstützt uns, werdet Kanalmitglied und erhaltet exklusive Vorteile (jederzeit kündbar):
www.youtube.com/pcwelt/join

► Zum PC-WELT T-Shirt-Shop:
www.pcwelt.de/fan

2428373