为什么安装双系统会导致Windows系统的时间错乱

为什么安装双系统会导致Windows系统的时间错乱

很多人在电脑上安装了双系统Windows和Linux后,发现关掉Linux进入Windows后Windows系统的时间不正确.这是因为什么呢?

原因不止一个,但最常见的根因是两个系统对硬件时钟(RTC/CMOS)的约定不一致。双系统来回切换时,Windows按本地时间写入 RTC,Linux按 UTC 读写 RTC,就会在每次重启后把对方“改过”的时间再解释一遍.


概念

  • 硬件时钟 RTC:主板上持续走时的时钟,关机也在走,由纽扣电池供电.系统启动时把它当作初始时间。
  • 系统时钟:操作系统内存里的当前时间;启动时从 RTC 取初值,运行期根据本机计时源前进,偶尔回写 RTC。
  • RTC 语义差异:Windows 传统默认把 RTC 当本地时间,Linux 默认把 RTC 当UTC。这两种语义不兼容。

常见导致错乱的场景

  • 夏令时/时区差异:即使同一城市,两个系统的时区规则或 DST 数据库不同步,导致本地时间换算不一致。
  • RTC 语义差异:Windows 传统默认把 RTC 当本地时间,Linux 默认把 RTC 当UTC。这两种语义不兼容。
  • Windows 快速启动技术:关机事实上是一种深度休眠,内核态时间状态被保存,可能不会及时把调过的时间写回 RTC;下一个系统启动读取到“旧 RTC”,再做校时,表现为跳变。
  • NTP联网校时导致表观跳变:某一系统联网后做了步进校时,切回另一系统后又做一次校时或根据 RTC 重置.

如何首选统一用 UTC时间

  • 原则:让两个系统都把 RTC 当作 UTC 存储,只在各自系统里用时区规则把 UTC→本地时间显示。

  • Windows 设置为使用 UTC 存储 RTC:

    • 以管理员身份运行cmd:

      1
      reg add "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /f
    • 确保“自动设置日期和时间/时区”开启。

  • Linux 保持不变即可(或切换为 RTC=UTC):以下代码来自网络

    1
    2
    3
    timedatectl set-local-rtc 0    # 0 表示 RTC 以 UTC 存储
    timedatectl set-ntp true # 启用网络校时(可选)
    timedatectl # 检查 RTC in local TZ: no
  • 禁用 Windows 快速启动

    • 控制面板->电源选项->定义电源按钮并启用密码保护->更改当前不可用的设置-(管理员)->关闭快速启动
  • 检查时区与 DST 数据:

    • Windows/ Linux 都选择同一城市的时区;Linux 保持 tzdata 更新。
  • 主板维护:

    • 更换老化的主板纽扣电池

按上述配置统一后,双系统切换一般就不会再出现时间错乱。


为什么安装双系统会导致Windows系统的时间错乱
https://lvlele.top/161为什么安装双系统会导致Windows系统的时间错乱/
作者
吕了了
发布于
2026年5月19日
许可协议