Jeder Linux-Nutzer kennt diesen einen Moment der Panik. Du versuchst, ein System-Update einzuspielen oder eine große Datei zu entpacken, und plötzlich spuckt das Terminal eine Fehlermeldung aus. "No space left on device". Das ist nervig. Es bremst den Workflow massiv aus. Oft passiert das genau dann, wenn man es am wenigsten gebrauchen kann. Die gute Nachricht ist, dass du kein Guru sein musst, um die Kontrolle über deine Partitionen zurückzugewinnen. Wer effektiv Linux Check Space On Disk verstehen will, muss lediglich die richtigen Werkzeuge im Werkzeugkasten haben und wissen, welche versteckten Verzeichnisse den Speicherplatz heimlich fressen. In diesem Text schauen wir uns an, wie du den Überblick behältst, warum die Standardanzeigen manchmal lügen und mit welchen Befehlen du die größten Platzfresser identifizierst.
Warum die Speicherplatzanalyse unter Linux oft missverstanden wird
Das Dateisystem unter Linux verhält sich anders als unter Windows oder macOS. Das liegt vor allem an der Art und Weise, wie Speicherplatz reserviert und verwaltet wird. Ein klassisches Beispiel sind die reservierten Blöcke für den Root-Nutzer. Standardmäßig reservieren viele Distributionen wie Debian oder Ubuntu bei der Erstellung eines ext4-Dateisystems etwa 5 % des Platzes für privilegierte Prozesse. Das dient als Puffer, damit das System selbst bei einer "vollen" Platte noch booten und Logs schreiben kann. Auf einer modernen 2-Terabyte-Platte sind das jedoch mal eben 100 Gigabyte, die dir als normalem Anwender scheinbar fehlen.
Ein weiteres Problem sind Inodes. Das ist ein Konzept, das viele Anfänger komplett ignorieren. Jede Datei benötigt einen Inode. Wenn du Millionen von winzigen Dateien hast, kann es passieren, dass dein Speicherplatz laut Anzeige noch halb leer ist, du aber trotzdem keine neuen Dateien erstellen kannst. Die Inodes sind schlicht aufgebraucht. Solche Details machen den Unterschied zwischen einem Systemadministrator, der weiß, was er tut, und jemandem, der planlos Dateien löscht.
Das Standardwerkzeug df und seine Tücken
Der Befehl df steht für "disk free". Er ist das erste, was fast jeder in die Konsole tippt. Mit dem Parameter -h wird die Ausgabe in menschenlesbare Formate wie Gigabyte oder Megabyte umgerechnet. Das ist praktisch. Aber df zeigt dir nur das große Ganze. Es sagt dir, dass /dev/sda1 zu 90 % belegt ist. Es verrät dir nicht, ob der Müll im /var/log-Verzeichnis liegt oder ob dein Docker-Container das System verstopft.
Häufige Verwirrung stiftet auch der Unterschied zwischen df und du. Wenn du eine Datei löschst, die aber noch von einem Prozess geöffnet ist, gibt das Betriebssystem den Platz nicht sofort frei. df zeigt dann weiterhin einen hohen Füllstand an, während du die Datei gar nicht mehr sieht. Erst wenn du den entsprechenden Prozess beendest oder das System neu startest, verschwindet die Dateileiche endgültig. Das ist ein klassischer Fehler bei der Fehlersuche.
Linux Check Space On Disk mit gezielten Befehlen durchführen
Wenn die Festplatte voll läuft, musst du schnell handeln. Du brauchst eine Strategie, um die Übeltäter einzugrenzen. Ich empfehle immer den Weg von oben nach unten. Zuerst prüfst du die Partitionen, dann die Verzeichnisse und schließlich die einzelnen Dateien. Das spart Zeit und verhindert, dass du dich in unwichtigen Unterordnern verlierst.
Hier sind die wichtigsten Werkzeuge für deine tägliche Arbeit:
df -h: Der schnelle Überblick über alle eingehängten Dateisysteme.du -sh /pfad/zum/ordner: Berechnet die Größe eines spezifischen Ordners inklusive aller Unterordner.lsblk: Zeigt die Blockgeräte und deren Mountpoints an. Das hilft, wenn du physische Platten von Partitionen unterscheiden willst.ncdu: Eine interaktive Konsolenanwendung, die grafisch aufbereitet, wo der Platz bleibt.
Die Nutzung von ncdu ist oft die beste Wahl für Desktop-Nutzer und Server-Admins gleichermaßen. Es scannt das Verzeichnis und erlaubt es dir, mit den Pfeiltasten durch die Ordnerstruktur zu navigieren. So siehst du sofort, welcher User mal wieder seinen Download-Ordner nicht aufgeräumt hat. Es ist deutlich intuitiver als die endlose Textwüste von du.
Versteckte Platzfresser identifizieren
Oft sind es nicht die eigenen Dokumente, die das System füllen. Es sind die Geister der Vergangenheit. Ein großes Thema sind Logdateien. Das Verzeichnis /var/log kann über Monate hinweg gigantische Ausmaße annehmen, besonders wenn ein Dienst Fehler produziert und diese im Sekundentakt in eine Textdatei schreibt. Hier hilft ein Blick auf die journalctl-Konfiguration. Mit dem Befehl journalctl --vacuum-time=7d kannst du beispielsweise alle Logs löschen, die älter als eine Woche sind. Das befreit oft mehrere Gigabyte auf einen Schlag.
Ein weiterer Kandidat ist der Paketmanager. Unter Debian-basierten Systemen speichert apt alle heruntergeladenen .deb-Pakete im Archivordner unter /var/cache/apt/archives/. Wenn du dort nie aufräumst, sammeln sich hunderte alte Versionen von Programmen an, die du längst aktualisiert hast. Ein einfaches sudo apt clean wirkt hier Wunder. Es löscht diese Pakete, ohne die installierte Software zu beeinträchtigen.
Fortgeschrittene Techniken zur Speicherplatzverwaltung
Wer tiefer in die Materie einsteigt, wird früher oder später auf LVM (Logical Volume Manager) oder moderne Dateisysteme wie ZFS und Btrfs stoßen. Diese Technologien bieten Möglichkeiten, die weit über das bloße Löschen von Dateien hinausgehen. Mit LVM kannst du Partitionen im laufenden Betrieb vergrößern, sofern noch freier Platz in der Volume Group vorhanden ist. Das ist die Rettung für Server, die plötzlich unerwartet viele Daten speichern müssen.
Btrfs hingegen nutzt sogenannte Subvolumes und Copy-on-Write-Snapshots. Ein Snapshot verbraucht erst einmal fast gar keinen Platz. Erst wenn sich Daten ändern, wächst der Platzbedarf. Das ist genial für Backups, kann aber auch tückisch sein. Wenn du viele alte Snapshots behältst, wird die Platte voll, obwohl die aktuelle Ansicht des Dateisystems leer aussieht. Hier musst du spezielle Befehle wie btrfs filesystem usage / verwenden, um die Wahrheit zu erfahren.
Die Rolle von Docker und Containern
In der modernen Softwareentwicklung ist Docker allgegenwärtig. Aber Container sind gierig. Jedes Image, jeder Layer und jeder gestoppte Container belegt Platz auf der Platte. Wer viel mit Docker experimentiert, findet oft heraus, dass /var/lib/docker das größte Verzeichnis auf dem ganzen Rechner ist. Hier hilft der Befehl docker system prune. Er entfernt alle ungenutzten Daten, die nicht mehr aktiv mit einem laufenden Container verknüpft sind. Aber Vorsicht: Damit werden auch Images gelöscht, die du vielleicht später noch einmal gebrauchen könntest, ohne sie neu herunterzuladen.
Ein echtes Problem können auch die Logs der Container sein. Standardmäßig schreibt Docker die Standardausgabe der Container in JSON-Dateien. Wenn eine Applikation sehr geschwätzig ist und du keine Log-Rotation konfiguriert hast, wächst diese Datei unendlich. Ich habe schon Server gesehen, auf denen eine einzige Docker-Logdatei 50 Gigabyte groß war. Eine einfache Konfiguration in der daemon.json kann das verhindern, indem man die maximale Größe und Anzahl der Logdateien festlegt.
Praktische Beispiele für die tägliche Administration
Stell dir vor, du bist per SSH auf einem entfernten Server eingeloggt. Die Performance bricht ein, und die ersten Dienste quittieren den Dienst. Du musst Linux Check Space On Disk effizient anwenden. Mein erster Schritt ist immer:
df -Th
Das T steht für den Typ des Dateisystems. Es ist wichtig zu wissen, ob man auf einem ext4, xfs oder nfs arbeitet. Netzlaufwerke verhalten sich oft träge, und du willst dort keinen vollständigen du-Scan über Millionen von Dateien starten, der Stunden dauert. Wenn du siehst, dass die Root-Partition voll ist, suchst du als Nächstes die Top-10-Ordner:
du -ah / | sort -rh | head -n 10
Dieser Befehl ist mächtig, aber langsam auf großen Platten. Er scannt alles ab der Wurzel, sortiert das Ergebnis nach Größe und gibt die obersten zehn Einträge aus. Oft findest du so sofort ein vergessenes Backup-Archiv im Home-Verzeichnis eines Nutzers oder einen überquellenden Papierkorb. Ja, auch unter Linux gibt es versteckte .trash-Ordner, die man gerne vergisst.
Der Umgang mit Sparse Files
Ein technisches Kuriosum sind Sparse Files. Das sind Dateien, die eine bestimmte Größe vorgeben, aber physisch weniger Platz belegen. Ein Beispiel sind die Disk-Images von virtuellen Maschinen. Eine Datei kann 100 Gigabyte groß erscheinen, belegt auf der Platte aber nur 5 Gigabyte, weil der Rest nur aus Nullen besteht, die das Dateisystem intelligent wegoptimiert. Wenn du solche Dateien mit herkömmlichen Werkzeugen kopierst, ohne die richtigen Flags zu setzen, blähen sie sich plötzlich auf ihre volle Größe auf. Das kann deine Zielpartition sofort sprengen. Werkzeuge wie rsync haben dafür den Parameter --sparse, um dieses Verhalten beizubehalten.
Quotas für Benutzer einrichten
Auf Systemen mit vielen aktiven Nutzern, wie zum Beispiel an Universitäten oder in Firmennetzwerken, ist es riskant, jedem den kompletten Speicherplatz zur Verfügung zu stellen. Ein einziger Nutzer könnte durch ein fehlerhaftes Skript den gesamten Server lahmlegen. Hier kommen Disk Quotas ins Spiel. Du kannst pro Nutzer oder pro Gruppe Limits festlegen. Es gibt "Soft Quotas", die nur warnen, und "Hard Quotas", die das Schreiben von Daten strikt unterbinden, sobald das Limit erreicht ist. Das sorgt für eine faire Verteilung der Ressourcen und schützt die Systemstabilität.
Informationen zu professionellen Speicherlösungen und deren Verwaltung findest du oft bei großen Open-Source-Projekten. Eine gute Anlaufstelle für tiefere Einblicke in Dateisysteme ist die Dokumentation der Linux Foundation. Auch die Wiki-Seiten von Distributionen wie Arch Linux bieten exzellente technische Details, die weit über die Grundlagen hinausgehen. Wer sich für die Hardware-Seite interessiert, sollte die Spezifikationen der Hersteller prüfen, da moderne NVMe-Speicher oft eigene Management-Tools mitbringen. Ein Beispiel für professionelle Hardware-Anforderungen findet man oft bei Red Hat.
Strategien zur Vermeidung von Speicherplatzproblemen
Vorsorge ist besser als Heilung. Ein gut gewartetes System läuft selten voll. Hier sind Strategien, die sich in der Praxis bewährt haben:
Erstens: Separate Partitionen verwenden. Es ist eine gute Praxis, /var, /home und /tmp auf eigenen Partitionen oder Logical Volumes unterzubringen. Wenn ein Nutzer sein Home-Verzeichnis füllt, bleibt das Betriebssystem unter / weiterhin funktionsfähig. Wenn die Logs unter /var explodieren, stürzt nicht der gesamte Rechner ab. Das ist ein Standard in der professionellen Administration.
Zweitens: Monitoring-Systeme einsetzen. Tools wie Prometheus mit dem Node Exporter oder klassische Lösungen wie Zabbix können dich warnen, bevor es kritisch wird. Eine E-Mail oder Slack-Nachricht bei 80 % Füllstand gibt dir genug Zeit, um zu reagieren, bevor der Dienst ausfällt.
Drittens: Automatisierte Aufräumskripte. Ein kleiner Cron-Job, der wöchentlich den Paket-Cache leert oder alte temporäre Dateien löscht, hält das System sauber. Man kann auch Programme wie tmpreaper nutzen, die Dateien in bestimmten Verzeichnissen löschen, wenn sie für eine festgelegte Anzahl an Tagen nicht mehr angefasst wurden.
Was tun, wenn gar nichts mehr geht?
Wenn das System so voll ist, dass nicht einmal mehr ein Login möglich ist, hilft oft nur noch der Rettungsmodus (Single User Mode) oder ein Live-System. In diesem Zustand kannst du die Partition einhängen und manuell Platz schaffen. Oft reicht es, ein paar große Logdateien zu leeren. Ein wichtiger Trick: Lösche die Datei nicht unbedingt mit rm, wenn sie noch von einem Dienst blockiert wird. Nutze stattdessen das Umleiten von Nichts in die Datei:
> /var/log/riesige_datei.log
Das setzt die Dateigröße sofort auf Null Bytes zurück, ohne dass der Handle des Programms ungültig wird. Der Platz ist sofort wieder frei.
Die Gefahr von temporären Dateien
Das Verzeichnis /tmp ist tückisch. Viele Programme legen dort Daten ab und vergessen sie wieder. Bei vielen modernen Linux-Distributionen liegt /tmp im Arbeitsspeicher (tmpfs). Das bedeutet, dass die Daten nach einem Neustart weg sind. Das ist gut für die Privatsphäre und die Geschwindigkeit. Aber wenn ein Prozess dort massiv Daten schreibt, geht dir der RAM aus, was oft zu noch schlimmeren Systemabstürzen führt als eine volle Festplatte. Behalte diesen Aspekt immer im Hinterkopf, wenn du die Performance deines Systems analysierst.
Zusammenfassung der besten Vorgehensweisen
Effektives Speichermanagement ist keine Magie, sondern Disziplin. Du musst verstehen, wo deine Daten liegen und wie die Werkzeuge zur Analyse funktionieren. Linux gibt dir alle Freiheit, aber eben auch die Verantwortung. Wer nur blind Befehle kopiert, wird bei komplexen Problemen wie vollgelaufenen Inodes oder versteckten Mounts scheitern.
Hier sind deine nächsten Schritte, um das Gelernte direkt anzuwenden:
- Öffne dein Terminal und tippe
df -h, um zu sehen, welche Partition am vollsten ist. - Installiere
ncduüber deinen Paketmanager (z.B.sudo apt install ncdu) und lass es über dein Home-Verzeichnis laufen. - Kontrolliere dein
/var/logVerzeichnis und schau nach Dateien, die größer als 500 MB sind. - Falls du Docker nutzt, führe ein
docker system pruneaus, um ungenutzte Altlasten loszuwerden. - Überprüfe die Einstellungen deines Paketmanagers und leere gegebenenfalls den Cache mit
apt cleanoder dem entsprechenden Befehl deiner Distribution.
Mit diesen einfachen Handgriffen verhinderst du 90 % aller Speicherplatzprobleme, bevor sie entstehen. Linux ist ein mächtiges Werkzeug, aber es braucht ab und zu einen kleinen Hausputz. Sobald du diese Routinen verinnerlicht hast, gehören Fehlermeldungen wegen voller Festplatten der Vergangenheit an. Es lohnt sich, einmal im Monat diese Checks durchzuführen. So bleibt dein System schnell, stabil und zuverlässig, egal ob es ein kleiner Raspberry Pi oder ein großer Datenbank-Server ist.