上网本一直在浪费时间

nmu*_*ntz 2 linux system-date date-time

我拥有一台联想 S10,它运行 Arch Linux 作为唯一的操作系统。由于一些我仍然无法弄清楚的奇怪原因,它一直在浪费时间。虽然在 BIOS 中有正确的设置。

在linux下,时区设置正确,几个小时内一切正常。如果我设置了正确的时间并重新启动计算机,它将显示正确的时间设置。但是,如果我关闭计算机并在几个小时后重新打开,时间又会再次混乱。

我曾尝试使用 NTP,虽然它暂时解决了问题,但它并不总是一个选项,因为它并不总是连接到互联网。

关于如何永久解决此问题的任何想法?

Sha*_*mer 5

确保您的 NTP 客户端也设置硬件时钟(通过 BIOS),而不仅仅是 Linux 软件时钟。

您可以使用hwclock程序(位于/usr/sbin或 中/sbin)检查硬件时钟,并使用date命令将其与软件时钟进行比较。

无聊的解释

您的计算机中有一个小芯片,称为“实时时钟”或 RTC。这个时钟靠电池供电,可以像手表一样计时。当计算机运行时,会读取时钟,这就是您的操作系统在启动时知道时间的方式。但是在第一次读取之后,操作系统不必使用 RTC - 它可以简单地继续自己计算时间(秒、小时等等)。每当用户询问它的时间时,它可以简单地报告自己的时间(而不是 RTC 报告的时间)。

当 RTC 没有合适的时间时,就会出现棘手的问题。当您尝试更正时钟时,实际上是操作系统为您执行此操作。操作系统只能更新其内部、软件、时钟。在这种情况下,一旦您重新启动,错误的时间将再次从 RTC 加载。我仍然记得 DOS 时代的这一点。您必须进入 BIOS 更改时钟。啊。

无论如何,棺材上的最后一个钉子是:从 RTC 读取的时间只是一个数字。并且允许操作系统更改该数字。例如,它可能希望在该数字上增加 3,600,000 毫秒(1 小时),以便 GMT+1 用户感觉舒适。其他时候,时区设置有些奇怪。

无论哪种方式,从操作系统内部设置硬件时钟往往可以解决这个问题,因为它经历了相同的过滤过程。因此,即使您的操作系统为 RTC 增加了 5 分钟,它也会在更新 RTC 之前减去 5 分钟。

祝你好运!