Linux Windows 双系统时间不一致

Linux Windows 双系统时间不一致的原因和解决方案

原因分析

在安装了 Linux 和 Windows 双系统后,可能会遇到两个系统时间不一致的问题,通常是相差 8 小时。这主要是因为 Windows 和 Linux 对系统硬件时间(RTC,Real-Time Clock)的处理方式不同。

  • Windows 把电脑的硬件时钟看成是本地时间,即 RTC = Local Time,Windows 会直接显示硬件时间。
  • Linux 则是把电脑的硬件时钟看成 UTC 时间,即 RTC = UTC,那么 Linux 显示的时间就是硬件时间加上时区。

解决方案

解决这个问题有两种主要思路:一是让 Windows 认为硬件时钟是 UTC 时间,二是让 Linux 认为硬件时钟是本地时间。

修改 Windows 硬件时钟为 UTC 时间

  1. 以管理员身份打开「PowerShell」。
  2. 输入以下命令:
    1
    2
    Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

    或者打开「注册表编辑器」,定位到 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 目录下,新建一个 DWORD 类型,名称为 RealTimeIsUniversal 的键,并修改键值为 1 即可。

修改 Linux 硬件时钟为本地时间

这里可以根据自己发行版的方法来修改。我这里给出现在大多数发行版由 timedatectl 来管理时间的修改方法。
在终端中,输入以下命令:

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

注意事项

  • 您应该只使用这些方法中的一种,而不是组合使用它们。
  • 修改后,如果时间仍然不一致,可能需要在 Windows 中手动调整一次时间,之后两个系统的时间应该能够自动同步。[^7^]