Fsync failedエラーが発生します。どうして?


12

Ec2インスタンス(Ubuntu 12.04)のtcpタイムスタンプを変更しようとしました。エディターを開き、値を1から変更しました0。そして、ファイルを保存しようとすると、次のエラーが表示されます。

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

私はUbuntuが初めてです。誰でもこれで私を助けることができますか?

回答:


27

エディターはおそらくそのファイルに対して面白いことをしているでしょう(/ proc内のファイルは実際のファイルではなく、オペレーティングシステムの下位レベルへのインターフェイスです)。変更はおそらく大丈夫ですが、procで物事を更新する通常の方法は、次のようなシェルコマンドを使用することです。

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

起動するたびにこの設定を適用する場合は/etc/sysctl.d/tcp-timestamps.conf、次のファイルを作成します:

net.ipv4.tcp_timestamps = 1

3
このパターン(echo VALUE | sudo dd of = / path / to / file)は非常に便利です。どうもありがとうございました!
マルコム

1
私もこのために、他のカーネルパラメータを設定するために働きました。これは、allow_tpmと呼ばれる別のカーネルパラメーターの設定に役立ちました。エコー1 | sudo dd of = / sys / module / libata / parameters / allow_tpm

1
の目的はdd of何ですか?私が理解しているのは、エコーとパイプだけですが、ddが必要な理由はわかりません。なぜ>代わりに?
アデリン

1
@Adelin ddは、ルートとして書き込みを実行します。コマンドパイプラインの残りの部分は特権を必要としないため、sudoで実行するのはddだけです。シェル全体をルートとして実行する場合、>リダイレクトは問題ありません。しかし、私はroot権限で実行されるものを最小限に抑えたいです。
ジェレミーカー

7

しばらくすると、まったく同じエラーが発生していました。調査で数分を無駄にした後、デバイスにスペースが残っていないことがわかりました。それがあなたに当てはまるかどうかを確認できます。問題をすばやく修正するには、ストレージを解放してください。

注:これは、問題の最良の技術的説明とは限りませんが、問題を迅速に修正するのに役立つ場合があります。検証済みの回答では、これについて詳しく説明しています。私の答えは、この問題をどのように修正したかを共有することでした。


2
あなたがなぜ投票されたのか分からない。グーグルの最初の結果であり、私の問題を解決したので、どうもありがとう!
ヨハネスシュタドラー

3

私はこれがずっと前に正しく答えられていたようですが、もっと簡単なコマンドがあります:

sudo sysctl net.ipv4.tcp_timestamps=1

また、次のような他の設定でも同じことができます。

sudo sysctl vm.admin_reserve_kbytes=16384

ご覧のとおり、区切り文字を「/」から「。」に変更しながら、残りの場所を指定することにより、/ proc / sys /内の任意のファイルを変更できます。

例:「/ proc / sys / net / ipv4 / tcp_timestamps」は「net.ipv4.tcp_timestamps」として指定されます


1

Fsyncの失敗警告:元のファイルが失われたり破損したりする可能性があります。ファイルが正常に書き込まれるまでエディターを終了しないでください。

いくつかのファイルをクリアすると、スペースの問題になる可能性があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.