Saya mendapatkan kesalahan gagal Fsync. Mengapa?

12

Saya mencoba untuk mengubah cap waktu tcp dalam contoh Ec2 (yaitu Ubuntu 12.04). Saya membuka editor dan mengubah nilainya 1dari 0. Dan ketika saya mencoba menyimpan file saya mendapatkan kesalahan ini:

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

Saya sangat baru di Ubuntu. Adakah yang bisa membantu saya dalam hal ini?

batman
sumber

Jawaban:

27

Editor Anda mungkin melakukan hal-hal lucu pada file itu (file dalam / proc bukan file yang sebenarnya, itu adalah antarmuka ke tingkat yang lebih rendah dari sistem operasi). Sementara perubahan mungkin bekerja dengan baik, cara biasa memperbarui hal-hal di proc secara langsung dengan perintah shell, seperti:

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

Jika Anda ingin pengaturan ini diterapkan setiap kali Anda boot, buat file bernama /etc/sysctl.d/tcp-timestamps.conf, berisi yang berikut ini:

net.ipv4.tcp_timestamps = 1
Jeremy Kerr
sumber
3
Pola ini (echo VALUE | sudo dd dari = / path / ke / file) sangat berguna. Terima kasih banyak!
Malcolm
1
Bekerja untuk saya juga untuk ini dan untuk mengatur parameter kernel lainnya. Ini membantu untuk mengatur parameter kernel lain yang disebut allow_tpm. gema 1 | sudo dd dari = / sys / module / libata / parameter / allow_tpm
1
Apa tujuannya dd of? Yang saya mengerti adalah gema dan pipa, tapi saya tidak mengerti mengapa diperlukan. Kenapa tidak >?
Adelin
1
@ Adelin Ada di ddsana untuk melakukan menulis sebagai root. Sisa dari pipeline perintah tidak perlu diistimewakan, jadi dd adalah satu-satunya bagian yang kita jalankan di bawah sudo. Jika kita menjalankan seluruh shell sebagai root, >redirection akan baik-baik saja. Tapi saya suka meminimalkan apa yang dijalankan dengan root privs.
Jeremy Kerr
7

Beberapa waktu lalu kami mendapatkan kesalahan yang sama persis. Setelah menghabiskan beberapa menit dalam penyelidikan ditemukan tidak ada ruang yang tersisa di perangkat. Anda dapat memeriksa apakah itu masalahnya untuk Anda. Coba kosongkan beberapa penyimpanan untuk memperbaiki masalah dengan cepat.

Catatan: Ini bukan deskripsi teknis terbaik dari masalah tetapi mungkin membantu dalam memperbaiki masalah dengan cepat. Jawaban yang terverifikasi menjelaskan ini secara lebih rinci. Jawaban saya adalah hanya membagikan bagaimana saya memperbaiki masalah ini.

NIVESH SENGAR
sumber
2
Tidak tahu mengapa Anda terpilih. Merupakan hasil pertama di google dan menyelesaikan masalah saya, jadi terima kasih banyak!
Johannes Stadler
3

Saya melihat ini dijawab dengan benar sejak lama, tetapi ada perintah yang lebih sederhana:

sudo sysctl net.ipv4.tcp_timestamps=1

Anda juga dapat melakukan hal yang sama dengan pengaturan lain seperti:

sudo sysctl vm.admin_reserve_kbytes=16384

Seperti yang Anda lihat, Anda dapat memodifikasi file apa pun di / proc / sys / dengan menentukan sisa lokasinya, sambil mengubah pembatas dari "/" ke "."

Contoh: "/ proc / sys / net / ipv4 / tcp_timestamps" ditentukan sebagai "net.ipv4.tcp_timestamps"

pengguna8542574
sumber
1

Fsync gagal PERINGATAN: File asli mungkin hilang atau rusak jangan berhenti editor sampai file berhasil ditulis!

Bisa jadi masalah ruang karena membersihkan beberapa file bekerja untuk saya

Bandana D
sumber