ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

WSL 时间不同步怎么办:3 条命令修好 WSL 时钟与 Windows 时区同步(附诊断表)

WSL 时间不同步怎么办:3 条命令修好 WSL 时钟与 Windows 时区同步(附诊断表) WSL 时间不同步怎么办3 条命令修好 WSL 时钟与 Windows 时区同步附诊断表【免费下载链接】WSLWindows Subsystem for Linux项目地址: https://gitcode.com/GitHub_Trending/ws/WSLWSL 和 Windows 时间对不上、时区错位、/mnt/c 里的文件时间戳错乱——这三类问题最伤开发效率。下面直接给解法先对照诊断表定位再用手动同步 WSL 时钟命令、wsl.conf 时区配置、chrony 自动同步三条路把 WSL 时间同步修好最后用一条命令验证。1 分钟定位问题出在哪先对号入座再按对应小节修现象可能原因对应小节合盖/睡眠后 WSL 时间跳变几分钟WSL 2 虚拟机的时钟恢复后未追平WSL 时钟手动同步命令date时区偏移不对启动时的 Windows 时区映射失败wsl.conf 时区配置Windows 任务计划时间与 WSL 差固定小时数源头在 Windows 主机时钟主机时间源同步/mnt/c 下文件时间戳异常drvfs 挂载直接暴露 Windows 时间戳drvfs 时间戳核对按场景修复WSL 时钟手动同步命令唤醒后跳变现象合盖再打开WSL 里date比 Windows 慢或快几十分钟。 原因WSL 2 运行在轻量虚拟机里挂起期间内核时钟暂停恢复时不会自动追平系统里没有硬件时钟可用。 修复sudo apt-get install -y chrony sudo chronyd date # 与 Windows 任务栏对照验证等 30 秒后date的偏差应在 1 秒内。WSL 时区错位跟随 Windows 时区映射失败现象date显示 UTC 或偏移与 Windows 不一致。 原因WSL 启动时会把 Windows 时区映射成 IANA 名写进系统——时区同步由 src/linux/init/timezone.cpp 的UpdateTimezone实现把/etc/localtime软链到/usr/share/zoneinfo/下对应条目再把标识写入/etc/timezone映射失败或缺少 tzdata 包时它只会打警告跳过于是停留在旧值。 修复cat /etc/timezone; readlink /etc/localtime sudo apt-get install -y tzdata # 缺 tzdata 时先补上 sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime验证date的偏移如 0800与 Windows 任务栏一致。主机时间源同步Windows 时间本身不准现象WSL 与 Windows 的差值是固定的且 Windows 侧也不准。 原因WSL 的时区映射和时间源都跟着 Windows 走源头不对WSL 修得再勤也没用。 修复PowerShellw32tmn /resync wsl --shutdown wsl -e date验证wsl -e date与任务栏时钟一致。drvfs 时间戳核对/mnt/c 文件时间戳异常现象/mnt/c 下的文件stat出来的时间与 Windows 里显示的不一样。 原因WSL 2 中 /mnt/c 是 drvfs 挂载时间戳直接读自 Windows 文件系统属性不是 WSL 自己存的。 核对stat -c %y /mnt/c/某文件.txt touch /mnt/c/tst.txt; stat -c %y /mnt/c/tst.txt # 应等于当前时间验证与资源管理器里修改日期一致即正常不一致优先回到上一节修 Windows 时钟。一次配置长期生效wsl.conf 时区持久化/etc/wsl.conf的[time]段控制启动时是否跟随 Windows 时区开关默认开启见 src/linux/init/WslDistributionConfig.h 中useWindowsTimezone默认true[time] useWindowsTimezone true改完必须执行wsl --shutdown再重新进入 WSL 才生效——配置只在启动时读取一次。验证date加readlink /etc/localtime。chrony 自动时钟同步chrony 是 NTP 的轻量客户端装上后长期自动追平漂移sudo apt-get install -y chrony echo makestep 1 3 server ntp.aliyun.com iburst | sudo tee -a /etc/chrony/chrony.confmakestep让启动后几分钟内的大偏差直接步进修正WSL 没有硬件时钟不需要rtcfreq之类针对 RTC 的配置。验证chronyc tracking中System time偏差趋近 0。避坑清单只保留一个同步源启用 chrony 前先timedatectl确认没有 systemd-timesyncd 在同时调钟两者打架会越调越偏Windows 是时间源头WSL 侧反复修不好时先w32tmn /resync改/etc/wsl.conf后记得wsl --shutdown配置不会热加载跨 WSL 与 Windows 的脚本统一用 UTC 时间戳date -u比较别依赖本地时区/mnt/c 下文件时间戳归 Windows 文件系统管构建脚本别拿 /mnt 下的时间戳做增量判断如果按上面步骤还修不好把date、chronyc tracking和 Windows 侧w32tmn /query /status的输出整理成 Issue 反馈给项目维护者。【免费下载链接】WSLWindows Subsystem for Linux项目地址: https://gitcode.com/GitHub_Trending/ws/WSL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表