Linux Ordnerstruktur erklärt: Der Wegweiser für Windows-Umsteiger

Linux Ordnerstruktur erklärt!

Die Linux Ordnerstruktur ist der Punkt, an dem die meisten Umsteiger kurz ins Straucheln kommen. Kein Laufwerk C:, kein „Programme“-Ordner, dafür kryptische Kürzel wie /usr, /etc und /var. Das wirkt beim ersten Blick willkürlich, folgt aber einer klaren Logik. Wer sie einmal verstanden hat, findet sich auf jedem Linux-System zurecht, egal ob Ubuntu, Fedora, Debian oder CachyOS.

In diesem Artikel gehe ich die wichtigsten Verzeichnisse durch, erkläre, wo deine eigenen Dateien hingehören, und zeige Schritt für Schritt, wie du eine zweite Festplatte dauerhaft einbindest. Am Ende werfe ich noch einen Blick auf moderne Alternativen zum klassischen Aufbau.

Ein Baum statt Laufwerksbuchstaben

Windows behandelt jedes Speichergerät als eigene Welt: C: für das System, D: für die zweite Platte, E: für den USB-Stick. Linux macht es andersherum. Es gibt genau einen Verzeichnisbaum, der bei / beginnt, dem sogenannten Root-Verzeichnis. Jede weitere Festplatte, jede Partition und jeder USB-Stick wird an einer beliebigen Stelle in diesen Baum eingehängt.

Diesen Vorgang nennt man mounten, die Stelle im Baum ist der Mountpoint. Deine zweite Festplatte liegt dann zum Beispiel unter /srv/medien und fühlt sich für jedes Programm an wie ein ganz normaler Ordner. Der Vorteil: Du entscheidest, wo Daten auftauchen. Du kannst dein Home-Verzeichnis auf eine SSD legen und deine Mediensammlung auf eine große HDD, ohne dass eine Anwendung davon etwas mitbekommt.

Drei weitere Unterschiede fallen Umsteigern schnell auf:

  • Pfade nutzen den normalen Schrägstrich, also /home/gordon/Dokumente statt C:\Users\Gordon\Dokumente.
  • Groß- und Kleinschreibung ist relevant. Notiz.txt und notiz.txt sind zwei verschiedene Dateien.
  • Ob eine Datei ausführbar ist, entscheidet nicht die Endung .exe, sondern ein Dateirecht.

Die Linux Ordnerstruktur im Überblick

Der Aufbau folgt dem Filesystem Hierarchy Standard, kurz FHS. Er sortiert nach zwei Fragen: Ändert sich der Inhalt im laufenden Betrieb, und gilt er nur für diesen einen Rechner? Daraus ergibt sich die gesamte Aufteilung.

VerzeichnisWofürWindows-Entsprechung
/Wurzel des gesamten Systemsungefähr C:\
/homePersönliche Dateien aller NutzerC:\Users
/rootPersönlicher Ordner des AdministratorsProfil von Administrator
/usrDas eigentliche Betriebssystem samt aller PaketeC:\Windows plus C:\Program Files
/usr/localSelbst kompilierte Softwaremanuell installierte Programme
/optFremdsoftware mit eigenem UnterordnerC:\Program Files\Hersteller
/etcSystemkonfiguration als TextdateienRegistry
/varAlles, was sich im Betrieb ändertC:\ProgramData
/tmpTemporäre Dateien, weg nach dem Neustart%TEMP%
/bootKernel und BootloaderEFI-Systempartition
/devGeräte als DateienGeräte-Manager
/proc, /sysLive-Blick in den KernelTask-Manager, aber als Dateien
/runLaufzeitdaten im Arbeitsspeicherkein direktes Gegenstück
/mnt, /mediaEinhängepunkte für weitere DatenträgerLaufwerksbuchstaben
/srvDaten, die der Rechner ausliefertC:\inetpub

/usr heißt nicht „user“

Das ist die häufigste Verwechslung. /usr steht für Unix System Resources und enthält alles, was dein Paketmanager installiert: Programme in /usr/bin, Bibliotheken in /usr/lib, Symbole und Handbücher in /usr/share. Auf modernen Distributionen sind /bin, /sbin und /lib nur noch Verweise dorthin. Auf Arch-basierten Systemen wie CachyOS zeigt sogar /usr/sbin auf /usr/bin.

Merke: Deine Daten liegen in /home, das System liegt in /usr.

/etc ist die Registry, nur besser

In /etc steht die Konfiguration deines Systems, und zwar ausschließlich als lesbare Textdateien. Netzwerkeinstellungen, Nutzerkonten, Paketquellen, alles editierbar mit jedem Texteditor. Ein Backup von /etc ist ein Backup deiner kompletten Systemkonfiguration, und du kannst den Ordner in ein Git-Repository legen, um Änderungen nachzuverfolgen. Bei der Registry ist das nicht so leicht.

/var sammelt alles Bewegliche

Logdateien in /var/log, Paketcaches in /var/cache, Anwendungsdaten in /var/lib. Wenn du Docker nutzt, liegen deine Images und Container standardmäßig in /var/lib/docker. Deshalb läuft /var gern voll, wenn du eine eigene Partition dafür vergeben hast und das Aufräumen vergisst.

/tmp und /run leben im RAM

Auf vielen Distributionen ist /tmp eine tmpfs, liegt also im Arbeitsspeicher und ist nach dem Neustart leer. Nichts dort ablegen, was du behalten willst. /var/tmp überlebt dagegen einen Reboot. /run enthält Laufzeitzustand wie Sockets und Prozess-IDs und wird bei jedem Start neu aufgebaut.

Wohin gehören deine eigenen Dateien?

Für den Alltag brauchst du nur eine Handvoll Orte. Diese Tabelle deckt fast alles ab:

WasWohin
Dokumente, Bilder, Musik~/Dokumente, ~/Bilder, ~/Musik
Eigene Skripte, nur für dich~/.local/bin
Eigene Skripte, für alle Nutzer/usr/local/bin
Selbst kompilierte Programme/usr/local
Docker-Compose-Stacks/opt/stacks oder /srv/docker
Daten deiner Serverdienste/srv/dienstname
Große Mediensammlungeneigener Mountpoint, etwa /srv/medien

Die Tilde ~ ist dabei die Abkürzung für dein Home-Verzeichnis, also /home/deinname.

Punktdateien und der XDG-Standard

Wenn du in deinem Home-Verzeichnis versteckte Dateien einblendest, mit Strg+H im Dateimanager, tauchen plötzlich Dutzende Ordner auf, die mit einem Punkt beginnen. Dort speichern Programme ihre Einstellungen. Vier davon solltest du kennen:

  • ~/.config für Konfigurationsdateien
  • ~/.local/share für Anwendungsdaten wie Profile oder Datenbanken
  • ~/.local/state für Zustand, etwa zuletzt geöffnete Dateien
  • ~/.cache für Wegwerfbares

Für dein Backup ist das direkt relevant: ~/.config und ~/.local/share gehören unbedingt gesichert, ~/.cache schließt du aus. Das spart je nach Nutzung zweistellige Gigabyte-Beträge.

Zweite Festplatte einbinden

Jetzt zum praktischen Teil. Eine neue Platte einzubinden dauert fünf Minuten, sobald du den Ablauf einmal kennst. Ich gehe hier von einer frischen, leeren Festplatte aus.

1. Platte identifizieren

lsblk -f

Der Befehl zeigt alle Geräte, Partitionen, Dateisysteme und UUIDs. Deine neue Platte erkennst du an der Größe und daran, dass sie noch keinen Mountpoint hat.

2. Partitionieren und formatieren

Grafisch geht das am bequemsten mit GParted. Auf der Kommandozeile nutzt du cfdisk /dev/sdb, legst eine Partition an und formatierst sie:

sudo mkfs.ext4 /dev/sdb1

Achte penibel auf den richtigen Gerätenamen. Ein Tippfehler formatiert die falsche Platte, und eine Rückfrage gibt es nicht.

3. Mountpoint anlegen

sudo mkdir -p /srv/medien

4. UUID auslesen

sudo blkid /dev/sdb1

Notiere dir die UUID. Sie bleibt an der Partition kleben, während Gerätenamen wie /dev/sdb1 sich beim nächsten Start verschieben können, sobald du weitere Hardware einbaust.

5. Eintrag in /etc/fstab

sudo nano /etc/fstab

Am Ende der Datei ergänzt du eine Zeile:

UUID=1f4b9c2e-7a30-4d5e-9c81-2b6f0a3d5e7c  /srv/medien  ext4  defaults,noatime,nofail  0 2

Die Spalten bedeuten: Gerät, Mountpoint, Dateisystem, Optionen, Dump-Flag, Reihenfolge der Dateisystemprüfung. Zwei Optionen sind wichtig. nofail sorgt dafür, dass der Rechner auch bootet, wenn die Platte mal fehlt oder defekt ist. Ohne diese Option landest du in einer Notfall-Konsole. noatime verhindert, dass bei jedem Lesezugriff ein Zeitstempel geschrieben wird, das schont SSDs.

6. Testen

sudo systemctl daemon-reload
sudo mount -a

Wenn keine Fehlermeldung kommt, hat der Eintrag gepasst. Teste das immer vor dem nächsten Neustart, ein Fehler in der fstab kann den Bootvorgang blockieren.

7. Rechte setzen

Frisch formatierte Platten gehören root. Damit du ohne sudo schreiben kannst:

sudo chown -R $USER:$USER /srv/medien

Netzwerkfreigaben und Btrfs

Für NAS-Freigaben brauchst du die Option _netdev, damit das System auf das Netzwerk wartet. Praktisch ist zusätzlich x-systemd.automount: Die Freigabe wird dann erst beim ersten Zugriff eingehängt, und ein abgeschaltetes NAS verzögert den Start nicht.

Nutzt du Btrfs, mountest du nicht Partitionen, sondern Subvolumes. Das ist die Grundlage für Snapshots einzelner Bereiche:

UUID=...  /home  btrfs  subvol=/@home,compress=zstd:3,noatime  0 0

Windows-Partition mitbenutzen

Bei einem Dual-Boot kannst du deine NTFS-Partition genauso einbinden, der aktuelle Kernel-Treiber ntfs3 beherrscht auch das Schreiben. Eine Bedingung gibt es: Schalte in Windows den Schnellstart ab. Sonst ist die Partition beim Herunterfahren nicht sauber ausgehängt, und Linux hängt sie nur lesend ein.

Alternative Konzepte

Der FHS stammt aus den Neunzigern, und es gibt inzwischen ernstzunehmende Gegenentwürfe.

Unveränderliche Systeme wie Fedora Silverblue, Bazzite, openSUSE MicroOS oder Vanilla OS setzen /usr schreibgeschützt und aktualisieren es am Stück als Image. Deine Daten in /home und /var bleiben davon unberührt. Geht ein Update schief, bootest du in die vorherige Version zurück. Für Einsteiger interessant, weil man das System praktisch nicht kaputt konfigurieren kann.

NixOS legt jedes Paket in einem eigenen, per Prüfsumme benannten Verzeichnis unter /nix/store ab. Die klassischen Pfade existieren nur noch als Verweise. Dafür laufen mehrere Versionen derselben Software parallel, und dein komplettes System steht in einer einzigen Konfigurationsdatei.

Flatpak und Snap umgehen die Hierarchie ganz. Sie bringen ihre eigenen Bibliotheken mit und legen alles in /var/lib/flatpak, ~/.local/share/flatpak beziehungsweise /snap ab. Deshalb funktionieren Flatpaks auf jeder Distribution gleich.

systemd-homed verwandelt Home-Verzeichnisse in verschlüsselte, portable Images. Der Nutzer wandert samt Daten auf einen anderen Rechner, indem du das Image kopierst.

Häufige Fragen

Wo ist bei Linux das Laufwerk C:? Es gibt keins. Alle Datenträger hängen an einer Stelle im Baum unterhalb von /. Deine Systempartition ist schlicht /.

Wo installiere ich Programme unter Linux? Gar nicht per Hand. Der Paketmanager deiner Distribution übernimmt das und legt alles an die richtige Stelle. Nur selbst kompilierte Software landet in /usr/local.

Was ist der Unterschied zwischen /mnt und /media? /mnt ist für manuelles, dauerhaftes Einhängen gedacht, /media für Wechselmedien. Steckst du einen USB-Stick ein, mounten die meisten Desktops ihn heute automatisch nach /run/media/deinname.

Darf ich Ordner unter / selbst anlegen? Technisch ja, üblich ist es nicht. Halte dich an /srv oder /opt, dann bleibt dein System für andere nachvollziehbar.

Kann ich mein Home-Verzeichnis nachträglich auf eine andere Platte verschieben? Ja. Neue Platte temporär einhängen, mit sudo rsync -aAXHv /home/ /mnt/neu/ kopieren, dann den fstab-Eintrag auf /home setzen und neu starten. Die alten Daten erst löschen, wenn der neue Mount nachweislich sitzt.

Fazit

Die Linux Ordnerstruktur wirkt nur so lange sperrig, bis man die Trennlinie erkennt: /usr gehört dem Paketmanager, /etc der Konfiguration, /var den laufenden Diensten und /home dir. Alles andere ergibt sich daraus. Für den Alltag reicht es, wenn du dein Home-Verzeichnis kennst und weißt, wie eine zweite Platte in die fstab kommt.

Wenn du das System dann noch mit Snapshots absicherst, kannst du beim Experimentieren wenig falsch machen. Und Experimentieren ist der schnellste Weg, sich diese Struktur wirklich einzuprägen.


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert