Eine volle Festplatte ist kein Schönheitsfehler, sondern ein akutes Betriebsrisiko.
Sobald / oder /var auf 100 % laufen, beginnen Dienste zu spinnen, Logs reißen ab, Datenbanken stoppen, SSH-Logins schlagen fehl. Die gute Nachricht: Linux lügt nicht – man muss nur wissen, wo man hinschaut. Dieser Artikel zeigt ein bewährtes Vorgehen, mit dem du in wenigen Minuten:
- den Platzfresser findest
- die Ursache verstehst
- und verhinderst, dass es wieder passiert
1. Erste Bestandsaufnahme: Welche Partition ist voll?
df -h
Wichtig ist nicht die Gesamtkapazität, sondern:
- Welche Partition
- Welcher Mountpoint
- Wie viel „Avail“ wirklich noch da ist
Typischer Notfall:
/dev/nvme0n1p3 1,7T 1,6T 0 100% /
Ab hier gilt: Nicht raten – messen.
2. Wo liegt der Platz? Grober Überblick auf Root-Ebene
sudo du -xh --max-depth=1 / | sort -h
Das zeigt dir sofort, welche Verzeichnisse relevant sind.
Unkritisch:
/bin,/sbin,/lib,/etc
Verdächtig:
/var/home/root/mnt/opt/usr(nur bei ungewöhnlich großen Werten)
👉 Alles, was zweistellig in GB oder gar TB geht, ist ein Kandidat.
3. Der Klassiker: /mnt ist kein Mountpoint (mehr)
Wenn du so etwas siehst:
1,2T /mnt
… dann ist fast sicher Folgendes passiert:
Ein Ziel-Laufwerk war nicht gemountet, aber Prozesse haben fröhlich weitergeschrieben.
Linux schreibt stumpf ins Verzeichnis, egal ob dort eigentlich ein Mount geplant war.
Prüfen:
mount | grep mnt
lsblk -f
Wenn dort kein Device auftaucht → Ursache gefunden.
Lehre:
/mntohne aktiven Mount ist gefährlich- Skripte müssen Mounts prüfen, bevor sie schreiben
- systemd-Mounts oder
nofail+ Checks verwenden
4. Tiefenanalyse: Der Übeltäter im Detail
Beispiel /mnt:
sudo du -xh --max-depth=1 /mnt | sort -h
Oder gezielt große Dateien:
sudo find /mnt -type f -size +10G -exec ls -lh {} \;
Typische Inhalte:
- Backups
- Datenbank-Dumps
- VM-Images
- Docker-Volumes
- Log-Exporte
- KI-Datasets (ja, die fressen brutal)
5. /root größer als ein paar GB? Alarmstufe Gelb
sudo du -xh --max-depth=1 /root | sort -h
Root wird oft versehentlich als Ablage missbraucht durch:
scpals rootrsyncmit falschem Ziel- Cronjobs
- Testdaten
- Docker Builds
/root > 10 GB ist fast nie normal.
6. Logs: Wenn Fehler sich selbst vervielfältigen
sudo du -xh /var/log | sort -h
Journal prüfen:
journalctl --disk-usage
Aufräumen:
sudo journalctl --vacuum-size=1G
Oder zeitlich:
sudo journalctl --vacuum-time=7d
Dauerhafte Lösung:
/etc/systemd/journald.conf
SystemMaxUse=1G
7. Docker – der leise Killer
Docker belegt Platz, auch wenn keine Container laufen.
docker system df
Aufräumen:
docker system prune -a
docker volume prune
Pfad:
/var/lib/docker
Wenn das zweistellig GB hat → völlig normal, aber muss gemanagt werden.
8. Der fieseste Fall: Gelöschte Dateien, die noch offen sind
du zeigt sie nicht. df schon.
sudo lsof | grep deleted
Wenn dort große Dateien stehen:
- Prozess hält File-Handle offen
- Platz wird erst nach Prozessende freigegeben
Lösung: Dienst neu starten oder Prozess beenden.
9. Komfortabler Überblick mit ncdu (empfohlen)
sudo apt install ncdu
sudo ncdu /
ncdu ist:
- schnell
- ehrlich
- gnadenlos klar
Ideal für Post-Mortem-Analysen.
10. Erst löschen, wenn die Ursache klar ist
Regel Nr. 1:
Lösche nichts, solange du nicht weißt, warum es da ist.
Fragen vor dem Löschen:
- Sollte das auf ein anderes Laufwerk?
- Gehört das zu einem Service?
- Ist das ein Backup?
- Läuft ein Cronjob dahinter?
11. Dauerhafte Prävention (der wichtigste Teil)
✔ Mounts absichern
- systemd
.mountUnits - Skripte mit
mountpoint -q /mnt || exit 1
✔ Logging begrenzen
- journald Limits
- logrotate prüfen
✔ Monitoring
df -hvia Cron- Alert bei >80 %
✔ Root disziplinieren
- Keine Datenablage
- Kein „mal eben scp nach /root“
Fazit
Eine volle Festplatte ist kein Zufall.
Sie ist immer das Ergebnis von:
- fehlenden Checks
- stillen Annahmen
- oder vergessenen Mounts
Linux gibt dir alle Werkzeuge an die Hand –
du musst sie nur konsequent nutzen.
Wenn du systematisch vorgehst, ist das Problem:
- schnell gefunden
- sauber gelöst
- dauerhaft verhindert