Я получаю ошибку Fsync. Почему?

12

Я попытался изменить временные метки tcp в экземпляре Ec2 (это Ubuntu 12.04). Я открыл редактор и изменил значение 1с 0. И когда я пытался сохранить файл, я получаю эту ошибку:

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

Я очень новичок в Ubuntu. Может ли кто-нибудь помочь мне в этом?

Бэтмен
источник

Ответы:

27

Ваш редактор, вероятно, делает забавные вещи с этим файлом (файлы в / proc не являются реальными файлами, они являются интерфейсом для более низких уровней операционной системы). Хотя изменение, вероятно, работает нормально, обычный способ обновления вещей в proc - это напрямую с помощью команды оболочки, например:

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

Если вы хотите, чтобы этот параметр применялся при каждой загрузке, создайте файл с именем /etc/sysctl.d/tcp-timestamps.conf, содержащий следующее:

net.ipv4.tcp_timestamps = 1
Джереми Керр
источник
3
Этот шаблон (echo VALUE | sudo dd of = / path / to / file) очень полезен. Большое спасибо!
Малкольм
1
У меня тоже работал для этого и для установки других параметров ядра. Это помогло установить другой параметр ядра с именем allow_tpm. эхо 1 | sudo dd of = / sys / module / libata / parameters / allow_tpm
1
Какова цель dd of? Все, что я понимаю, это эхо и труба, но я не понимаю, зачем был нужен dd. Почему бы не >вместо этого?
Аделин
1
@Adelin Для ddвыполнения записи от имени root. Остальная часть командного конвейера не должна быть привилегированной, поэтому dd - единственная часть, которую мы запускаем под sudo. Если бы мы запускали всю оболочку от имени root, >перенаправление было бы хорошо. Но мне нравится минимизировать то, что запускается с привилегиями root.
Джереми Керр
7

Некоторое время назад мы получили точно такую ​​же ошибку. Потратив несколько минут на расследование, выяснилось, что на устройстве не осталось места. Вы можете проверить, так ли это для вас. Попробуйте освободить немного памяти, чтобы быстро решить проблему.

Примечание. Это может быть не лучшим техническим описанием проблемы, но может помочь в быстром ее устранении. Подтвержденный ответ объясняет это более подробно. Мой ответ был просто, чтобы поделиться тем, как я исправил эту проблему.

НИВЕШСКИЙ СЕНГАР
источник
2
Не знаю, почему ты получил отрицательный голос. Был первый результат в гугле и решил мою проблему, так что большое спасибо!
Йоханнес Штадлер
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"

user8542574
источник
1

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

Может быть проблема с космосом, так как очистка нескольких файлов работает для меня

Бандана Д
источник