Top 3 Möglichkeiten zur Behebung des Fehlers „Kein freier Speicherplatz auf dem Gerät“ in Linux

Fehler ohne eindeutige Ursache sind die ärgerlichsten Probleme, mit denen man sich auseinandersetzen muss. Und während Linux in seinen Fehlermeldungen normalerweise spezifisch ist, ist dies einer der wenigen Fälle, in denen es den Ball fallen lässt.

Die Fehlermeldung „Kein Platz mehr auf dem Gerät“ zu erhalten, erklärt sehr wenig, besonders wenn Ihr Laufwerk noch lange nicht voll ist. Warum wird diese Fehlermeldung angezeigt? Warum können Sie trotz ausreichendem Speicherplatz auf der Festplatte keine neuen Dateien erstellen? Und vor allem, wie repariert man das?

Lass es uns herausfinden.

Hat Ihre Festplatte eigentlich genug Platz(Hard Drive Actually Have Enough Space) ?

Bevor Sie sich auf die Suche nach einer Lösung beeilen, stellen Sie zunächst sicher, dass es ein Problem gibt. Wenn der Speicherplatz auf Ihrem System tatsächlich erschöpft ist, besteht schließlich kein Grund zur Panik. Sie können einfach unnötige Daten entfernen, um mehr Speicherplatz freizugeben.

Es gibt zwei Linux -Systembefehle zum Abrufen von Informationen über den Speicherplatz – du und df. Der Befehl du schätzt die Speicherplatznutzung, während der Befehl df den auf der Festplatte vorhandenen freien Speicherplatz analysiert. Wenn Sie sie in Verbindung mit sudo verwenden, erhalten Sie einen genauen Bericht darüber, wie viel Speicherplatz tatsächlich auf der Festplatte verfügbar ist.

  1. Beginnen wir mit dem du-Befehl. Seine Ausgabe kann ziemlich lang und umständlich zu durchlaufen sein, daher werden wir die Flags -s und -h verwenden. -s fasst die Ergebnisse zusammen, während -h sicherstellt, dass sie für Menschen lesbar sind. Geben Sie also den Befehl sudo du -sh / ein, wobei / auf das Basisverzeichnis zeigt.

  1. Machen Sie sich keine Sorgen über all die Permission-Denied-Meldungen – so durchforstet es alle Unterverzeichnisse des Systems. Abhängig von der Größe des Laufwerks müssen Sie es möglicherweise eine Weile laufen lassen, da es rekursiv alles durchläuft.

  1. Wenn du mit dem Scannen fertig ist, wird eine einfache Liste von Verzeichnissen zusammen mit ihrer Größe ausgegeben. Dies ist beispielsweise die Ausgabe des Befehls du, der auf ein gewöhnliches Verzeichnis angewendet wird.

Jetzt werden wir df verwenden, um zu sehen, wie viel freier Speicherplatz verfügbar ist. Der Befehl df ist viel einfacher zu verwenden, da er nur die gemounteten Dateisysteme und ihre Nutzungsstatistiken anzeigt. Auch hier verwenden wir das Flag -h, um die Ausgabe für Menschen lesbar zu machen.

sudo df -h

Die Idee ist, die Ergebnisse der Befehle du und df zu zählen. Jede Diskrepanz weist auf Festplattenspeicher hin, der nicht frei verfügbar ist, obwohl er nicht von Dateien oder Ordnern verwendet wird.

Warum zeigt Linux(Does Linux Show) „No Space Left on Device“ an?

Wenn Sie die Fehlermeldung „No Space Left on Device“ sehen, obwohl auf Ihrer Festplatte ausreichend freier Speicherplatz vorhanden ist, liegt es nicht an der Hardware. Um die genaue Ursache für den Fehler herauszufinden, kann ein wenig Fehlerbehebung erforderlich sein.

  • Kürzlich gelöschte Datei: Der häufigste Grund für diesen Fehler ist eine kürzlich gelöschte Datei. Oft wird eine Datei gelöscht, während ein Prozess sie noch verwendet, wodurch der Speicherplatz reserviert bleibt, obwohl die Datei bereits verschwunden ist.
  • Nicht genügend Inodes(Enough Inodes) : Eine weitere häufige Ursache sind nicht genügend Inodes . Inodes sind die Indexseiten eines Unix -Dateisystems, die die Metadaten jeder gespeicherten Datei enthalten. Inodes sind jedoch nicht unbegrenzt, und wenn Ihnen die Inodes ausgehen, bevor der Speicherplatz verfügbar ist, können Sie den Fehler „Kein Speicherplatz mehr auf dem Gerät“ erhalten.
  • Ausfall der Festplatte(Hard) : Dann besteht natürlich die Möglichkeit, dass die Festplatte einfach ausfällt und ein Großteil des scheinbar freien Speicherplatzes von fehlerhaften Sektoren belegt wird. Da das System keine Dateien an diese Speicherorte schreiben kann, wird ein Fehler ausgegeben.

Lösung 1: Prozesse mit gelöschten Dateien neu starten(Using Deleted Files)

Die wahrscheinlichste Ursache für den Fehler „Kein freier Speicherplatz auf dem Gerät“ ist ein Prozess, der immer noch eine gelöschte Datei verwendet. Glücklicherweise ist die Behebung dieses Fehlers einfach. Sie müssen den Vorgang lediglich neu starten(restart the process) , um den reservierten Speicherplatz freizugeben.

  1. Um den problematischen Prozess zu finden, müssen Sie die Befehle lsof und grep verwenden. Der Befehl lsof gibt Ihnen eine Liste aller geöffneten Dateien, die von laufenden Prozessen verwendet werden, und grep kann die Auswahl auf diejenigen einschränken, die gelöscht werden. Geben Sie also sudo lsof / | ein grep gelöscht wobei / das Basisverzeichnis ist und | eine Pipe zum Verknüpfen der Ausgabe von lsof mit grep.

  1. Jetzt können Sie den betroffenen Prozess mit dem Befehl sudo systemctl restart service_name neu starten, wobei der Dienstname der Name des Dienstes ist, der bei der Suche aufgetaucht ist.

  1. Wenn es mehrere solcher Prozesse gibt oder Sie sich einfach nicht darum kümmern möchten, bestimmte Dienste zu finden, können Sie sie einfach alle mit dem Befehl sudo systemctl daemon-reload zurücksetzen. Dadurch werden alle Abhängigkeiten unter Berücksichtigung von Änderungen im Dateisystem neu generiert.

Danach sollte der vom Prozess belegte Speicherplatz wieder verfügbar sein, sodass Sie Dateien fehlerfrei schreiben können.

Lösung 2: Inodes überprüfen

Obwohl jedes Laufwerk eine große Anzahl von Inodes hat, ist es endlich. Und wenn Ihr System mit einer unglaublichen Anzahl von Dateien übersät ist, ist es möglich, diese Grenze zu erreichen, bevor die Speicherkapazität des Laufwerks erschöpft ist. Deshalb ist es besser, große Dateien zu haben als zu viele kleine.

Sie können die Verfügbarkeit von Inodes einfach überprüfen, indem Sie das Flag -i mit dem Befehl df verwenden. So was:

sudo df -i

Dadurch wird die Gesamtzahl der im Dateisystem vorhandenen Inodes zusammen mit der derzeit verwendeten Menge deutlich. Wenn auf Ihrem System keine freien Inodes mehr vorhanden sind, ist dies die Ursache für den Fehler „No space left on device“.

Da Inodes nur beim ersten Formatieren des Laufwerks erstellt werden, gibt es keine Möglichkeit, weitere Inodes zu generieren. Alles, was Sie tun können, ist, unnötige Dateien zu löschen, um Inodes für zukünftige Dateien freizugeben.

Lösung 3: Schlechte Blöcke markieren

Datenkorruption(Data) ist das unvermeidliche Schicksal jeder Festplatte. Während bei einem neuen Laufwerk dieses Problem nicht auftritt, werden ältere Festplatten nach und nach „schlecht“.

Das bedeutet, dass Teile der Festplatte unbrauchbar gemacht werden, obwohl das Dateisystem sie immer noch als funktionsfähig betrachtet. Diese fehlerhaften Blöcke vergrößern fälschlicherweise den scheinbar freien Speicherplatz auf dem Laufwerk, obwohl in Wahrheit keine Dateien darauf geschrieben werden können. Dies führt zu einem „No space left on device“-Fehler, da das Betriebssystem versucht und es versäumt, Daten an diesen Speicherorten zu speichern.

Es gibt keine wirkliche Möglichkeit, dieses Problem zu beheben, da fehlerhafte Sektoren auf die physische Abnutzung einer Festplatte zurückzuführen sind. Das Einzige, was Sie tun können, ist, die fehlerhaften Sektoren zu markieren, damit sie nicht mehr vom Dateisystem referenziert werden.

Dazu müssen Sie von einer Live-CD booten , da Sie keine Dateisystemprüfung(File System Check) innerhalb eines laufenden Laufwerks durchführen können. Sobald Sie das getan haben, verwenden Sie einfach den folgenden Befehl:

sudo fsck -vcck /dev/sda

Dadurch wird /dev/sda durch den Pfad des Laufwerks ersetzt, das Sie reparieren möchten. Dadurch werden automatisch alle fehlerhaften Blöcke auf dem Laufwerk erkannt und als unbrauchbar markiert. Es wird Ihnen jedoch keine zusätzliche Speicherkapazität zur Verfügung stellen, seien Sie also darauf vorbereitet, einige nutzlose Dateien zu bereinigen, um Speicherplatz auf dem Laufwerk freizugeben.

Was ist der beste Weg, um den Fehler „Kein Platz mehr auf dem Gerät“ zu beheben?

Der übliche Grund für den Fehler „Kein Speicherplatz auf dem Gerät“ auf Ubuntu oder einer anderen Linux -Distribution ist eine gelöschte Datei, die noch von einem laufenden Prozess verwendet wird. Dadurch wird der von der Datei belegte Speicherplatz reserviert, wodurch verhindert wird, dass andere Vorgänge Daten in diesen Speicherplatz schreiben.

Das Beheben dieses Problems ist auch am einfachsten, da Sie lediglich den betreffenden Prozess neu starten müssen. Die anderen Fehlerursachen sind jedoch nicht so einfach zu lösen.

Unabhängig davon, ob Ihr Laufwerk von fehlerhaften Datenblöcken geplagt wird oder keine Inodes mehr vorhanden sind, gibt es keine direkte Möglichkeit, diese Probleme zu beheben. Sie müssen vorhandene Dateien löschen, um Platz zum Schreiben neuer Daten zu schaffen.



About the author

Ich bin ein Computerprofi mit über 10 Jahren Erfahrung. In meiner Freizeit helfe ich gerne am Schreibtisch aus und bringe Kindern den Umgang mit dem Internet bei. Meine Fähigkeiten umfassen viele Dinge, aber das Wichtigste ist, dass ich weiß, wie man Menschen hilft, Probleme zu lösen. Wenn Sie jemanden brauchen, der Ihnen bei etwas Dringenden helfen kann, oder einfach nur ein paar grundlegende Tipps wünschen, dann wenden Sie sich bitte an mich!



Related posts