Wie man den Fehler "No Space Left on Device" unter Linux behebt

Veröffentlicht 27. August 2024

Problem: "Kein Speicherplatz mehr auf dem Gerät"-Fehler in Linux

Der Fehler "Kein Speicherplatz mehr auf dem Gerät" in Linux tritt auf, wenn einem System der Speicherplatz ausgeht. Dieses Problem kann das Speichern von Dateien, die Installation von Software oder andere Aufgaben, die Festplattenspeicher benötigen, verhindern. Es kann zu Systeminstabilität und langsamer Leistung führen und ist somit ein Problem für Linux-Benutzer.

Diagnose des Problems: Überprüfung von Festplattenspeicher und Inodes

Verwendung des df-Befehls zur Überprüfung des Festplattenspeichers

Der df-Befehl überprüft die Festplattennutzung in Linux. Er zeigt Informationen über verwendeten und verfügbaren Speicherplatz auf Dateisystemen an. Um df zu verwenden, öffnen Sie ein Terminal und geben Sie 'df' mit beliebigen Optionen ein.

Bei der Ausführung von df wird eine Tabelle mit Spalten für Dateisystem, Gesamtgröße, verwendeten Speicherplatz, verfügbaren Speicherplatz und Einhängepunkt angezeigt. Die Option '-h' macht die Ausgabe leichter lesbar, indem Größen in KB, MB oder GB angezeigt werden.

Überprüfung der Inode-Nutzung mit df -i

Inodes speichern Daten über Dateien in Linux-Dateisystemen. Jede Datei verwendet einen Inode, unabhängig von ihrer Größe. Um die Inode-Nutzung zu überprüfen, verwenden Sie den Befehl 'df -i'.

Dieser Befehl zeigt eine Tabelle ähnlich der regulären df-Ausgabe, jedoch mit Inode-Informationen anstelle von Festplattenspeicher. Die Spalten umfassen Gesamtanzahl der Inodes, verwendete Inodes, freie Inodes und den Prozentsatz der verwendeten Inodes. Wenn Sie einen hohen Prozentsatz verwendeter Inodes sehen, selbst wenn noch Festplattenspeicher frei ist, könnte ein Inode-Problem vorliegen.

Methoden zur Behebung des 'Kein Speicherplatz mehr auf dem Gerät'-Fehlers

Freigeben von Festplattenspeicher unter Linux

Um Festplattenspeicher unter Linux freizugeben, finden Sie große Dateien und Verzeichnisse. Verwenden Sie den 'du'-Befehl mit Optionen wie '-h' für lesbare Größen und '-s' für eine Zusammenfassung. Zum Beispiel zeigt 'du -sh /pfad/zum/verzeichnis/*' die Größe jedes Elements in einem Verzeichnis an.

Nachdem Sie große Dateien und Verzeichnisse gefunden haben, entfernen Sie nicht benötigte Daten. Löschen Sie alte Protokolldateien, temporäre Dateien und zwischengespeicherte Daten. Bereinigen Sie Paketmanager-Caches mit Befehlen wie 'apt clean' für Debian-basierte Systeme oder 'yum clean all' für Red Hat-basierte Systeme. Entfernen Sie alte Kernel und ungenutzte Anwendungen, um mehr Platz zu schaffen.

Umgang mit Inode-Erschöpfung

Bei einer Inode-Erschöpfung konzentrieren Sie sich auf das Löschen kleiner Dateien. Viele kleine Dateien können Inodes aufbrauchen, auch wenn sie nicht viel Festplattenspeicher belegen. Verwenden Sie 'find', um nicht benötigte kleine Dateien zu lokalisieren und zu entfernen. Zum Beispiel entfernt 'find /pfad -type f -size -1M -delete' Dateien, die kleiner als 1MB sind.

Eine Erhöhung der Inode-Anzahl ist möglich, erfordert aber eine Neuformatierung des Dateisystems. Dies ist eine letzte Option und sollte sorgfältig durchgeführt werden, da es die Sicherung von Daten, die Neuanlage des Dateisystems mit mehr Inodes und die Wiederherstellung der Daten beinhaltet.

Umgang mit gelöschten, aber offenen Dateien

Manchmal werden vom System gelöschte Dateien noch von laufenden Prozessen geöffnet gehalten und belegen Speicherplatz. Verwenden Sie den 'lsof'-Befehl, um diese Dateien zu finden. Führen Sie 'lsof | grep deleted' aus, um gelöschte Dateien aufzulisten, die noch in Gebrauch sind.

Um die Dateihandles freizugeben, starten Sie die Prozesse neu, die diese Dateien verwenden. Wenn es sicher ist, können Sie auch das System neu starten, um alle Dateihandles zu schließen. Bei kritischen Systemen identifizieren Sie den spezifischen Prozess, der die Datei offen hält, und starten Sie nur diesen Prozess neu, um Ausfallzeiten zu minimieren.

Alternative Lösungen für Speicherprobleme

Erweiterung der Dateisystem- oder Partitionsgröße

Sie können neue Festplatten oder Partitionen zu Ihrem Linux-System hinzufügen, wenn Sie mehr Speicherplatz benötigen. Um eine neue Festplatte hinzuzufügen, schließen Sie sie physisch an und verwenden Sie dann 'fdisk' oder 'parted', um Partitionen zu erstellen. Nach dem Erstellen von Partitionen formatieren Sie sie mit einem Dateisystem unter Verwendung von 'mkfs' und mounten sie, um sie zugänglich zu machen.

Sie können auch vorhandene Partitionen vergrößern. Verwenden Sie Tools wie 'gparted' (grafisch) oder 'parted' (Befehlszeile). Sichern Sie immer Ihre Daten, bevor Sie eine Größenänderung vornehmen. Für Nicht-Root-Partitionen hängen Sie sie zuerst aus. Für Root-Partitionen verwenden Sie eine Live-CD oder einen USB-Stick, um die Größenänderung durchzuführen.

Nutzung von Network Attached Storage (NAS)

Network Attached Storage (NAS) erweitert den Speicher über ein Netzwerk. NAS-Systeme bieten große Speichermengen, auf die mehrere Geräte zugreifen können. Sie sind nützlich für zentralisierte Dateispeicherung und Backup.

Um ein NAS unter Linux zu mounten, verwenden Sie Protokolle wie NFS oder SMB. Für NFS verwenden Sie den 'mount'-Befehl mit den NFS-Share-Details. Für SMB-Shares verwenden Sie 'mount.cifs' oder fügen Sie einen Eintrag in '/etc/fstab' für automatisches Mounten beim Systemstart hinzu. NAS-Systeme bieten Flexibilität für Speicherbedürfnisse.

Präventivmaßnahmen zur Vermeidung zukünftiger 'Kein Speicherplatz mehr auf dem Gerät'-Fehler

Einrichtung regelmäßiger Festplattenüberwachung

Um "Kein Speicherplatz mehr auf dem Gerät"-Fehler zu verhindern, richten Sie Warnungen für die Festplattennutzung ein. Verwenden Sie Tools wie Nagios oder Zabbix, um den Festplattenspeicher zu überwachen und Benachrichtigungen zu senden, wenn die Nutzung einen bestimmten Wert erreicht. Stellen Sie beispielsweise Warnungen ein, die ausgelöst werden, wenn die Festplattennutzung 80% überschreitet.

Überwachungstools zeigen den Gesundheitszustand Ihres Systemspeichers. Tools wie Glances oder Netdata bieten Echtzeitansichten von Festplattennutzungstrends. Diese Tools können Ihnen helfen, Probleme zu erkennen, bevor sie kritisch werden, und ermöglichen schnelles Handeln.

Optimierung der Speichernutzung in Linux

Wenden Sie gute Praktiken für das Speichermanagement in Linux an. Überprüfen und entfernen Sie regelmäßig nicht benötigte Dateien, wie alte Backups oder temporäre Dateien. Verwenden Sie Quotas, um die Festplattennutzung von Benutzern zu begrenzen. Richten Sie automatische Bereinigungsaufgaben mit Cron-Jobs ein, um alte Protokolle oder Cache-Dateien zu entfernen.

Komprimierung kann Speicherplatz sparen. Verwenden Sie Tools wie gzip oder bzip2 für Dateien, die Sie selten verwenden. Für Datenbanken probieren Sie Komprimierungsfunktionen des Datenbanksystems aus. Dateisysteme wie Btrfs oder ZFS verfügen über eingebaute Komprimierung, die ohne zusätzlichen Aufwand Speicherplatz sparen kann.