![如果没有 NTP 服务器且 RTC 时钟损坏,Ubuntu 如何确定日期/时间?](https://linux22.com/image/915776/%E5%A6%82%E6%9E%9C%E6%B2%A1%E6%9C%89%20NTP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%94%20RTC%20%E6%97%B6%E9%92%9F%E6%8D%9F%E5%9D%8F%EF%BC%8CUbuntu%20%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9A%E6%97%A5%E6%9C%9F%2F%E6%97%B6%E9%97%B4%EF%BC%9F.png)
我正在尝试确定 Ubuntu 18.04 如何确定如何为 RTC 时钟损坏(电池已移除)且无法访问 NTP 服务器且 systemd-timesyncd 已禁用的计算机设置系统时钟。启动时,时间始终为 2018-01-28 10:58:48 EST。这看起来非常类似于
防止时钟在 Ubuntu Server 构建时间之后前进到系统时间
报告的时间是 2018-01-28 15:58。他得到的唯一建议是关闭 timesyncd,我已经禁用了它,但这也没有解决他的问题。
通常情况下,应用程序启动后,会收到 GPS 信号,设置时钟并开始运行。但实际上它并不需要 GPS 来运行。它需要的是时钟不倒退。如果我知道 Ubuntu 如何决定将时间设置为 2018-01-28 10:58:48 EST,我想我可以解决这个问题。
我尝试过的一件事是启用 systemd-timesyncd。虽然计算机通常不连接到互联网,但作为维护程序,我可能会将其连接。然后我得到正确的时间,它会触摸 /var/lib/private/systemd/timesync/clock 中的一个文件。如果我断开与互联网的连接并手动触摸该文件,下次启动将使用该时间。但即使是这种方法,虽然更好,但仍然可以将时钟倒转,因为它有效地记住了计算机上次连接到互联网的时间。
除此之外,如果 Ubuntu 无法确定时间,并且该时间不是某年的 1 月 1 日之类的时间,那么它为什么会在启动时使用相同的时间,这似乎是一个谜。如果我知道 Linux 在做什么,我可能能够想出一个解决方案。到目前为止,除了上面的 URL,我发现了很多“如何使用 NTP”和“使用 NTP 是个好主意”等。如果可以的话我会这样做,但除了维护模式外没有互联网。
答案1
由于您移除了 RTC 运行所需的电池,因此当插入墙壁电源时,它会使用 BIOS/固件中的任何内容,并且大多数(但不是全部)在连接到主电源时从 1980-01-01 12:00:01 AM 开始计时。大多数运行都比较准确,但不够准确,因此人们想出了 NTP 来使其真正准确。
您的某个地方有一个可执行文件,将其设置为从 2018-01-28 10:58:48 EST 开始。
大多数 PC 不具备 GPS 功能,而是使用 NTP。平板电脑和手机则具备辅助GPS它有一个 GPS 波段接收器,但台式机和服务器很少有这个功能;只有一些笔记本电脑有。