为什么 systemd 没有设置我的系统时间?

为什么 systemd 没有设置我的系统时间?

我正在运行 Arch Linux。最近,当我打开电脑时,系统时间设置为 1970 年 1 月 1 日 1:00 - 大概 1:00 是时区转换的结果。

有人知道为什么systemd我的系统时间设置不正确吗?

一些有用的输出(我认为)...

[root@alex-desktop network.d]# timedatectl status
      Local time: Sun 2013-06-09 16:33:04 BST
  Universal time: Sun 2013-06-09 15:33:04 UTC
        RTC time: Sun 2013-06-09 15:18:50
        Timezone: Europe/London (BST, +0100)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: yes
 Last DST change: DST began at
                  Sun 2013-03-31 00:59:59 GMT
                  Sun 2013-03-31 02:00:00 BST
 Next DST change: DST ends (the clock jumps one hour backwards) at
                  Sun 2013-10-27 01:59:59 BST
                  Sun 2013-10-27 01:00:00 GMT

答案1

我在使用 Raspberry Pi 时也遇到了类似的问题(显然没有实时时钟),所以要么你正在使用一个类似的设备,也没有这个电池(不太可能),要么你的电脑比较旧,而且 RTC 的电池,也就是CMOS 电池已耗尽。

根据您的描述,timedatectl status您已经启用了 NTP,它应该会查询时间服务器并为您设置时间。但是,如果您在启动计算机时设置时间时未连接到互联网,这似乎不起作用,如果您使用 WLAN 并且连接需要很长时间,则可能会发生这种情况。

最后,我的解决方案是为 root 添加一个 cron 作业(su -c "crontab -e")每分钟运行ntpd -s一次以强制检查时间,如下所示:

# sync network time every minute (this is sad)
* * * * *               ntpd -s

问题解决了。

ntpdntpd.conf 手册页提到了一个minpoll选项,据称该选项可用于使 ntpd 检查频率达到 8 秒。这显然要好 9000 倍以上,如果效果符合预期,我将更新我的答案。

相关内容