Viene visualizzato l'errore Fsync non riuscito. Perché?


12

Ho provato a cambiare i timestamp tcp nell'istanza Ec2 (che è Ubuntu 12.04). Ho aperto l'editor e modificato il valore 1da 0. E quando ho provato a salvare il file ottengo questo errore:

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

Sono molto nuovo su Ubuntu. Qualcuno può aiutarmi in questo?

Risposte:


27

Il tuo editor probabilmente sta facendo cose divertenti a quel file (i file in / proc non sono file reali, sono un'interfaccia per i livelli inferiori del sistema operativo). Mentre la modifica probabilmente funziona bene, il solito modo di aggiornare le cose in proc è direttamente con un comando shell, come:

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

Se si desidera applicare questa impostazione ogni volta che si avvia, creare un file chiamato /etc/sysctl.d/tcp-timestamps.conf, contenente quanto segue:

net.ipv4.tcp_timestamps = 1

3
Questo modello (echo VALUE | sudo dd di = / path / to / file) è molto utile. Grazie mille!
Malcolm,

1
Ha funzionato anche per me per questo e per impostare altri parametri del kernel. Questo ha aiutato a impostare un altro parametro del kernel chiamato allow_tpm. eco 1 | sudo dd di = / sys / module / libata / parametri / allow_tpm

1
Qual è lo scopo di dd of? Tutto quello che capisco è l'eco e la pipe, ma non capisco perché fosse necessario dd. Perché non >invece?
Adelin,

1
@Adelin ddÈ lì per eseguire la scrittura come root. Il resto della pipeline di comando non ha bisogno di essere privilegiato, quindi dd è l'unica parte che eseguiamo su sudo. Se dovessimo eseguire l'intera shell come root, il >reindirizzamento andrebbe bene. Ma mi piace minimizzare ciò che viene eseguito con i privilegi di root.
Jeremy Kerr

7

Qualche tempo fa stavamo ottenendo lo stesso errore esatto. Dopo aver perso diversi minuti nelle indagini, non è stato trovato spazio sul dispositivo. Puoi verificare se è il tuo caso. Prova a liberare spazio di archiviazione per risolvere rapidamente il problema.

Nota: questa non potrebbe essere la migliore descrizione tecnica del problema, ma potrebbe aiutare a risolvere rapidamente il problema. La risposta verificata spiega questo in modo più dettagliato. La mia risposta è stata solo quella di condividere come ho risolto questo problema.


2
Non so perché sei stato sottratto. È stato il primo risultato in Google e ho risolto il mio problema, quindi grazie mille!
Johannes Stadler,

3

Vedo che è stata data una risposta corretta molto tempo fa, ma esiste un comando più semplice:

sudo sysctl net.ipv4.tcp_timestamps=1

Inoltre puoi fare lo stesso con altre impostazioni come:

sudo sysctl vm.admin_reserve_kbytes=16384

Come puoi vedere, puoi modificare qualsiasi file in / proc / sys / specificando il resto della sua posizione, cambiando delimitatore da "/" a "."

Esempio: "/ proc / sys / net / ipv4 / tcp_timestamps" è specificato come "net.ipv4.tcp_timestamps"


1

Fsync fallito AVVERTENZA: il file originale potrebbe andare perso o danneggiato non chiudere l'editor fino a quando il file non viene scritto correttamente!

Potrebbe essere un problema di spazio perché cancellare un paio di file ha funzionato per me

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.