Das Signal richtig lesen
Der Wortlaut der Meldung und der Zeitpunkt im Log sind der Ausgangspunkt. Erst danach lohnt sich die Suche nach der Ursache.
cp: cannot create regular file '/var/www/nextcloud/data/upload.tmp': No space left on device
Mögliche Ursachen eingrenzen
- Alle Inodes verbraucht durch Millionen kleiner Dateien (PHP-Sessions, Cache, Mail-Queue, Maildir).
- Gelöschte, aber noch geöffnete Dateien (z. B. Logs) belegen weiter Platz, bis der Prozess sie schließt.
- Für root reservierte Blöcke (standardmäßig 5 % bei ext4): Normale Benutzer sehen die Platte schon als voll.
- Ein anderes Dateisystem ist voll, etwa
/tmpals tmpfs oder ein Docker-Volume.
Prüfen, bevor du etwas änderst
Speicherplatz pro Dateisystem
df -hInode-Belegung pro Dateisystem
df -iGelöschte, aber noch offene Dateien finden
sudo lsof +L1Verzeichnisse mit den meisten Dateien finden
sudo du --inodes -x /var 2>/dev/null | sort -n | tail -n 15
Beheben und erneut testen
- Massen kleiner Dateien gezielt löschen, z. B. alte Sessions:
find /var/lib/php/sessions -type f -mmin +1440 -delete. - Prozess mit gelöschter offener Datei neu starten oder die Datei über
: > /proc/<PID>/fd/<FD>leeren. - Logrotate korrekt konfigurieren (
postrotatemit Reload odercopytruncate), damit Logs nicht offen gelöscht werden. - Bei reinen Datenplatten Reservierung senken:
tune2fs -m 1 /dev/sdb1.
Danach denselben Vorgang erneut ausführen und das Ergebnis mit der ursprünglichen Fehlermeldung vergleichen.
Für das nächste Ticket festhalten
Notiere die genaue Fehlermeldung, das Ergebnis der Prüfung, die Änderung und den erneuten Test. So kann das Team den nächsten Fall schneller zuordnen.
Kann ich die Inode-Anzahl nachträglich erhöhen?
Bei ext4 nicht ohne Neuformatierung. XFS und Btrfs vergeben Inodes dynamisch. Langfristig hilft nur, die Ursache der vielen Kleindateien zu beseitigen.
Ausführliche Fehlerseite: No space left on device, obwohl df freien Speicher zeigt