双系统时间不一致问题的解决

sean 编辑于2024-07-21 11:57树莓派及Linux

两个系统时间不一致,机制不同

解决方法:

让linux从hwclock读取的时间就是local时间,而不是utc时间,这样bios时间就是本地时间。

# 从硬件时钟读取到系统时钟

hwclock --hctosys --localtime

即时生效

# 如果硬件时钟是本地时间,则,需要修改/etc/adjtime文件,把其中的UTC换成LOCAL

~$ cat /etc/adjtime 
0.000000 1719283957 0.000000
1719283957
LOCAL

这样即使windows自作主张的修改硬件时间,也可以让linux显示的是本地时间。windows默认是自动更新网络时间的,linux下需要禁止自动更新时间。

(这种情况下是由windows通过网络来校准网络时钟,而linux没有),如果长期在linux下可能会导致系统时间不准的情况,需要设置成原来从网络获取时间然后校准到硬件时钟里.

具体详细操作可以通过,timedatectl来操作,

$ man timedatectl

例如:把rtc 从UTC设置成localtime 模式,这样硬件时钟可以设置成本地时区的时间,从而实现系统和本地时钟时间是一样的。

(其实通过下面这个命令,就可以连带修改了/etc/adjtime里的UTC成LOCAL , 所以直接这一个命令就ok, 如果硬件时间还没改可以用hwclock -w 写一下硬件时间一次性的),以后系统时间会同步到rtc上。具体其他时钟设置 man timedatectl,

set-ntp则开启网络时间同步, 功能类似:systemctl enable --now systemd-timesyncd.service

# timedatectl set-local-rtc yes

# timedatectl set-ntp yes 

最后通过命令来查看具体调整成果:

# timedatectl
               Local time: 日 2023-04-02 08:49:17 CST
           Universal time: 日 2023-04-02 00:49:17 UTC
                 RTC time: 日 2023-04-02 08:49:17
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: yes

关于本站

肥龙软件分享的软件是本站作者开发的免费,无广告,安全可靠,绝不附带任何无关软件,绝不困绑任何插件的实用软件。如果您感觉好用,可以捐赠我们,这样我们可以有更积极的动力去改进升级软件,维持服务器运转,感谢您的捐助,谢谢!

致谢 赞赏/捐助名单

2024-8-13 **军 ¥16.8

更新时间:2024.8.31

联系作者(邮箱)
分类