0%

修复双系统(Win+Linux)时间不同步问题

概述

笔记本装了win10+Ubuntu18.04双系统,但是两个系统的时间并不同步,相差8小时(正好是时区数)。于是搜索之,找到解决方案

原因

Windows 与 Mac/Linux 看待系统硬件时间(Hardware Ttime,或称实时时间,即RTC,Real_Time Clock)的方式不同。
Windows把计算机硬件时间当作本地时间(local time),所以在Windows系统中显示的时间跟BIOS中显示的时间是一样的。
而Linux/Unix/Mac把计算机硬件时间当作UTC(Universal Time Coordinated,世界统一时间), 所以在Linux/Unix/Mac系统启动后在该时间的基础上,加上电脑设置的时区数。

解决方案

所以只需要使两个系统对待硬件时间的方式一致即可。
自然,有两种方法。

方法1 修改Linux系统

打开终端,执行
timedatectl set-local-rtc 1
禁用Linux系统的UTC时间,重启即可生效(不需要管理员权限)

提示: 在 Ubuntu 16.04 版本以前,关闭UTC的方法是编辑/etc/default/rcS,将UTC=yes改成UTC=no, 但在Ubuntu 16.04使用systemd启动之后,时间改成了由timedatectl来管理

如果时间还是不对,就先在设置里修改系统时间为当前时间(北京时间),然后执行
timedatectl set-local-rtc 1

sudo hwclock -w
写入当前时间到硬件

方法2 修改Windows系统(不建议)

Win+X,打开Powershell(管理员),执行
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
解释:设置RealTimeIsUniversal键值为1,也就是把RTC当作UTC
然而我用这种方法,切换几次系统以后时间往后推了16小时= =
所以个人不推荐使用这种方法

参考

解决Windows10与Ubuntu16.04双系统时间不一样问题!