542 字
3 分钟
Windows+Linux双系统时间不统一修复
为什么会出现时间不统一
Windows 和大多数 Linux 发行版对硬件时钟(RTC)的理解不一样:
- Windows 默认把主板时间当作本地时间
- Linux 默认把主板时间当作 UTC 时间
所以你在一个系统里把时间校准好,重启进另一个系统后,就可能会出现快 8 小时或者慢 8 小时的问题。
方案一:修改 Windows,推荐
这个方案更推荐,因为 Linux 默认使用 UTC 更合理,也更符合服务器和多系统环境的习惯。
在 Windows 中按 Win + X,打开 Windows PowerShell(管理员) 或 终端(管理员),执行:
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1执行完成后,重启 Windows。
如果想立刻同步一次时间,可以再到:
设置 -> 时间和语言 -> 日期和时间- 打开“自动设置时间”
- 点击“立即同步”
恢复默认设置
如果后面你想撤销这个修改,可以在管理员 PowerShell 中执行:
reg delete HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /f方案二:修改 Linux,让 Linux 兼容 Windows
如果你不想改 Windows,也可以反过来让 Linux 直接把 RTC 当成本地时间。
在 Linux 终端执行:
sudo timedatectl set-local-rtc 1 --adjust-system-clock然后检查当前状态:
timedatectl如果输出里出现下面这一项,说明设置成功:
RTC in local TZ: yes恢复 Linux 默认行为
如果你之后想改回 Linux 默认的 UTC 方式,可以执行:
sudo timedatectl set-local-rtc 0 --adjust-system-clock再次查看:
timedatectl看到下面这一项即可:
RTC in local TZ: no两种方案怎么选
- 只改一次,长期稳定使用:推荐改 Windows
- 不方便动 Windows 注册表:就改 Linux
- 如果你经常折腾多系统、远程同步、时区切换:也更建议保留 Linux 的 UTC 逻辑,只改 Windows
修改后建议再做一次校时
无论你选哪种方案,改完后都建议进入当前系统手动同步一次网络时间,再重启到另一个系统检查。
Linux 下可以执行:
timedatectl set-ntp truetimedatectl statusWindows 下则在“日期和时间”设置里点一次“立即同步”即可。
Windows+Linux双系统时间不统一修复
https://blog.aloys233.top/posts/windowslinux双系统时间不统一修复/