Linux: Gelöschte Dateien geben den Speicherplatz nicht frei
Aufgeräumt, und df zeigt die Platte trotzdem voll? Ein laufender Prozess hält die gelöschte Datei noch offen. So findest du ihn mit lsof.
Aufwand:
ca. 15 Min.
Voraussetzung:
Root- bzw. sudo-Rechte
Das Symptom
Ein Befehl bricht mit No space left on device ab. Du löschst brav ein paar
Gigabyte an alten Logs und Downloads, führst den Befehl erneut aus – und wirst
mit exakt derselben Meldung begrüßt. df -h behauptet stur, die Platte sei zu
100 % voll, obwohl der Papierkorb längst leer ist.
Die „Layer 8“-Wahrheit
Unter Linux verschwindet eine Datei nicht, nur weil du sie „gelöscht“ hast –
solange ein laufender Prozess sie noch offen hält, bleibt der belegte Speicher
reserviert, unsichtbar für du, aber voll wirksam für df. Der Klassiker: eine
riesige Logdatei wird gelöscht, während der Dienst weiterschreibt. Erst ein
Neustart des Prozesses gibt den Platz frei. Die zweite Falle: Nicht die Bytes
sind alle, sondern die Inodes – Millionen winziger Cache-Dateien. Beides
sieht man nur, wenn man die richtigen Werkzeuge fragt, statt panisch weiter zu
löschen.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.
Belegung von Speicher UND Inodes prüfen
Zuerst klären, ob Bytes oder Inodes voll sind – zwei verschiedene Grenzen:
df -h
df -i
2.
Größte Verzeichnisse aufspüren
Die dicksten Brocken finden, ohne über Dateisystemgrenzen zu wandern:
sudo du -xh / 2>/dev/null | sort -rh | head -20
3.
Gelöschte, aber noch offene Dateien finden
Prozesse, die gelöschte Dateien offen halten, blockieren den Speicher. Auflisten und den jeweiligen Dienst neu starten, um den Platz freizugeben:
sudo lsof +L1
4.
System-Logs (journald) eindampfen
Systemd-Logs wachsen unbemerkt in die Gigabytes. Auf eine feste Größe kürzen:
sudo journalctl --vacuum-size=200M
5.
Paket-Cache leeren
Heruntergeladene Paketarchive werden selten gebraucht. Je nach Distribution:
?Warum ist meine Linux-Platte voll, obwohl ich Dateien gelöscht habe?
Wenn ein laufender Prozess eine gelöschte Datei noch offen hält, gibt der Kernel den Speicher erst frei, wenn der Prozess beendet oder neu gestartet wird. 'lsof +L1' zeigt genau diese Dateien.
?Was tun, wenn df Platz zeigt, aber trotzdem 'No space left' kommt?
Dann sind vermutlich die Inodes aufgebraucht (viele winzige Dateien). 'df -i' zeigt die Inode-Belegung. Aufräumen der betroffenen Verzeichnisse schafft Abhilfe.
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.
Docker bricht mit 'no space left on device' ab, obwohl scheinbar Platz da ist? Alte Images, Container und Build-Cache fressen die Platte. So räumst du auf.
Nach einem großen Windows-Update fehlen plötzlich zig Gigabyte? Der Ordner Windows.old hält deine alte Installation vor. Wann er weg darf – und wann nicht.