snippets · bash
No space left on device – aber df -h zeigt noch freien Platz
Ein Prozess meldet No space left on device, aber df -h zeigt noch Gigabytes frei. Dann ist Speicherplatz nur eine von mehreren möglichen Erklärungen.
Zwei verschiedene Ressourcen
df -hT
df -ih
df -hT zeigt belegte Datenblöcke. df -ih zeigt die Inodes – vereinfacht gesagt die Anzahl möglicher Dateisystemeinträge.
Ein System mit Millionen kleiner Cache-, Session- oder Temp-Dateien kann freie Gigabytes haben und trotzdem keine neuen Dateien mehr anlegen, weil die Inodes aufgebraucht sind.
Wenn die Inodes voll sind
Nicht sofort wild löschen. Finde erst die Verzeichnisse mit sehr vielen Einträgen:
for d in /*; do
[ -d "$d" ] || continue
printf '%10s %s\n' "$(find "$d" -xdev 2>/dev/null | wc -l)" "$d"
done | sort -nr | head
Das ist nur eine grobe Orientierung und kann auf großen Systemen dauern. Danach enger in den auffälligen Pfad gehen.
Wenn weder Platz noch Inodes voll sind
Dann kann die Fehlermeldung aus einer anderen Grenze kommen: Quota, read-only Dateisystem, temporärer Mount oder ein anderer Filesystem-Pfad als der, den du gerade mit df geprüft hast.
Die wichtige Frage lautet also nicht „Wie lösche ich schnell Dateien?“, sondern welche Ressource ist tatsächlich erschöpft?