Je reçois une erreur d'échec de Fsync. Pourquoi?

12

J'ai essayé de changer les horodatages TCP dans l'instance Ec2 (qui est Ubuntu 12.04). J'ai ouvert l'éditeur et changé la valeur 1de 0. Et quand j'ai essayé d'enregistrer le fichier, j'obtiens cette erreur:

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

Je suis très nouveau sur Ubuntu. Quelqu'un peut-il m'aider?

homme chauve-souris
la source

Réponses:

27

Votre éditeur fait probablement des choses amusantes à ce fichier (les fichiers dans / proc ne sont pas des fichiers réels, ils sont une interface vers des niveaux inférieurs du système d'exploitation). Bien que le changement fonctionne probablement bien, la façon habituelle de mettre à jour les choses dans proc est directement avec une commande shell, comme:

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

Si vous souhaitez que ce paramètre soit appliqué à chaque démarrage, créez un fichier appelé /etc/sysctl.d/tcp-timestamps.confcontenant les éléments suivants:

net.ipv4.tcp_timestamps = 1
Jeremy Kerr
la source
3
Ce modèle (echo VALUE | sudo dd de = / chemin / vers / fichier) est très utile. Merci beaucoup!
Malcolm
1
A également fonctionné pour moi et pour définir d'autres paramètres du noyau. Cela a aidé à définir un autre paramètre du noyau appelé allow_tpm. écho 1 | sudo dd of = / sys / module / libata / parameters / allow_tpm
1
Quel est le but de dd of? Tout ce que je comprends, c'est l'écho et la pipe, mais je ne comprends pas pourquoi dd était nécessaire. Pourquoi pas à la >place?
Adelin
1
Le @Adelin ddest là pour effectuer l'écriture en tant que root. Le reste de la canalisation de commande n'a pas besoin d'être privilégiée, si dd est la seule partie que nous courons sudo. Si nous devions courir la coquille entière en tant que root, la >redirection serait bien. Mais j'aime minimiser ce qui est exécuté avec les privilèges root.
Jeremy Kerr
7

Quelque temps en arrière nous obtenions exactement la même erreur. Après avoir perdu plusieurs minutes en enquête a révélé qu'il n'y avait pas de place sur l'appareil. Vous pouvez vérifier si tel est le cas pour vous. Essayez de libérer un espace de stockage pour résoudre rapidement la question.

Note: Ce ne pouvait pas être la meilleure description technique du problème, mais il peut aider à fixer rapidement la question. La réponse Verified expliquer cela plus en détail. Ma réponse était juste pour partager la façon dont je résolu ce problème.

NIVESH SENGAR
la source
2
Je ne sais pas pourquoi vous avez été downvoted. Ce fut le premier résultat dans google et résolu mon problème, alors merci beaucoup!
Johannes Stadler
3

Je vois cela a été répondu correctement il y a longtemps, mais il est plus simple commande:

sudo sysctl net.ipv4.tcp_timestamps=1

vous pouvez également faire la même chose avec d'autres paramètres tels que:

sudo sysctl vm.admin_reserve_kbytes=16384

Comme vous pouvez le voir, vous pouvez modifier tout fichier dans / / proc / sys en spécifiant le reste de son emplacement, tout en delimiter changeant de « / » à « »

Exemple: "/ proc / sys / net / ipv4 / tcp_timestamps" est spécifié comme "net.ipv4.tcp_timestamps"

user8542574
la source
1

Fsync échoué ATTENTION: le fichier d'origine peut être perdu ou endommagé, ne quittez pas l'éditeur jusqu'à ce que le fichier est écrit avec succès!

Peut-être un problème de l'espace comme compensation un couple de fichiers travaillé pour moi

Bandana D
la source