解决Linux,Windows双系统互相切换后Windows时间错误
问题解析
时间错乱的原因是由于Linux和Windows对硬件时间的处理方式不同,Linux默认将硬件时间视为UTC时间,而Windows默认将硬件时间视为本地时间。因此,当我们在Linux和Windows之间切换时,硬件时间会发生变化,Linux使用UTC时间后自动校准会回写数据,使得Windows时间错乱。
解决方法
如果设备上安装了多个操作系统,它们会从同一个硬件时钟生成自己的当前时间;在这种情况下,建议将硬件时钟设为 UTC,以避免各操作系统之间的冲突。如果硬件时钟使用的是本地时间,那可能会有多个操作系统同时修改硬件时钟(如进行夏令时调整),导致修正过度;另外,在跨多个时区出行的场景下,使用其中一个操作系统重置系统/硬件时钟也可能会产生问题。
1. Windows系统中修改注册表
用管理员权限打开cmd,运行以下命令:
1 | reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f |
此命令将Windows系统的硬件时间视为UTC时间,和Linux保持一致。
2. Linux系统中修改配置文件
通过 timedatectl 命令可以查看并设置硬件时间。通过下面命令查看 Arch
系统当前硬件时钟的时间标准: 1
timedatectl | grep local
指令打印结果:
1 | RTC in local TZ: no |
硬件时间设置为loaclTime
1 | timedatectl set-local-rtc 1 |
硬件时间设置成 UTC:
1 | timedatectl set-local-rtc 0 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 许可协议。转载请注明来源 Apricityx's blog!
评论