Das Linux-Dateisystem — Verzeichnisbaum, Partitionen und Mount

Einsteiger Grundlagen Veröffentlicht am 25. März 2026 (Aktualisiert: 12. April 2026) von Gunter Herdrich

Das Linux-Dateisystem ist kein Chaos — es folgt einem klaren Prinzip: Alles hängt an einem einzigen Baum, der bei / beginnt. Wenn du verstehst, was wo liegt und warum, navigierst du sicher durch jede Distribution. Dieser Artikel erklärt den Verzeichnisbaum, aktuelle Dateisysteme, Partitionen und das Mounten — alles was du als Einsteiger wirklich brauchst.

Der Verzeichnisbaum: Was liegt wo?

Linux kennt keine Laufwerksbuchstaben wie C: oder D:. Stattdessen gibt es genau einen Baum, der bei / (Wurzel, englisch: root) anfängt. Alle Festplatten, USB-Sticks und Netzlaufwerke werden als Äste dieses Baums eingehängt. Das Filesystem Hierarchy Standard (FHS) legt fest, welches Verzeichnis welchen Zweck hat — distributionsübergreifend. Ein Ubuntu-System und ein Fedora-System haben dieselbe Grundstruktur, auch wenn einzelne Distributionen kleine Abweichungen haben.

Die wichtigsten Verzeichnisse im Überblick

  • / (Root): Der Stamm. Alles beginnt hier. Nur root darf hier direkt schreiben.
  • /home: Persönliche Verzeichnisse der Benutzer. Dein Heimverzeichnis ist /home/gunter — dort liegen Dokumente, Downloads, Konfigurationsdateien. Die Tilde ~ ist eine Kurzform dafür.
  • /etc: Systemkonfiguration als Textdateien. /etc/fstab (Partitionstabelle), /etc/hostname, /etc/apt/sources.list — wer konfiguriert, landet hier.
  • /var: Variable Daten, die sich laufend ändern: Logdateien in /var/log, E-Mail-Warteschlangen, Paket-Caches. Kann auf Servern schnell voll werden.
  • /usr: Programme und Bibliotheken für alle Benutzer. /usr/bin enthält die meisten Befehle wie ls, grep, bash. Früher auf eigener Partition, heute meist zusammen mit /.
  • /tmp: Temporäre Dateien. Wird nach jedem Neustart geleert (oder per systemd-tmpfiles nach einer bestimmten Zeit). Nie für wichtige Daten nutzen.
  • /boot: Kernel, Initramfs und Bootloader-Dateien (GRUB). Typisch 500 MB bis 1 GB groß. Bei verschlüsseltem Root-Verzeichnis oft separate Partition.
  • /dev: Gerätedateien. /dev/sda ist deine erste Festplatte, /dev/sda1 ihre erste Partition. USB-Sticks erscheinen hier als /dev/sdb und so weiter.
  • /proc: Kein echtes Dateisystem auf Disk — der Kernel stellt hier Laufzeitinformationen bereit. /proc/cpuinfo zeigt Prozessordaten, /proc/meminfo den RAM-Status. Schreibzugriffe ändern Kernel-Parameter.
  • /sys: Ähnlich wie /proc, aber für Hardware-Informationen zuständig. Hier findest du Geräteparameter, Treiberstatus und Power-Management-Einstellungen — alles als les- und teils schreibbare Dateien.
Tipp: Mit ls / siehst du alle Verzeichnisse der obersten Ebene auf einen Blick. Mit man hier öffnest du die vollständige Dokumentation des Dateisystembaums — direkt im Terminal.

Das Unix-Prinzip: Alles ist eine Datei

In Linux ist nahezu alles als Datei modelliert. Das klingt abstrakt, ist aber eines der mächtigsten Konzepte des Systems: Einheitliche Werkzeuge funktionieren für verschiedenste Ressourcen, ohne dass du für jede Geräteklasse ein eigenes Programm brauchst.

Konkret bedeutet das:

  • Reguläre Dateien: Texte, Bilder, Programme — das Offensichtliche.
  • Verzeichnisse: Technisch eine spezielle Datei, die Namen und Inodes anderer Dateien listet. Ein Inode speichert Metadaten wie Eigentümer, Berechtigungen und Zeitstempel.
  • Gerätedateien: /dev/sda repräsentiert deine Festplatte. Mit dd if=/dev/sda of=backup.img kannst du sie 1:1 kopieren — wie eine Datei lesen.
  • Sockets und Pipes: Kommunikationskanäle zwischen Prozessen, ebenfalls als Datei-Einträge im Dateisystem.
  • Pseudo-Dateisysteme: /proc und /sys liegen nicht auf Disk, verhalten sich aber wie Verzeichnisse mit lesbaren Dateien.

Der praktische Nutzen: Befehle wie cat, grep oder echo funktionieren auf regulären Dateien genauso wie auf Gerätedateien oder Kernel-Interfaces. Du brauchst kein spezielles Tool für jeden Ressourcentyp — das spart Lernaufwand und macht Shell-Scripting besonders mächtig.

# Prozessor-Informationen lesen — wie eine normale Textdatei
cat /proc/cpuinfo | grep "model name" | head -1

# Ausgabe (Beispiel):
model name	: Intel(R) Core(TM) i5-1135G7 @ 2.40GHz

# RAM-Belegung anzeigen
cat /proc/meminfo | grep -E "MemTotal|MemAvailable"

# Ausgabe (Beispiel):
MemTotal:       16186188 kB
MemAvailable:   10234512 kB

Dateisysteme: ext4, Btrfs und XFS

Ein Dateisystem ist die Methode, mit der Daten auf einer Partition organisiert werden — es legt fest, wie Blöcke auf Disk adressiert, wie Metadaten gespeichert und wie Fehler behandelt werden. Für Linux-Desktop gibt es drei relevante Optionen.

ext4 — der bewährte Standard

ext4 ist seit 2008 der Standard bei Ubuntu, Debian und den meisten Distributionen. Es ist erprobt, schnell und stabil. Ich habe seit 2003 diverse Dateisysteme ausprobiert — ext3, ReiserFS, kurz XFS — und lande immer wieder bei ext4. Nicht weil es das modernste ist, sondern weil es einfach funktioniert. Langweilig, aber zuverlässig. Journaling schützt vor Datenverlust bei unerwarteten Abstürzen: Alle Schreiboperationen werden erst im Journal protokolliert, bevor sie auf Disk landen. Maximale Dateigröße: 16 TiB, maximale Partitionsgröße: 1 EB. Für einen Desktop-PC die sichere Wahl — besonders wenn du ext4 nicht aktiv wechseln willst.

Auf einem neu installierten Ubuntu-System kannst du das Dateisystem einer Partition direkt abfragen:

# Dateisystem einer Partition anzeigen
lsblk -f /dev/sda3

# Ausgabe (Beispiel):
NAME   FSTYPE FSVER LABEL UUID                                 MOUNTPOINTS
sda3   ext4   1.0         f0e9d8c7-b6a5-4321-fedc-ba0987654321 /

Btrfs — modern mit Snapshots

Btrfs (B-Tree Filesystem) ist seit Fedora 33 (2020) Standard-Dateisystem und in openSUSE schon länger etabliert. Die Kernfunktionen:

  • Copy-on-Write (CoW): Schreiboperationen überschreiben keine Blöcke direkt — stattdessen wird eine neue Kopie angelegt. Das macht atomare Snapshots möglich.
  • Snapshots: Einen Systemzustand in Sekunden einfrieren, ohne doppelten Speicherbedarf (nur geänderte Blöcke werden gespeichert).
  • Integrierte RAID-Funktionen: Mehrere Platten ohne LVM kombinieren.
  • Transparente Kompression: Dateien werden automatisch komprimiert (zstd-Algorithmus), spart Platz ohne Konfigurationsaufwand.

Für Einsteiger mit Fedora oder openSUSE: Btrfs ist vorinstalliert und funktioniert out-of-the-box. Tools wie Timeshift nutzen Btrfs-Snapshots für System-Backups. Snapshots sind kein Ersatz für echte Backups — sie liegen auf derselben Festplatte wie die Daten. Festplatte kaputt, Snapshots weg. Trotzdem: Wer Fedora oder openSUSE nutzt, sollte Btrfs-Snapshots mitnehmen. Das hat mich schon zweimal vor einem kaputten System nach einem fehlgeschlagenen Update gerettet.

XFS — für große Datenmengen

XFS wird bei RHEL und Rocky Linux als Standard verwendet und ist für Server mit großen Dateien und hohem Durchsatz optimiert. Für Desktop-Nutzer weniger relevant, aber du begegnest ihm auf Servern oder NAS-Systemen. Wichtig: XFS-Partitionen lassen sich vergrößern, aber nicht verkleinern — das ist ein wesentlicher Unterschied zu ext4 und Btrfs.

NTFS und FAT32 — für USB-Sticks und Windows-Kompatibilität

USB-Sticks kommen oft mit FAT32 oder exFAT formatiert — beide funktionieren unter Linux ohne Probleme. NTFS (Windows-Standard) wird über den ntfs-3g-Treiber eingebunden, der in allen großen Distributionen vorinstalliert ist. Für externe Datenträger die du zwischen Linux und Windows teilst: exFAT ist heute die bessere Wahl (keine 4-GB-Dateigrößenbeschränkung wie bei FAT32).

Achtung: ext2, ext3 und ReiserFS sind veraltet und werden in modernen Distributionen nicht mehr verwendet. In Anleitungen aus dem Internet tauchen sie noch auf — ignoriere sie für Neuinstallationen.

Partitionen anzeigen und verstehen

Bevor du eine Partition änderst, musst du wissen was vorhanden ist. Dafür gibt es drei praktische Wege — alle zeigen dieselben Informationen, nur in unterschiedlicher Form.

lsblk — der schnellste Überblick

lsblk (list block devices) zeigt alle Blockgeräte in einer Baumstruktur. Kein root-Zugriff nötig. SATA-Festplatten erscheinen als sda, sdb etc., NVMe-SSDs als nvme0n1. Partitionen sind jeweils nummerierte Unterknoten.

lsblk

# Ausgabe (Beispiel):
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 476,9G  0 disk
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0     1G  0 part /boot
└─sda3   8:3    0 475,4G  0 part /
sdb      8:16   1  14,9G  0 disk
└─sdb1   8:17   1  14,9G  0 part /media/gunter/USB-STICK

Du siehst sofort: sda ist die Haupt-SSD mit drei Partitionen (EFI, Boot, Root), sdb ist ein eingesteckter USB-Stick. Die Spalte MOUNTPOINTS zeigt, wo die Partition im Verzeichnisbaum eingehängt ist.

fdisk und gdisk — Partitionen bearbeiten

fdisk arbeitet mit MBR- und GPT-Partitionstabellen, gdisk ist auf GPT spezialisiert (moderner Standard für UEFI-Systeme). Beide sind interaktive Kommandozeilen-Tools. Für Einsteiger: Änderungen nur mit Bedacht vornehmen — falsche Partitionierung löscht Daten unwiderruflich. Zum reinen Anschauen ist fdisk -l völlig sicher.

# Partitionstabelle einer Disk anzeigen (nur lesen, keine Änderung)
sudo fdisk -l /dev/sda

# Ausgabe (Beispiel):
Disk /dev/sda: 476,9 GiB, 512110190592 bytes, 1000215216 sectors
Disk model: Samsung SSD 870
...
Device       Start        End   Sectors   Size Type
/dev/sda1     2048    1050623   1048576   512M EFI System
/dev/sda2  1050624    3147775   2097152     1G Linux filesystem
/dev/sda3  3147776 1000215182 997067407 475,4G Linux filesystem

GNOME Disks — grafisch

Wer lieber klickt: GNOME Disks (Paketname: gnome-disk-utility) zeigt alle Laufwerke und Partitionen grafisch, erlaubt Formatierung, S.M.A.R.T.-Tests und das Bearbeiten von fstab-Einträgen — ohne Terminal. Es ist auf Ubuntu und den meisten GNOME-basierten Distributionen vorinstalliert.

Mounten: Partitionen einhängen

Mounten bedeutet, ein Dateisystem an einen Punkt im Verzeichnisbaum zu hängen. Erst nach dem Mounten ist der Inhalt zugänglich. Bei modernen Distributionen passiert das automatisch beim Start — aber manuelles Mounten ist oft nötig, zum Beispiel für USB-Sticks ohne Automount oder zweite Festplatten.

mount und umount

# Mountpunkt anlegen (einmalig)
sudo mkdir -p /mnt/usb

# USB-Stick manuell einhängen
sudo mount /dev/sdb1 /mnt/usb

# Inhalt prüfen
ls /mnt/usb

# Aushängen — immer bevor du den Stick abziehst!
sudo umount /mnt/usb
Achtung: Nie einen Stick abziehen ohne vorheriges umount — sonst droht Datenverlust. Wenn umount mit „device is busy“ scheitert, hat noch ein Prozess die Partition geöffnet. lsof +D /mnt/usb zeigt welcher.

Mit der Option -t kannst du das Dateisystem angeben, falls Linux es nicht automatisch erkennt. Die Option -o setzt Mount-Optionen:

# NTFS-Stick explizit einbinden
sudo mount -t ntfs-3g /dev/sdb1 /mnt/usb

# Nur-Lesen mounten (schreibgeschützt)
sudo mount -o ro /dev/sdb1 /mnt/usb

# Alle aktuell eingehängten Dateisysteme anzeigen
mount | grep "^/dev"

/etc/fstab — automatisches Mounten beim Start

/etc/fstab (filesystem table) steuert, welche Partitionen beim Systemstart automatisch eingehängt werden. Jede Zeile entspricht einer Partition oder einem Netzlaufwerk.

cat /etc/fstab

# Typischer Aufbau:
# <Gerät>                                <Mountpunkt>  <Typ>  <Optionen>  <dump>  <pass>
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890  /             ext4   defaults      0       1
UUID=f0e9d8c7-b6a5-4321-fedc-ba0987654321  /boot         ext4   defaults      0       2
UUID=1234abcd-5678-ef90-1234-abcdef567890  /boot/efi     vfat   umask=0077    0       1

Die sechs Felder bedeuten:

  1. Gerät: UUID, Label oder Gerätename (/dev/sda1)
  2. Mountpunkt: Wo die Partition im Baum hängt
  3. Dateisystemtyp: ext4, btrfs, vfat, ntfs-3g, …
  4. Optionen: defaults für Standardoptionen, ro für schreibgeschützt, noauto für kein automatisches Mounten
  5. dump: Fast immer 0 (Backup-Tool-Relikt)
  6. pass: Reihenfolge der Filesystem-Prüfung beim Start (0 = keine, 1 = root, 2 = andere)

UUID statt Gerätename — warum das wichtig ist

Ein Gerätename wie /dev/sdb kann sich nach einem Neustart ändern — besonders wenn mehrere USB-Geräte angeschlossen sind. Ich habe das auf die harte Tour gelernt: Backup-Script lief auf /dev/sdb1, nach einem Neustart war das plötzlich die falsche Platte. UUIDs (Universally Unique Identifiers) bleiben dauerhaft an eine Partition gebunden, unabhängig davon, an welchem Port ein Gerät hängt.

# UUIDs aller Partitionen anzeigen
lsblk -f

# Ausgabe (Beispiel):
NAME   FSTYPE FSVER LABEL       UUID                                 MOUNTPOINTS
sda
├─sda1 vfat   FAT32 EFI         A1B2-C3D4                            /boot/efi
├─sda2 ext4   1.0               a1b2c3d4-e5f6-7890-abcd-ef1234567890 /boot
└─sda3 ext4   1.0               f0e9d8c7-b6a5-4321-fedc-ba0987654321 /

# Alternativ: blkid zeigt UUIDs und Typen aller Partitionen
sudo blkid
Tipp: Wenn du eine zweite Festplatte dauerhaft einbinden willst, trag sie mit ihrer UUID in /etc/fstab ein. Backup vor jeder Änderung: sudo cp /etc/fstab /etc/fstab.bak. Ein Fehler in fstab kann den Boot-Prozess unterbrechen — dann hilft der Recovery-Modus der Distribution.

USB-Stick automatisch mounten

Moderne Desktop-Umgebungen (GNOME, KDE, XFCE) mounten USB-Sticks automatisch über udisks2. Der Mountpunkt ist dann /media/BENUTZERNAME/LABEL. Falls du das manuell in fstab einträgst, verwende die Option noauto,user — dann kann auch ein normaler Benutzer ohne sudo mounten.

Speicherplatz prüfen: df, du und ncdu

Volle Festplatte, kein Platz mehr — das passiert. Diese drei Befehle helfen dir, schnell den Überblick zu behalten und den Verursacher zu finden.

df -h — Belegung aller Partitionen

df (disk free) zeigt den freien Speicher pro eingehängter Partition. Das -h steht für human-readable: Gigabyte statt Byte. Besonders wichtig: df zeigt die Belegung auf Partition-Ebene, nicht auf Verzeichnis-Ebene — du macht das.

df -h

# Ausgabe (Beispiel):
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       475G  128G  323G  29% /
tmpfs           7,7G  1,2M  7,7G   1% /run
/dev/sda2       974M  287M  620M  32% /boot
/dev/sda1       511M   30M  482M   6% /boot/efi
/dev/sdb1        15G  4,3G   11G  29% /media/gunter/USB-STICK

Die Spalte Use% zeigt die Belegung. Bei über 90% solltest du aufräumen — volle Partitionen können zu Systeminstabilität führen. Die Zeilen mit tmpfs sind RAM-basierte Dateisysteme, die keinen Platz auf Disk belegen.

du -sh — Größe eines Verzeichnisses

du (disk usage) zeigt den tatsächlich belegten Platz eines Verzeichnisses. -s summiert (statt jede Datei einzeln), -h macht die Ausgabe lesbar. Mit --max-depth steuerst du wie tief du in den Baum schaust.

# Wie groß ist das Downloads-Verzeichnis?
du -sh ~/Downloads

# Ausgabe:
4,2G	/home/gunter/Downloads

# Die zehn größten Unterverzeichnisse in /var/log
du -sh /var/log/* | sort -rh | head -10

# Nur eine Ebene tief im Home-Verzeichnis
du -h --max-depth=1 ~

ncdu — interaktiver Speicherplatz-Browser

ncdu (NCurses Disk Usage) ist das mächtigste der drei Tools: Es zeigt den Verzeichnisbaum interaktiv, sortiert nach Größe, und du kannst navigieren wie in einem Dateimanager. Installation: sudo apt install ncdu (Ubuntu/Debian) oder sudo dnf install ncdu (Fedora).

# Aktuelles Verzeichnis scannen
ncdu

# Ganzes Dateisystem scannen (als root)
sudo ncdu /

Mit den Pfeiltasten navigierst du, mit Enter öffnest du Unterverzeichnisse, mit d löschst du direkt aus ncdu heraus. Für die Fehlersuche bei vollem Speicher ist ncdu deutlich effizienter als df und du kombiniert.

Tipp: Wenn /boot voll läuft (häufig nach vielen Kernel-Updates), zeigt df -h /boot das Problem. Alte Kernel entfernst du mit sudo apt autoremove (Ubuntu) — das löscht nicht mehr benötigte Kernel-Pakete automatisch.

Weiterlernen

Das Dateisystem ist das Fundament — aber erst in Kombination mit der Kommandozeile wird es praktisch nutzbar. Wenn du verstehen willst, wie du Dateien und Verzeichnisse mit Bash-Befehlen verwaltest, lies weiter in den Grundlagen-Tutorials: