Я отримую помилку Fsync не вдалося. Чому?


12

Я спробував змінити часові позначки tcp в екземплярі Ec2 (це Ubuntu 12.04). Я відкрив редактор і змінив значення 1з 0. І коли я намагався зберегти файл, я отримую цю помилку:

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

Я дуже новачок у Ubuntu. Хтось може мені допомогти у цьому?

Відповіді:


27

Ваш редактор, мабуть, робить у цьому файлі смішні речі (файли в / 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

3
Цей шаблон (відлуння VALUE | sudo dd of = / path / to / file) дуже корисний. Велике спасибі!
Малькольм

1
Для мене також працював і для встановлення інших параметрів ядра. Це допомогло встановити інший параметр ядра під назвою enable_tpm. відлуння 1 | sudo dd of = / sys / module / libata / parametri / enable_tpm

1
Яка мета dd of? Все, що я розумію, - це відлуння та луна, але я не розумію, для чого потрібна була дд. Чому б не >натомість?
Аделін

1
@Adelin ddЄ там, щоб виконати запис як root. Решта командного конвеєра не потребує привілеїв, тому dd - це єдина частина, яку ми виконуємо під sudo. Якби ми запустили всю оболонку як корінь, >перенаправлення було б добре. Але я люблю мінімізувати те, що працює з кореневими приватними файлами.
Джеремі Керр

7

Колись назад ми отримували абсолютно таку ж помилку. Після того, як витратили кілька хвилин на розслідування, встановлено, що на пристрої не залишилось місця. Ви можете перевірити, чи це стосується вас. Спробуйте звільнити місце для швидкого усунення проблеми.

Примітка. Це не може бути найкращим технічним описом проблеми, але це може допомогти в швидкому виправленні проблеми. Перевірена відповідь пояснює це більш детально. Моя відповідь була просто поділитися тим, як я виправив це питання.


2
Не знаю, навіщо тебе зняли. Був першим результатом в Google і вирішив мою проблему, тож дуже дякую!
Йоганнес Стадлер

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"


1

Fsync не вдалося ПОПЕРЕДЖЕННЯ: Оригінальний файл може бути загублений або пошкоджений, не виходьте з редактора, поки файл не буде успішно записаний!

Можливо, це проблема з пробілом, як очищення пари файлів, які працювали на мене

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.