Linux: No space left on device – die Inodes sind aufgebraucht
Kein Speicherplatz, aber df zeigt freien Platz? Dann sind die Inodes erschöpft — zu viele winzige Dateien. df -i deckt es in Sekunden auf.
Aufwand:
ca. 30 Min.
Voraussetzung:
sudo-Rechte, Terminal
Das Symptom
Ein Programm kann nichts mehr speichern, ein Update scheitert, das System meldet
No space left on device. Doch der Blick auf den freien Speicherplatz verwirrt:
Die Festplatte ist scheinbar noch halb leer, es müsste reichlich Platz da sein. Und
trotzdem geht nichts mehr.
Die „Layer 8“-Wahrheit
Ein Dateisystem verwaltet zwei getrennte Vorräte, und die meisten kennen nur einen
davon. Der eine ist der Speicherplatz für die Inhalte — der, den man üblicherweise
prüft. Der andere ist ein Vorrat an Inodes: Verwaltungseinträge, von denen jede
einzelne Datei genau einen belegt, ganz gleich, ob sie ein Gigabyte oder ein Byte
groß ist. Dieser Vorrat wird bei der Einrichtung des Dateisystems festgelegt und
ist endlich. Häufen sich Millionen winziger Dateien an, sind die Inodes aufgebraucht,
lange bevor der Platz voll ist — und kein einziger neuer Eintrag ist mehr möglich.
Deshalb führt das übliche Nachsehen beim Speicherplatz hier in die Irre; der
richtige Blick gilt der Inode-Belegung. Ist sie am Anschlag, geht es nicht darum,
große Dateien zu löschen, sondern die vielen kleinen aufzuspüren — einen
überlaufenden Cache, einen Mail-Spool, ein wild gewordenes Protokoll. Und weil die
eigentliche Ursache eine Quelle ist, die unaufhörlich winzige Dateien nachschiebt,
ist das Aufräumen nur die halbe Miete: Erst wenn diese Quelle gebändigt ist, bleibt
das Problem auch weg.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.
Den Widerspruch erkennen
Das System meldet „No space left on device“, aber der freie Speicher scheint reichlich. Ein klassisches Zeichen für erschöpfte Inodes: Jede Datei — egal wie klein — belegt einen Inode, und deren Zahl ist begrenzt. Sind alle vergeben, lässt sich keine neue Datei mehr anlegen, obwohl Speicherplatz frei ist.
2.
Die Inode-Auslastung prüfen
Statt des Speicherplatzes gezielt die Inode-Belegung ansehen. Steht ein Dateisystem hier bei 100 Prozent, ist die Ursache gefunden:
df -i
3.
Den Ort der vielen Dateien finden
Nun das Verzeichnis suchen, das die Inodes verbraucht — meist ein Ort mit Millionen winziger Dateien: ein volllaufender Cache, ein Mail-Spool, Sitzungsdateien oder ein außer Kontrolle geratenes Protokoll. Die Zahl der Einträge je Unterverzeichnis zählen und dem größten nachgehen:
sudo du -a /var --inodes 2>/dev/null | sort -rn | head -n 20
4.
Gezielt aufräumen
Die verantwortlichen Dateien entfernen — alte Cache- und Sitzungsdateien, abgearbeitete Warteschlangen, rotierte Protokolle. Bei sehr vielen Dateien kann schon das Löschen selbst dauern; ein Löschen in Blöcken schont das System.
5.
Die Ursache abstellen
Aufräumen schafft Luft, aber wenn ein Programm weiter unbegrenzt winzige Dateien produziert, ist der Zustand bald zurück. Die Quelle abstellen — Protokollrotation einrichten, den Cache begrenzen, die fehlerhafte Anwendung reparieren —, statt nur die Symptome zu beseitigen.
Häufige Fragen (FAQ)
?Was ist ein Inode überhaupt?
Der Verwaltungseintrag einer Datei: Er speichert Rechte, Zeitstempel, Größe und den Ort der Daten – nur nicht den Namen. Jede Datei braucht genau einen, egal ob sie null Byte oder vier Gigabyte groß ist. Bei ext4 wird ihre Anzahl beim Formatieren festgelegt und ist danach unveränderlich.
?Warum bringt das Löschen einer großen Datei nichts?
Weil sie zwar viele Gigabyte freigibt, aber nur einen einzigen Inode. Wenn Millionen winziger Dateien die Verwaltungseinträge aufgebraucht haben, hilft nur, genau diese vielen kleinen zu entfernen. Der Speicherplatz war nie das Problem.
Belege
Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.