关于Ubuntu双系统导致windows时间异常

解决安装 Ubuntu 双系统后 Windows 时间异常的问题

安装 Ubuntu 和 Windows 双系统后,你可能会遇到一个非常烦人的问题:

Windows 的时间每次重启都不对,每次重启后都要手动校对。

明明在 Windows 和 Ubuntu 中都设置了时区为中国(北京/上海),但时间总是乱跳,甚至相差 8 小时。
我在使用双系统就会出现这个问题


问题分析:两个系统“理解时间”的方式不同

Windows 默认使用 本地时间(Local Time)

  • Windows 认为主板(CMOS/RTC)里的时间就是 当前城市的时间
  • 如果你在中国,它认为这个时间就是 北京时间(UTC+8)

Ubuntu(Linux)默认使用 UTC 时间(世界协调时间)

  • Ubuntu 认为主板时间是 UTC,然后再通过“时区”来转换成北京时间。
  • 所以,如果你的时区是 Asia/Shanghai(UTC+8),它会在主板时间基础上 +8 小时显示。

结果就是 —— Ubuntu 一加 8,Windows 就炸了

举个例子:

  1. Windows 设定硬件时间为早上 8:00(北京时间)
  2. 启动 Ubuntu,它把 8:00 当成 UTC,再加上 +8,显示成 16:00
  3. 你关机重启回到 Windows,它发现时间是 16:00,就以为你穿越了……

这就造成了时间紊乱,每次切换系统都像进了另一个时空。


最佳解决方案:让 Ubuntu 也使用本地时间

这样 Ubuntu 和 Windows 的时间就完全一致了。

操作步骤如下:

  1. 启动进入 Ubuntu
  2. 打开终端,输入以下命令:
1
timedatectl set-local-rtc 1 --adjust-system-clock
  1. 确认设置成功:
1
timedatectl

你会看到类似输出:

1
RTC in local TZ: yes

这表示 Ubuntu 已经从 UTC 模式切换为 Local Time 模式,与你的 Windows 保持一致。


重启建议

设置完成后请:

  • 先重启 Ubuntu 一次
  • 再重启进入 Windows,检查时间是否正常
  • 从此两个系统的时间将不会再互相干扰

不推荐的方法:修改 Windows 注册表使用 UTC

虽然也可以通过修改 Windows 注册表让它支持 UTC 模式,但这种方法兼容性差,系统更新后可能失效,不推荐普通用户使用


1
timedatectl set-local-rtc 1 --adjust-system-clock