我的硬件时钟总是不同步。我几次将其设置为系统时间,但它总是回到比系统时间快 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”选项。