Frage Es kann nicht auf die Festplatte geschrieben werden, aber die Festplatte ist nicht voll


Ich benutze Ubuntu 12.04 und kann nicht in irgendeine Datei schreiben, nicht einmal als root, oder andere Operationen ausführen, die geschrieben werden müssen. Keiner kann irgendeinen Prozess schreiben, also scheitern alle. df sagt, ich habe genug Platz:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       30G   14G   15G  48% /
udev            984M  4.0K  984M   1% /dev
tmpfs           399M  668K  399M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            997M     0  997M   0% /run/shm

Alle Ergebnisse, die ich für "kann nicht auf Platte schreiben" finden, sind legitimerweise vollständige Festplatten. Ich weiß nicht einmal, wo ich anfangen soll. Das Problem tauchte heute Morgen aus dem Nichts auf.

Der letzte Protokolleintrag von PHP lautet:

fehlgeschlagen: Kein Platz mehr auf dem Gerät (28)

Vim sagt:

Kann zum Schreiben nicht öffnen (Datei)

Andere Anwendungen geben ähnliche Fehler.

Nach dem Löschen von ~ 1GB nur um sicher zu sein, bleibt das Problem bestehen. Ich habe auch neu gestartet.

df -i sagt

Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/xvda1     1966080 1966080      0  100% /
udev            251890     378 251512    1% /dev
tmpfs           255153     296 254857    1% /run
none            255153       4 255149    1% /run/lock
none            255153       1 255152    1% /run/shm

35
2017-10-25 16:10


Ursprung


Bitte poste die Ausgabe von "df -i". - EEAA
@EEEAA bearbeitet. Du hast recht, sagt df -i zu 100%. Was bedeutet das? Warum wäre es anders? - felwithe
IIRC, zu viele Dateien in einem einzigen Verzeichnis haben ähnliche, wenn nicht identische Symptome. Was "zu viele" ist, wird zwischen Dateisystemen variieren. - MSalters


Antworten:


Sie haben keine Inodes mehr. Wahrscheinlich haben Sie irgendwo ein Verzeichnis mit vielen sehr kleinen Dateien.


59
2017-10-25 16:29



Ich wollte nur hinzufügen, dass ich es nicht einmal wusste rm  könnte Scheitern. Das war eine Ausbildung. - felwithe
@felwithe, das kann ich mir vorstellen find . -name sess\* -exec rm {} + hätte funktioniert. - Carsten S
@felwithe Was andere vorgeschlagen haben. rm  wahrscheinlich hat gut funktioniert, aber die Shell erweitert die * glob in viel zu viele Daten, und barfed, bevor es sogar zu dem Punkt kam aufrufend rm. - α CVn
@ CarstenS: Oder find . -name sess\* -delete an die ich mich leichter erinnern kann und die im Allgemeinen effizienter ist. - MSalters
@Kaslai das Limit gibt es nicht RAM, aber das System Limit ARG_MAX. Der POSIX-Standard spezifiziert nicht genau, wie Befehlszeilenargumente leider gegen ARG_MAX gemessen werden. Einige Implementierungen haben kein Limit und definieren daher ARG_MAX nicht, aber dies ist keine beliebte Option, da zu viele Programme nicht kompiliert werden können. - James Youngman


Offensichtlich hat das OP eine Antwort auf sein spezielles Problem. Aus Gründen der Vollständigkeit können die Symptome des OP jedoch auch auftreten, wenn das Dateisystem readmentiert wurde und nur gelesen wurde. Dies ist mir bei der Verwendung einer Linux-VM passiert, deren Speicher auf einem Cluster-Plattensystem mit seltenen zeitweiligen Fehlern behaftet war. Gelegentlich würden die Fehler dazu führen, dass das / die Dateisystem (e) nur gelesen werden. Das möglicherweise beobachtbare externe Symptom war, dass verschiedene Dienste nicht mehr reagierten, da RAM voll war (mit unstossbaren Plattenschreibvorgängen).

Zu dieser Zeit bestand die einzige Lösung darin, das System neu zu starten (was auch immer ungeschriebene Logs verloren hatten). Versuche, RW erneut zu mounten, sind fehlgeschlagen. (Ich erinnere mich leider nicht an die Fehlermeldungen, die beim Versuch dieser Remounts zurückgegeben wurden.)

Also, ..., nicht das OP-Problem, aber jemand anderes, der auf dieser Seite ankommt, könnte von dieser Information profitieren.


7
2017-10-25 19:27



Nicht wirklich; Wenn das Dateisystem remounted read nur gelesen wurde, erhalten Sie einen Fehler, der besagt, dass das Dateisystem schreibgeschützt ist und nicht über genügend Speicherplatz verfügt. - psusi
@psusi: Ich nicht. Ich habe verschiedene Fehler, einschließlich "Dateisystem voll". Wenn sich das in den letzten zwei oder drei Jahren geändert hat, wäre das eine gute Sache. - Eric Towers
Ich habe gerade neulich versucht, eine Datei in ein schreibgeschütztes ZFS-Dateisystem auf Linux zu verschieben. Der Fehler sagte ganz klar "schreibgeschütztes Dateisystem". - α CVn
Nee; so seit über 30 Jahren. Ein Schreiben in eine schreibgeschützte fs gibt -EROFS zurück; Ein Schreibvorgang auf eine volle fs gibt -ENOSPC zurück. - psusi
@psusi: Ich sehe, dass du im Fantasy-Universum lebst, wo Programmierer immer das Richtige tun, anstatt ihre eigenen Fehlermeldungen zu schreiben. Ich glaube nicht, dass ich dort lebe. - Eric Towers