
Я пытаюсь понять, ПОЧЕМУ ntp (служба) не устанавливает правильное время на моем Raspberry Pi.
Я настроил файловую систему как доступную только для чтения, чтобы сохранить данные на SD-карте, но раньше это работало, и я не могу понять, почему ntp теперь не работает.
В логах я вижу много-много строк такого сообщения:
ntpd[415]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
ntpd[415]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
ntpd[415]: error resolving pool 0.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 1.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 2.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 3.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 3.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 2.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 1.debian.pool.ntp.org: Temporary failure in name resolution (-3)
ntpd[415]: error resolving pool 0.debian.pool.ntp.org: Temporary failure in name resolution (-3)
Мой /etc/resolv.conf выглядит так:
# Generated by resolvconf
nameserver 8.8.8.8
nameserver 192.168.1.22
У меня есть доступ к Интернету на этом RPi, я могу пинговать адреса пула, я могу пинговать Google, я могу обновлять apt (после перемонтирования в режим чтения/записи)...
Я также могу вручную ввести команду ntpdate и ЭТО РАБОТАЕТ!
$ sudo ntpdate -u 0.fr.pool.ntp.org 1.fr.pool.ntp.org
24 Nov 23:04:34 ntpdate[578]: step time server 129.250.35.250 offset 2418.621037 sec
Так что да, я тут волосы дергаю. Не могу понять, почему не работает служба ntp. Я облазил весь интернет, похоже, ни у кого нет такой проблемы (у всех неисправный dns, но у меня работает)
Моя настройка только для чтения следующая:https://hallard.me/raspberry-pi-read-only/
Ребята, у вас есть какие-нибудь идеи?
решение1
Я нашел этот вопрос, когда столкнулся с похожей проблемой.
Проблема оказалась в том, что systemd
эта PrivateTmp
функция не работает в конфигурации «только для чтения».
- Обязательно установите
ntp
иntpdate
sudo apt install -y ntp ntpdate
Скопировать
/lib/systemd/system/ntp.service
в/etc/systemd/system/ntp.service
cp /lib/systemd/system/ntp.service /etc/systemd/system/ntp.service
Откройте
/etc/systemd/system/ntp.service
и закомментируйтеPrivateTmp=true
.sudo nano /etc/systemd/system/ntp.service
Теперь все должно работать правильно!
В качестве дополнительного шага я также установил, /var/lib/ntp
как tmpfs
рекомендованоздесь
- Открыть
/etc/fstab
и добавитьtmpfs /var/lib/ntp tmpfs nosuid,nodev 0 0
в конец файла.sudo nano /etc/fstab
В моем случае это не показалось необходимым, но там есть дополнительные сведения о работе в файловой системе, доступной только для чтения.
решение2
Ответ Марка Роджераработает, однако я думаю, что лучше переопределить пользователь:
echo -e '[Service]\nPrivateTmp=false' > /etc/systemd/system/ntp.service.d/override.conf
Затем перезагрузите компьютер или, возможно, systemctl daemon-reload
этого будет достаточно.