我收到 Fsync 失败错误。为什么?

bat*_*man 18 12.04 proc

我试图更改 Ec2 实例(即 Ubuntu 12.04)中的 tcp 时间戳。我打开了编辑器并将值10. 当我尝试保存文件时,出现此错误:

/proc/sys/net/ipv4/tcp_timestamps" E667: Fsync failed
Run Code Online (Sandbox Code Playgroud)

我对 Ubuntu 很陌生。任何人都可以帮我解决这个问题吗?

Jer*_*err 30

您的编辑器可能对该文件做了一些有趣的事情(/proc 中的文件不是实际文件,它们是操作系统较低级别的接口)。虽然更改可能工作正常,但在 proc 中更新内容的常用方法是直接使用 shell 命令,例如:

echo 1 | sudo dd of=/proc/sys/net/ipv4/tcp_timestamps
Run Code Online (Sandbox Code Playgroud)

如果您希望每次启动时都应用此设置,请创建一个名为 的文件/etc/sysctl.d/tcp-timestamps.conf,其中包含以下内容:

net.ipv4.tcp_timestamps = 1
Run Code Online (Sandbox Code Playgroud)

  • 这种模式(echo VALUE | sudo dd of=/path/to/file)非常有用。非常感谢! (3认同)

NIV*_*GAR 13

有时,我们遇到了完全相同的错误。经过几分钟的调查,发现设备上没有剩余空间。您可以检查是否适合您。尝试释放一些存储空间以快速解决问题。

注意:这可能不是问题的最佳技术描述,但它可能有助于快速解决问题。经验证的答案更详细地解释了这一点。我的回答只是分享我是如何解决这个问题的。

  • 不知道为什么你被低估了。是google的第一个结果,解决了我的问题,非常感谢! (4认同)