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

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

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

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

我对 Ubuntu 还很陌生。有人能帮我解决这个问题吗?

答案1

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

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

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

net.ipv4.tcp_timestamps = 1

答案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”

答案4

Fsync 失败警告:原始文件可能丢失或损坏,请勿退出编辑器,直到文件成功写入!

可能是空间问题,因为清理几个文件对我有用

相关内容