WSL2时钟与Windows不同步

从睡眠/休眠状态恢复后,WSL2 时钟不同步。

在GitHub 上 共享了一个解决方法sudo hwclock -s来重新同步 WSL 中的时钟,但是每次从睡眠/休眠状态恢复时都必须执行此操作。

回答

如果有人通过搜索找到了这一点,并且没有注意到问题中实际上列出了一个解决方案,您可以通过修复 WSL 时钟漂移。

sudo hwclock -s

如果您只是偶尔需要这样做,这是一个很好的解决方案。如果您需要更频繁地执行此操作,请考虑@piouson 的解决方案


回答

更新:正如drkvogel所提到的,时钟同步修复是在WSL2 内核版本 5.10.16.3 中发布的


过时的

在撰写本文时,此GitHub 问题已针对该错误开放。

我为我的情况选择的解决方法(WSL2 中的单一发行版)是使用 Windows 任务计划程序hwclockWSLWindows 重新同步硬件时钟时运行。

Windows:以管理员身份打开 PowerShell

schtasks /create /tn WSLClockSync /tr "wsl.exe sudo hwclock -s" /sc onevent /ec system /mo "*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=1)]]"
Set-ScheduledTask WSLClockSync -Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries)

WSL2:运行sudo visudo并添加hwclock到 sudoers 以跳过密码提示

schtasks /create /tn WSLClockSync /tr "wsl.exe sudo hwclock -s" /sc onevent /ec system /mo "*[System[Provider[@Name='Microsoft-Windows-Kernel-General'] and (EventID=1)]]"
Set-ScheduledTask WSLClockSync -Settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries)

结果

有关如何从 Windows 事件过滤中获取事件 XPath,请参见图像。使用所提供的方式让任务计划程序自动显示计划的触发器。


回答

只需重新启动 wsl,它对我来说很好用

wsl --shutdown

然后

wsl

在 PowerShell 中

  • my solution removes the need to restart each time, by using Windows Task Scheduler for auto re-run..
  • I give options to anyone too lazy to do your solution. It's up to them to choose which one

以上是WSL2时钟与Windows不同步的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>