admin管理员组文章数量:1333531
症状
主要症状是安装 Windows 和 Linux 系统后 Windows 的时间会比慢8个小时。
当我们将 Windows 时间调整正确之后,Linux 这边如果未联网则时间会快8小时,而联网时我们通常看不到 Linux 时间快,但是回到 Windows 后时间又慢了。 orz
原因
电脑系统中有两个时间:
- 硬件时间:保存在主板中,信息比较少没时区、夏令时的概念
- 系统时间:又系统维护,独立于硬件时间,拥有时区、夏令时等信息
系统时间又因为系统的不同使用了两种时间管理办法:
- localtime:本地时间,目前只有 Windows 在使用。
- UTC:是一种世界标准时间,Linux 这类类 UNIX 多数会使用,UTC 加减时区之后才是本地时间。
然后问题就来了
Windows 认为硬件时间就是本地时间,所以会直接把主板中的时间拿来当做当前的时间。设置或同步时间后也会把“正确”的时间写入主板。
而 Linux 认为硬件时间是 UTC 标准时间,Linux 时间同步后会把“正确”的时间 -8 之后作为标准 UTC 标准时间写入主板。
而貌似 Linux 启动时就会链接网络同步时间,所以硬件时间很迅速的就被替换为了 UTC 。但是 Windows 比较懒,虽然我们都开启了自动同步时间,但是往往不是很及时,所以错把为 +8 的 UTC 时间当做了正确的显示了出来。
原因说完了,我们接着说怎办
解决办法
我这边是 Manjaro Linux 以它为例来说修复方法。大致上有两种思路,一种是让 Windows 使用 UTC 时间;另一种则是让 Linux 使用 localtime
让 Linux 使用本地时间
委屈以下 Linux 吧,Manjaro 或 Arch 可以在终端中输入:
sudo timedatectl set-local-rtc true
让 Windows 使用 UTC
这需要修改注册表,而且不能开启时间同步,以免我们的设置被重置。由于我的 Windows 是主力系统,因此没有尝试下面的方法,有效性有待验证
# 以管理员身份使用运行
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f
# 以上方法无效或64位系统:
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_QWORD /f
本文部分参考内容:
Arch Linux wiki —— Time
版权声明:本文标题:如何解决 Windows 和 Manjaro 双系统时间不一致_差8小时的问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1742351657a2458615.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论