ntp 不适用于只读 Raspberry Pi

ntp 不适用于只读 Raspberry Pi

我很难理解为什么 ntp(服务)无法在我的树莓派上正确设置时间。

我已将文件系统配置为只读,以保存我的 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 上访问互联网,我可以 ping 池地址,我可以 ping google,我可以 apt 更新(在 rw 中重新安装后)...

我还可以手动发出 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在只读配置中不起作用。

  1. 请务必安装ntpntpdate
    sudo apt install -y ntp ntpdate
    
  2. 复制/lib/systemd/system/ntp.service/etc/systemd/system/ntp.service

    cp /lib/systemd/system/ntp.service /etc/systemd/system/ntp.service
    
  3. 打开/etc/systemd/system/ntp.service并注释掉PrivateTmp=true

    sudo nano /etc/systemd/system/ntp.service
    

现在,它应该可以正常工作了!

作为附加步骤,我现在也/var/lib/ntp按照tmpfs建议安装了这里

  1. 打开/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足够了。

相关内容