Das Wurzelverzeichnis / ist der oberste Knoten des Linux-Dateisystems — alles, was ein Programm sehen kann, hängt direkt oder über Unterordner darunter. Anders als unter Windows gibt es keine Laufwerksbuchstaben: externe Festplatten, USB-Sticks, Netzwerk-Shares und Pseudo-Filesysteme werden alle in einen einzigen Baum eingehängt. Welche Verzeichnisse direkt unter / liegen, schreibt der Filesystem Hierarchy Standard (FHS) vor — eigene Dateien haben dort nichts verloren.

Single-Tree-Filesystem: ein Baum für alles

Linux folgt dem Unix-Modell „everything is a file, in one tree". Das bedeutet:

  • Es gibt genau eine Wurzel/. Alles andere ist Unterordner davon.
  • Externe Speicher (USB-Sticks, Netzwerklaufwerke, virtuelle Geräte) werden in diesen Baum eingehängt (Mount), nicht nebeneinander gestellt.
  • Auch Pseudo-Filesysteme wie /proc (Kernel-Status) und /sys (Hardware) sind Teile dieses Baums — sie sehen wie normale Verzeichnisse aus, sind aber in Wahrheit vom Kernel synthetisiert.

Vergleich zu Windows:

KonzeptWindowsLinux
Mehrere DisksC:\, D:\, E:\ als separate RootsAlle Disks gemountet unter /, z. B. /, /mnt/data, /home
USB-Stick eingestecktNeuer Drive-Letter (E:\)Mountpoint anlegen oder Auto-Mount unter /run/media/<user>/<label>
Netzwerk-Laufwerk\\server\share oder Z:\Mounten unter /mnt/share oder /srv/share
Pfad-TrennerBackslash \Forward-Slash /

Der Vorteil des Single-Tree-Modells: Programme müssen sich nicht um Laufwerksbuchstaben kümmern. Pfade sind unabhängig davon, ob die Daten lokal oder über NFS, oder von einem USB-Stick kommen — sie wirken einfach als Teil des Baums.

Was steckt direkt unter / ?

Der Filesystem Hierarchy Standard (FHS) schreibt fest, welche Verzeichnisse direkt unter der Wurzel liegen sollen. Eigene Verzeichnisse oder Dateien haben dort grundsätzlich nichts zu suchen — alles, was du selbst anlegst, gehört in /home, /opt, /srv oder /usr/local.

PfadZweckPflicht laut FHS?
/binEssenzielle Benutzer-Binaries (heute Symlink auf /usr/bin)Ja
/bootBootloader, Kernel, initramfsEmpfohlen
/devDevice-Nodes (Hardware als Datei)Ja
/etcSystemweite KonfigurationJa
/homeHeimat-Verzeichnisse der BenutzerEmpfohlen
/libEssenzielle Bibliotheken (heute Symlink auf /usr/lib)Ja
/mediaWechseldatenträger (Auto-Mount-Punkte)Empfohlen
/mntManuell gemountete temporäre FilesystemeEmpfohlen
/optAdd-on-Software (Drittanbieter, Hersteller-Pakete)Empfohlen
/procKernel- und Prozess-Information (Pseudo-FS)Empfohlen
/rootHeimat-Verzeichnis des SuperusersEmpfohlen
/runLaufzeit-Daten (PID-Files, Sockets)Empfohlen
/sbinSystem-Binaries für Administratoren (heute Symlink auf /usr/sbin)Ja
/srvVom Server bereitgestellte Daten (Web, FTP)Empfohlen
/sysKernel-Objekte und Hardware (Pseudo-FS)Empfohlen
/tmpTemporäre DateienJa
/usrHauptmasse aller Programme und BibliothekenJa
/varVariable Daten (Logs, Caches, Datenbanken)Ja
Bash Top-Level inspizieren
ls -la /
# drwxr-xr-x  19 root root   4096 ...  .
# drwxr-xr-x  19 root root   4096 ...  ..
# lrwxrwxrwx   1 root root      7 ...  bin -> usr/bin
# drwxr-xr-x   4 root root   4096 ...  boot
# drwxr-xr-x  19 root root   3760 ...  dev
# drwxr-xr-x 162 root root  12288 ...  etc
# drwxr-xr-x   4 root root   4096 ...  home
# lrwxrwxrwx   1 root root      7 ...  lib -> usr/lib
# ...

# Die Symlinks (bin, lib, sbin → usr/...) sind das Ergebnis
# des Usr-Merge — siehe Artikel zu /bin oder /usr.

Mount-Punkte: andere Filesysteme einhängen

Der Schlüssel zum Single-Tree-Konzept sind Mount-Punkte: jedes Verzeichnis im Baum kann als Anker für ein anderes Filesystem dienen. Beim Mount „verschwinden" die ursprünglichen Inhalte des Verzeichnisses (sie sind verdeckt) und werden durch das gemountete FS ersetzt — bis zum Unmount.

Bash Aktive Mounts auflisten
mount | head -10
# /dev/nvme0n1p2 on / type ext4 (rw,relatime)
# tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=4G)
# proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
# sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
# /dev/nvme0n1p3 on /home type ext4 (rw,relatime)
# ...

# Übersichtlicher mit findmnt
findmnt
# TARGET                 SOURCE         FSTYPE  OPTIONS
# /                      /dev/nvme0n1p2 ext4    rw,relatime
# ├─/proc                proc           proc    rw,nosuid,nodev,noexec
# ├─/sys                 sysfs          sysfs   rw,nosuid,nodev,noexec
# ├─/dev                 devtmpfs       devtmpfs rw,nosuid
# ├─/run                 tmpfs          tmpfs   rw,nosuid,nodev
# ├─/tmp                 tmpfs          tmpfs   rw,nosuid,nodev,size=4G
# ├─/home                /dev/nvme0n1p3 ext4    rw,relatime
# └─/boot/efi            /dev/nvme0n1p1 vfat    rw

findmnt zeigt die Hierarchie sauber als Baum. Auf einem typischen Desktop-System sind 15–25 Filesysteme gemountet — die meisten davon Pseudo-FS (proc, sysfs, tmpfs, cgroup, debugfs).

Mount-Punkte werden auf zwei Wegen dauerhaft konfiguriert:

  1. /etc/fstab: klassische Datei mit einer Zeile pro Mount, beim Boot ausgewertet.
  2. systemd .mount-Units: moderner Weg, vor allem für Auto-Mount und Abhängigkeiten.

Wer darf was im Wurzelverzeichnis?

/ selbst gehört root und hat Mode 0755 (drwxr-xr-x):

  • Nur root darf direkt unter / Verzeichnisse oder Dateien anlegen.
  • Alle anderen User dürfen lesen und durchsuchen — sie können also cd /home ausführen, aber nicht mkdir /meinfoo.

Diese Beschränkung ist gewollt: sie verhindert, dass User aus Versehen oder mit Absicht das System mit eigenen Top-Level-Verzeichnissen durcheinanderbringen.

Bash Berechtigungen des Wurzelverzeichnisses
ls -ld /
# drwxr-xr-x 19 root root 4096 ... /

# Versuch ohne sudo — schlägt fehl
mkdir /test
# mkdir: cannot create directory '/test': Permission denied

# Mit sudo geht es
sudo mkdir /test
sudo rmdir /test

Wenn dir Programme oder Skripte vorschlagen, etwas direkt unter / anzulegen (/myapp, /data), ist das fast immer ein FHS-Verstoß. Korrekte Pfade wären:

  • Eigene Software/Vendor-Pakete: /opt/myapp/
  • Daten für Server: /srv/myapp/ oder /var/lib/myapp/
  • Self-Compiled-Tools: /usr/local/bin/myapp
  • Container-Volume-Mounts: /mnt/data/ oder /srv/data/

Disk-Belegung im Blick

Das Wurzelfilesystem ist auf vielen Setups die Partition, die am ehesten volläuft — vor allem auf Systemen ohne separate /var- oder /home-Partition.

Bash Wo ist der Platz hin?
# Gesamtbelegung der Wurzelpartition
df -h /
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/nvme0n1p2  120G   72G   42G  64% /

# Welche Top-Level-Verzeichnisse sind groß?
sudo du -sh /* 2>/dev/null | sort -hr | head -10
# 14G   /var
# 8.2G  /usr
# 4.5G  /opt
# 3.1G  /home
# ...

# Pseudo-FS ausschließen für realistische Sicht
sudo du -shx /* 2>/dev/null | sort -hr | head -10

du -x (--one-file-system) sorgt dafür, dass du nicht in andere gemountete Filesysteme absteigt — sonst werden /proc, /sys, externe Disks unter /mnt mitgezählt, was die Sicht verfälscht.

Bash Visuell mit ncdu navigieren
# Interaktiver Disk-Usage-Browser
sudo ncdu /
# Pfeil-Tasten zum Navigieren, 'd' zum Löschen

chroot: ein anderes Wurzelverzeichnis vortäuschen

Eine besondere Eigenschaft von Linux: für jeden Prozess lässt sich das Wurzelverzeichnis künstlich verschieben. Das passiert per chroot()-Systemcall — der Prozess (und alle seine Kinder) sieht ab dem Zeitpunkt nur noch den gewählten Unterbaum als seine Wurzel.

Klassische Anwendungen:

  • System-Reparatur vom Live-System: das defekte Root-Filesystem unter /mnt mounten, dann sudo chroot /mnt /bin/bash und in der gechrooteten Shell Pakete reinstallieren.
  • Bauen von Distributionen oder minimalen Container-Filesystemen.
  • Sandboxing unsicherer Services (heute weitgehend von Containern und systemd-Sandboxing abgelöst).
Bash chroot in Aktion (Beispiel: Recovery-Lauf)
# Defekte Disk unter /mnt mounten
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot

# Pseudo-Filesysteme einhängen (wichtig für apt, dpkg)
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

# In das gechrootete System wechseln
sudo chroot /mnt /bin/bash

# Innerhalb: das System sieht /mnt jetzt als /
ls /
# bin boot dev etc home lib opt proc root sys tmp usr var

# Reparieren, dann beenden mit exit oder Ctrl-D

chroot allein ist kein Sicherheits-Container — Prozesse mit root-Rechten können auch aus einem chroot ausbrechen. Für echte Isolation gibt es Container (Docker, Podman, LXC) oder systemd-Namespaces.

Interessantes

Das Wurzelverzeichnis ist nie wirklich Datei #0

Auch wenn / der oberste sichtbare Knoten ist — physikalisch ist es einfach das Root-Inode des gemounteten Filesystems. Bei df / siehst du, welche Partition aktuell als / dient. Auf einem Live-System (USB-Boot) ist das oft tmpfs oder ein Loop-Device.

Mount-Punkte verbergen den ursprünglichen Inhalt

Wenn du etwas in /mnt/wichtig ablegst und dann mount /dev/sdc1 /mnt/wichtig aufrufst, ist der vorher abgelegte Inhalt weg — er ist nur verdeckt, nicht gelöscht. Beim Unmount kommt er zurück. Klassische Falle: /var mit eigener Partition mounten, ohne vorher die Inhalte zu migrieren.

Es gibt einen Unterschied zwischen / und /root

/ ist die Wurzel des Dateisystems. /root ist das Heimat-Verzeichnis des Superusers. Verwirrend ähnlich, völlig unterschiedlich. Beim Tippen vorsichtig sein: cd / führt zur Wurzel, cd /root (mit sudo) ins Root-Home.

Subvolumes auf Btrfs / ZFS sind kein Mount im klassischen Sinn

Btrfs und ZFS erlauben Subvolumes — logische Unterteilungen innerhalb eines Pools, die nicht separat gemountet werden müssen. Trotzdem können sie quasi wie Mount-Punkte wirken. findmnt zeigt sie deshalb mit Filesystem=btrfs (gleicher Pool) bei verschiedenen Subvolume-Namen.

Container haben ihren eigenen / per Namespace

Ein Docker- oder Podman-Container sieht ein anderes /, das aus dem Container-Image stammt. Hostpfade sind nicht sichtbar — außer per Volume-Mount. Technisch passiert das via mount-Namespace und pivot_root (verwandt mit chroot, aber sauberer und sicherer).

`rm -rf /` ist auf modernen Systemen blockiert

GNU coreutils ab 8.10 weigern sich, / rekursiv zu löschen, ohne --no-preserve-root zu setzen. Aber Vorsicht: rm -rf /* (mit Glob) trifft die Variante nicht, ebensowenig cd / && rm -rf . und einige andere Tricks. Im Zweifel zweimal prüfen, was gelöscht wird, und nie blindes sudo rm -rf mit Variablen-Pfaden.

Weiterführende Ressourcen

Externe Quellen

/ Weiter

Zurück zu Verzeichnisstruktur

Zur Übersicht