Ich erhalte den Fehler Fsync fehlgeschlagen. Warum?

11

Ich habe versucht, die TCP-Zeitstempel in der Ec2-Instanz (Ubuntu 12.04) zu ändern. Ich habe den Editor geöffnet und den Wert 1von geändert 0. Und als ich versuchte, die Datei zu speichern, erhalte ich folgende Fehlermeldung:

/proc/sys/net/ipv4/tcp_timestamps" E667: Fsync failed

Ich bin sehr neu in Ubuntu. Kann mir jemand dabei helfen?

Batman
quelle

Antworten:

26

Ihr Editor macht wahrscheinlich lustige Dinge mit dieser Datei (Dateien in / proc sind keine tatsächlichen Dateien, sie sind eine Schnittstelle zu niedrigeren Ebenen des Betriebssystems). Während die Änderung wahrscheinlich in Ordnung ist, erfolgt die Aktualisierung von Dingen in proc normalerweise direkt mit einem Shell-Befehl, wie z.

echo 1 | sudo dd of=/proc/sys/net/ipv4/tcp_timestamps

Wenn Sie möchten, dass diese Einstellung bei jedem Start angewendet wird, erstellen Sie eine Datei /etc/sysctl.d/tcp-timestamps.confmit dem Namen:

net.ipv4.tcp_timestamps = 1
Jeremy Kerr
quelle
3
Dieses Muster (echo VALUE | sudo dd von = / path / to / file) ist sehr nützlich. Vielen Dank!
Malcolm
1
Hat auch für mich funktioniert und andere Kernel-Parameter eingestellt. Dies half beim Festlegen eines weiteren Kernel-Parameters namens allow_tpm. Echo 1 | sudo dd von = / sys / module / libata / parameters / allow_tpm
1
Was ist der Zweck von dd of? Ich verstehe nur das Echo und die Pfeife, aber ich verstehe nicht, warum dd benötigt wurde. Warum nicht >stattdessen?
Adelin
1
@Adelin Das ddist da, um das Schreiben als root durchzuführen. Der Rest der Befehlspipeline muss nicht privilegiert sein, daher ist dd der einzige Teil, den wir unter sudo ausführen. Wenn wir die gesamte Shell als Root ausführen >würden, wäre die Umleitung in Ordnung. Aber ich mag es zu minimieren, was mit Root-Privilegien ausgeführt wird.
Jeremy Kerr
6

Vor einiger Zeit bekamen wir genau den gleichen Fehler. Nach mehrminütiger Untersuchung wurde festgestellt, dass auf dem Gerät kein Platz mehr vorhanden war. Sie können überprüfen, ob dies bei Ihnen der Fall ist. Geben Sie Speicherplatz frei, um das Problem schnell zu beheben.

NIVESH SENGAR
quelle
2
Ich weiß nicht, warum du herabgestimmt wurdest. War das erste Ergebnis in Google und hat mein Problem gelöst, also vielen Dank!
Johannes Stadler
3

Ich sehe, dass dies vor langer Zeit richtig beantwortet wurde, aber es gibt einen einfacheren Befehl:

sudo sysctl net.ipv4.tcp_timestamps=1

Sie können dasselbe auch mit anderen Einstellungen wie:

sudo sysctl vm.admin_reserve_kbytes=16384

Wie Sie sehen können, können Sie jede Datei in / proc / sys / ändern, indem Sie den Rest ihres Speicherorts angeben und gleichzeitig das Trennzeichen von "/" in "ändern."

Beispiel: "/ proc / sys / net / ipv4 / tcp_timestamps" wird als "net.ipv4.tcp_timestamps" angegeben.

user8542574
quelle
1

Fsync fehlgeschlagen WARNUNG: Die Originaldatei kann verloren gehen oder beschädigt werden. Beenden Sie den Editor erst, wenn die Datei erfolgreich geschrieben wurde!

Könnte ein Platzproblem sein, da das Löschen einiger Dateien für mich funktioniert hat

Bandana D.
quelle