我正在运行 Voyage Linux(基于 Debian 的发行版),但无法获取正确的日期。当我查看时,/var/log/daemon.log
我看到以下内容:
Nov 18 11:04:07 voyage ntpdate[1676]: step time server 203.97.109.165 offset 2141299826.398106 sec
Aug 20 17:06:20 voyage ntpdate[1710]: step time server 119.47.118.129 offset 2141299826.401065 sec
Jun 28 06:36:47 voyage ntpdate[1744]: step time server 203.97.109.165 offset 2141299826.460901 sec
正确的日期是,Nov 18 11:04:07
但现在更改为六月中旬。我怎样才能解决这个问题?
答案1
[一个很晚的答案,但为其他可能遵循的答案添加了]
限制运行 ntpdate 的接口可能有用,但听起来您的主要问题是缺乏功能正常的实时时钟硬件,因此初始偏移量很大。
我建议您查看 fake_hwclock 包。来自包装说明:
封装:fake-hwclock (0.5)
在没有 RTC 硬件的机器上保存/恢复系统时钟
有些机器没有可用的实时时钟 (RTC) 单元,或者没有适用于现有硬件的驱动程序。 fake-hwclock 是一组简单的脚本,用于定期保存内核的当前时钟(包括关机时)并在启动时恢复它,以便系统时钟至少保持接近实时。这将阻止系统相信自己已经回到 1970 年而可能导致的一些问题,例如需要在每次启动时执行文件系统检查。
除此之外,仍然建议使用 NTP 来处理硬件停止或重新启动时的假时钟“漂移”。
答案2
我找到了解决方案这个网站。 NTPdate 试图在每次接口启动时更新日期,在我的例子中,在启动过程中更新了 3 次。因此,我修改/etc/network/if-up.d/ntpdate
为仅ntpdate
在eth0
上升时运行,将以下内容添加到脚本顶部:
# Only update the date if eth0 goes up.
if [ "$IFACE" != eth0 ]; then
exit 0
fi