Einleitung
Wenn Produktivserver plötzlich mit der Fehlermeldung „No space left on device“ den Dienst verweigern, ist schnelles Handeln gefragt. Das unverzichtbare Werkzeug für die erste Diagnose lautet hier df. Dieser Leitfaden zeigt praxisnahe Ansätze für den Systemalltag: von der lesbaren Größenformatierung über das gezielte Ausblenden irrelevanter Mountpoints bis hin zur Behebung heimtückischer Inode-Engpässe, bei denen trotz freier Gigabytes keine Dateien mehr geschrieben werden können. Ergänzend wird beleuchtet, weshalb die Metriken von df und du gelegentlich voneinander abweichen und wie man blockierte Speicherressourcen verlässlich freigibt.
1. Basis-Speicherabfrage und lesbare Einheiten (df -h)
Standardmäßig liefert das Dienstprogramm df eine Übersicht sämtlicher eingehängter Dateisysteme inklusive deren Belegung.
Wird das Tool gänzlich ohne Parameter aufgerufen, erfolgt die Ausgabe in unhandlichen 1-Kilobyte-Blöcken (1K-blocks), was eine zügige manuelle Einschätzung der Kapazitäten erschwert.
⚙️ [Die wichtigsten Schalter im Überblick]
-h : Rechnet Rohwerte in intuitiv verständliche Größenordnungen (K, M, G) um.-T : Zeigt den Dateisystemtyp (beispielsweise ext4, xfs oder overlay) in einer separaten Spalte an.-i : Prüft anstelle der Speicherblöcke die Auslastung der Inode-Tabellen (Dateianzahl-Limit).-t : Beschränkt die Ausgabe selektiv auf ein definiertes Dateisystem.-x : Schließt vorgegebene Dateisystemtypen explizit aus dem Bericht aus.

Mit dem Schalter -h (kurz für --human-readable) transformiert das System die reinen Blockzahlen in vertraute Maßeinheiten wie Megabyte oder Gigabyte.
Wie die Terminal-Ausgabe demonstriert, lassen sich verbleibende Restkapazitäten und prozentuale Belegungen auf diese Weise unmittelbar und fehlerfrei erfassen.

2. Pseudodateisysteme ausblenden und Partitionen isolieren (df -h -x / -t)
Mittels df -h -x tmpfs -x devtmpfs -x squashfs lässt sich die Parameterfolge -x (–exclude-type) mehrfach verketten, um unbedeutende virtuelle Dateisysteme aus dem Report zu verbannen.
Gerade auf modernen Ubuntu-Installationen sorgen Snap-Pakete (squashfs) sowie RAM-basierte Dateisysteme (tmpfs, devtmpfs) für eine überladene Liste, die den Blick auf den tatsächlichen physischen Speicher verstellt.
Dieser Filter eliminiert das Hintergrundrauschen und rückt reale Festplatten sowie primäre Partitionen klar in den Fokus.

Über das Flag -t (–type) erlaubt df -h -t ext4 hingegen eine Positivliste, um ausschließlich spezifische Dateisysteme darzustellen.
Indem die Übersicht auf klassische ext4-Partitionen eingegrenzt wird, behalten Administratoren den Füllstand ihrer Produktiv- und Root-Partitionen stets übersichtlich im Auge.

3. Dateierstellung scheitert trotz freiem Speicher: Inode-Erschöpfung analysieren (df -i)
Um das Szenario einer Inode-Überlastung nachzustellen, richten wir zunächst ein temporäres Testverzeichnis mit zehn leeren Dateien ein.

Der Aufruf df -i /tmp/df-test richtet den Fokus auf die Metadaten-Struktur des entsprechenden Mountpoints.
Selbst wenn noch etliche Gigabyte Plattenplatz verfügbar sind, blockiert das Betriebssystem jeden Schreibversuch, sobald das Inode-Kontingent (IUse% bei 100 %) erschöpft ist.
Die Spalten Inodes (Gesamtzahl), IUsed (belegt) und IFree (verfügbar) geben zuverlässig Aufschluss darüber, ob viele winzige Dateien das Dateilimit des Systems ausreizen.

Nach Abschluss des Tests entfernen wir das angelegte Verzeichnis samt Inhalt wieder mit rm -rf /tmp/df-test.

4. Typische Praxis-Falle: Diskrepanzen zwischen df und du durch verwaiste Dateihandles
Für die Lokalisierung aktiver Prozesse, die Speicher belegen, überprüfen wir zunächst die Verfügbarkeit des Hilfsprogramms lsof und installieren es bei Bedarf nach.

Mit dem Befehl lsof +L1 spüren Sie Dateien auf, deren Link-Zähler bereits auf null gefallen ist, die jedoch weiterhin von laufenden Diensten offengehalten werden.
Wird eine massiv angewachsene Logdatei mit rm gelöscht, während ein Daemon noch in sie schreibt, gibt das Betriebssystem die Festplattenblöcke nicht frei – du meldet scheinbar freien Raum, während df unverändert einen vollen Datenträger signalisiert.
Erst nach dem Identifizieren der verantwortlichen Prozess-ID (PID) und einem anschließenden Dienst-Neustart oder Prozessabbruch wird das Dateihandle geschlossen und der Speicherplatz tatsächlich freigegeben.

Damit haben Sie die wichtigsten Techniken rund um den Befehl df sowie typische Fallstricke bei der Speicherplatzanalyse unter Linux kennengelernt.
Durch den gezielten Einsatz dieser Schalter und Diagnosewege lassen sich Speicherengpässe künftig rasch lokalisieren und Ausfallzeiten im Serverbetrieb zuverlässig vermeiden.