hwclock,与系统时钟不同步

hwclock,与系统时钟不同步

我的硬件时钟总是不同步。我几次将其设置为系统时间,但它总是回到比系统时间快 5 小时的状态。

这是正常的吗?这会造成麻烦吗?为什么我的系统时钟运行正常,而我的硬件时钟却不能?

答案1

我不知道这是否正常,因为我不知道硬件时钟为什么会发疯。如果是硬件问题,您可以使用软件解决方法,直到修复它为止。

hwclock命令应该可以满足您的需要。您可以以 root 身份在终端中使用它,以便从硬件时钟设置系统时钟,或者从系统时钟设置硬件时钟(取决于哪一个更可靠):

hwclock --hctosys 或者 hwclock --systohc

hwclock手册页中:

   -s, --hctosys
              Set the System Time from the Hardware Clock.

              [...] This  is  a  good  option  to  use  in one of the system startup
              scripts.

       -w, --systohc
              Set the Hardware Clock to the current System Time.

答案2

根据运行 hwclock 函数时使用的最后一个选项,系统时钟将设置为 UTC 或本地。如果您运行:

hwclock -w --localtime

这应该将您的系统时钟写入本地时间而不是 UTC,随后应使用本地时间设置并在启动时读取它。如果您手动设置系统时钟并且 hwclock 最后指定为 UTC,那么它会自动将其设置回 UTC。

答案3

如果总是比 UTC 早 5 个小时,这听起来像是时区问题。在这种情况下,您的硬件时钟很可能设置为本地时间,而 Linux 系统时间始终设置为 UTC。如果您的时区与 UTC 相差 5 个小时,那么就是 5 个小时。

在这种情况下,除了“hwclock”的“--systohc”选项之外,您还应该查看“--localtime”和“--utc”选项。

相关内容