Recibo un error de error de Fsync. ¿Por qué?

12

Traté de cambiar las marcas de tiempo tcp en la instancia de Ec2 (que es Ubuntu 12.04). Abrí el editor y cambié el valor 1de 0. Y cuando intenté guardar el archivo, recibí este error:

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

Soy muy nuevo en Ubuntu. ¿Alguien puede ayudarme en esto?

hombre murciélago
fuente

Respuestas:

27

Su editor probablemente esté haciendo cosas divertidas en ese archivo (los archivos en / proc no son archivos reales, son una interfaz para los niveles inferiores del sistema operativo). Si bien el cambio probablemente funciona bien, la forma habitual de actualizar las cosas en proc es directamente con un comando de shell, como:

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

Si desea que esta configuración se aplique cada vez que inicie, cree un archivo llamado que /etc/sysctl.d/tcp-timestamps.confcontenga lo siguiente:

net.ipv4.tcp_timestamps = 1
Jeremy Kerr
fuente
3
Este patrón (echo VALUE | sudo dd of = / path / to / file) es muy útil. ¡Muchas gracias!
Malcolm
1
También me funcionó para esto y para establecer otros parámetros del kernel. Esto ayudó a configurar otro parámetro del núcleo llamado allow_tpm. echo 1 | sudo dd de = / sys / module / libata / parameters / allow_tpm
1
¿Para qué sirve dd of? Todo lo que entiendo es el eco y la tubería, pero no entiendo por qué se necesitaba dd. ¿Por qué no en su >lugar?
Adelin
1
@Adelin The ddestá allí para realizar la escritura como root. El resto de la línea de comandos no necesita ser privilegiado, por lo que dd es la única parte que ejecutamos bajo sudo. Si tuviéramos que ejecutar todo el shell como root, la >redirección estaría bien. Pero me gusta minimizar lo que se ejecuta con root privs.
Jeremy Kerr
7

En algún momento, recibimos exactamente el mismo error. Después de perder varios minutos en la investigación descubrió que no quedaba espacio en el dispositivo. Puede verificar si es el caso para usted. Intente liberar algo de almacenamiento para solucionar rápidamente el problema.

Nota: Esta podría no ser la mejor descripción técnica del problema, pero podría ayudar a solucionarlo rápidamente. La respuesta verificada explica esto con más detalle. Mi respuesta fue solo compartir cómo solucioné este problema.

NIVESH SENGAR
fuente
2
No sé por qué te votaron mal. Fue el primer resultado en google y resolvió mi problema, así que muchas gracias!
Johannes Stadler
3

Veo que esto se respondió correctamente hace mucho tiempo, pero hay un comando más simple:

sudo sysctl net.ipv4.tcp_timestamps=1

También puede hacer lo mismo con otras configuraciones como:

sudo sysctl vm.admin_reserve_kbytes=16384

Como puede ver, puede modificar cualquier archivo en / proc / sys / especificando el resto de su ubicación, mientras cambia el delimitador de "/" a "".

Ejemplo: "/ proc / sys / net / ipv4 / tcp_timestamps" se especifica como "net.ipv4.tcp_timestamps"

usuario8542574
fuente
1

Fsync falló ADVERTENCIA: El archivo original puede perderse o dañarse. ¡No abandone el editor hasta que el archivo se haya escrito correctamente!

Podría ser un problema de espacio, ya que la limpieza de un par de archivos funcionó para mí

Bandana D
fuente