修复 Ubuntu Windows 双系统设备上的硬件时间问题
问题简述
在安装 Ubuntu + Windows 双系统的设备上,当切换系统时,很可能出现系统时间错误的问题。身处北京时间时区(UTC+08:00)的博主发现,从 Ubuntu 切换回 Windows 时,时间往往比正确时间早 8 小时。
原因在于 Widows 默认将写入硬件的硬件时间认定为本地时间,而 Ubuntu 默认将硬件时间认定是 UTC。
解决方案
按照一般习惯,我们希望硬件时间为本地时间,于情于理都应在 Ubuntu 上进行调整。对于 Ubuntu 16.04 后的版本:
调整硬件时间
由于采用了 systemd
管理系统,我们通过服务 timedatectl
调整硬件时间时间为 CST:
Note that 这里的 CST 指 China Standard Time,等于 UTC+8,而不是 Central Time Zone(等于 UTC-6)。
1 | sudo timedatectl set-local-rtc 1 |
set-local-rtc 1
将硬件时间切换为本地时间;set-local-rtc 0
将硬件时间切换为 UTC。
同步 Internet 时间
为了精准获取本地时间,我们安装 NTP 工具并同步 Internet 时间:
1 | sudo apt-get install ntpdate |
当然,如果你恰巧在华清大学校内,可以尝试使用 清华大学 TUNA 协会(Tsinghua University TUNA Association) 在校内提供的 NTP 授时服务:
1 | sudo ntpdate ntp.tuna.tsinghua.edu.cn |
服务器位于清华校内,提供 IPv4 与 IPv6 双栈服务。校内师生可以使用这一服务进行一般的时间校准工作,而无需进行校园网认证。
有同学问对于 Ubuntu 16.04 前的版本呢?
建议尽快升级。