Die drei besten Möglichkeiten, den Fehler „Kein Speicherplatz mehr auf dem Gerät“ unter Linux zu beheben


Fehler ohne klare Ursache sind die lästigsten Probleme, mit denen man sich befassen 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“ erklärt wenig, insbesondere wenn Ihr Laufwerk noch lange nicht voll ist. Warum wird diese Fehlermeldung angezeigt? Warum können Sie keine neuen Dateien erstellen, obwohl auf der Festplatte genügend Speicherplatz vorhanden ist? Und vor allem: Wie beheben Sie das Problem?

Lass es uns herausfinden.

Verfügt Ihre Festplatte tatsächlich über genügend Speicherplatz?

Bevor Sie schnell nach einer Lösung suchen, stellen Sie zunächst sicher, dass ein Problem vorliegt. Denn wenn der Speicherplatz auf Ihrem System tatsächlich erschöpft ist, besteht 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. Die Ausgabe kann ziemlich lang und umständlich sein, daher verwenden wir die Flags -s und -h. -s fasst die Ergebnisse zusammen, während -h dafür sorgt, dass es für Menschen lesbar ist. Geben Sie also den Befehl sudo du -sh /ein, wobei /auf das Basisverzeichnis verweist.
    1. Machen Sie sich keine Sorgen wegen all der Nachrichten, bei denen die Berechtigung verweigert wurde – so werden alle Unterverzeichnisse des Systems durchsucht. Abhängig von der Größe des Laufwerks müssen Sie es möglicherweise eine Weile laufen lassen, da es alles rekursiv durchläuft.
      1. Wenn du mit dem Scannen fertig bist, wird eine einfache Liste der Verzeichnisse mit Angabe ihrer Größe ausgegeben. Dies ist beispielsweise die Ausgabe des du-Befehls, der auf ein normales Verzeichnis angewendet wird.
      2. Jetzt verwenden wir df, 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 werden wir das Flag -h verwenden, um die Ausgabe für Menschen lesbar zu machen.

        sudo df -h .

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

        Warum zeigt Linux „Kein Speicherplatz mehr auf dem Gerät“ an?

        Wenn Sie die Fehlermeldung „Kein Speicherplatz mehr auf dem Gerät“ sehen, obwohl auf Ihrer Festplatte ausreichend freier Speicherplatz vorhanden ist, liegt der Fehler nicht an der Hardware. Das Herausfinden der genauen Fehlerursache kann einige Zeit in Anspruch nehmen.

        • Kürzlich gelöschte Datei: Der häufigste Grund für die Anzeige dieses Fehlers ist eine kürzlich gelöschte Datei. Oft wird eine Datei gelöscht, während ein Prozess sie noch verwendet, sodass der Speicherplatz reserviert bleibt, obwohl die Datei bereits nicht mehr vorhanden ist.
        • Nicht genügend Inodes: Eine weitere häufige Ursache ist nicht genügend Inodes. Inodes sind die Indexseiten eines Unix-Dateisystems, die die Metadaten jeder Datei im Speicher enthalten. Allerdings sind die Inodes nicht unbegrenzt und wenn die Inodes ausgehen, bevor der Speicherplatz verfügbar ist, kann die Fehlermeldung „Kein Speicherplatz mehr auf dem Gerät“ auftreten.
        • Festplattenfehler: Dann besteht natürlich die Möglichkeit, dass die Festplatte einfach ausfällt und ein Großteil des scheinbar freien Speicherplatzes durch fehlerhafte Sektoren belegt wird. Da das System keine Dateien an diese Speicherorte schreiben kann, wird ein Fehler ausgegeben.
        • Fix 1: Prozesse mithilfe gelöschter Dateien neu starten

          Die wahrscheinlichste Ursache für den Fehler „Kein Speicherplatz mehr 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 nur Starten Sie den Vorgang neu ausführen, um den reservierten Speicher freizugeben.

          1. Um den problematischen Prozess zu finden, müssen Sie die Befehle lsof und grep verwenden. Mit dem Befehl lsof erhalten Sie eine Liste aller geöffneten Dateien, die von laufenden Prozessen verwendet werden, und grep kann die Auswahl auf die gelöschten Dateien eingrenzen. Geben Sie also sudo lsof / | ein grep gelöschtwobei / 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_nameneu starten, wobei der Dienstname der Name des Dienstes ist, der bei der Suche gefunden wurde.
            2. .
              1. Wenn es mehrere Prozesse wie diesen gibt oder Sie sich einfach nicht mit der Suche nach bestimmten Diensten herumschlagen möchten, können Sie sie einfach alle mit dem Befehl sudo systemctl daemon-reloadzurücksetzen. Dadurch werden alle Abhängigkeiten neu generiert und dabei alle Änderungen im Dateisystem berücksichtigt.
              2. Danach sollte der vom Prozess belegte Speicherplatz wieder verfügbar sein, sodass Sie Dateien schreiben können, ohne dass Fehler auftreten.

                Fix 2: Inodes überprüfen

                Obwohl jedes Laufwerk über eine große Anzahl von Inodes verfügt, ist diese 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. Aus diesem Grund 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:

                sudo df -i

                Dadurch wird die Gesamtzahl der im Dateisystem vorhandenen Inodes sowie die aktuell verwendete Menge deutlich angezeigt. Wenn auf Ihrem System keine freien Inodes mehr vorhanden sind, ist dies die Ursache für den Fehler „Kein Speicherplatz mehr auf dem Gerät“.

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

                Fix 3: Fehlerhafte Blöcke markieren

                Datenbeschädigung ist das unvermeidliche Schicksal jeder Festplatte. Während bei einem neuen Laufwerk dieses Problem nicht auftritt, werden ältere Festplatten nach und nach „kaputt“.

                Das bedeutet, dass Teile der Festplatte unbrauchbar werden, obwohl das Dateisystem sie noch als funktionsfähig betrachtet. Diese fehlerhaften Blöcke erhöhen fälschlicherweise den scheinbar freien Speicherplatz auf dem Laufwerk, obwohl in Wirklichkeit keine Dateien darauf geschrieben werden können. Dies führt zu der Fehlermeldung „Kein Speicherplatz mehr auf dem Gerät“, da das Betriebssystem versucht, Daten an diesen Speicherorten zu speichern, was jedoch fehlschlägt.

                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 einem Live-CD booten, da Sie innerhalb eines laufenden Laufwerks keine Dateisystemprüfung 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. Sie erhalten dadurch jedoch keine zusätzliche Speicherkapazität. Seien Sie also darauf vorbereitet, einige nutzlose Dateien zu bereinigen, um Speicherplatz auf dem Laufwerk freizugeben.

                Wie lässt sich der Fehler „Kein Speicherplatz mehr auf dem Gerät“ am besten beheben?

                Der übliche Grund für die Fehlermeldung „Kein Speicherplatz mehr auf dem Gerät“ unter 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 Speicher reserviert und verhindert, dass andere Vorgänge Daten in diesen Bereich schreiben.

                Die Behebung dieses Problems ist auch am einfachsten, da Sie lediglich den betreffenden Prozess neu starten müssen. Die anderen Fehlerursachen sind allerdings nicht so einfach zu beheben.

                Ob Ihr Laufwerk von fehlerhaften Datenblöcken geplagt ist oder keine Inodes mehr hat, es gibt keine direkte Möglichkeit, diese Probleme zu beheben. Sie müssen vorhandene Dateien löschen, um Platz für das Schreiben neuer Daten zu schaffen.

                .

                Zusammenhängende Posts:


                30.08.2022