同步(附診斷表))
WSL 時間不同步怎么辦3 條命令修好 WSL 時鐘與 Windows 時區(qū)同步附診斷表【免費下載鏈接】WSLWindows Subsystem for Linux項目地址: https://gitcode.com/GitHub_Trending/ws/WSLWSL 和 Windows 時間對不上、時區(qū)錯位、/mnt/c 里的文件時間戳錯亂——這三類問題最傷開發(fā)效率。下面直接給解法先對照診斷表定位再用手動同步 WSL 時鐘命令、wsl.conf 時區(qū)配置、chrony 自動同步三條路把 WSL 時間同步修好最后用一條命令驗證。1 分鐘定位問題出在哪先對號入座再按對應(yīng)小節(jié)修現(xiàn)象可能原因?qū)?yīng)小節(jié)合蓋/睡眠后 WSL 時間跳變幾分鐘WSL 2 虛擬機(jī)的時鐘恢復(fù)后未追平WSL 時鐘手動同步命令date時區(qū)偏移不對啟動時的 Windows 時區(qū)映射失敗wsl.conf 時區(qū)配置Windows 任務(wù)計劃時間與 WSL 差固定小時數(shù)源頭在 Windows 主機(jī)時鐘主機(jī)時間源同步/mnt/c 下文件時間戳異常drvfs 掛載直接暴露 Windows 時間戳drvfs 時間戳核對按場景修復(fù)WSL 時鐘手動同步命令喚醒后跳變現(xiàn)象合蓋再打開WSL 里date比 Windows 慢或快幾十分鐘。 原因WSL 2 運行在輕量虛擬機(jī)里掛起期間內(nèi)核時鐘暫?;謴?fù)時不會自動追平系統(tǒng)里沒有硬件時鐘可用。 修復(fù)sudo apt-get install -y chrony sudo chronyd date # 與 Windows 任務(wù)欄對照驗證等 30 秒后date的偏差應(yīng)在 1 秒內(nèi)。WSL 時區(qū)錯位跟隨 Windows 時區(qū)映射失敗現(xiàn)象date顯示 UTC 或偏移與 Windows 不一致。 原因WSL 啟動時會把 Windows 時區(qū)映射成 IANA 名寫進(jìn)系統(tǒng)——時區(qū)同步由 src/linux/init/timezone.cpp 的UpdateTimezone實現(xiàn)把/etc/localtime軟鏈到/usr/share/zoneinfo/下對應(yīng)條目再把標(biāo)識寫入/etc/timezone映射失敗或缺少 tzdata 包時它只會打警告跳過于是停留在舊值。 修復(fù)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 任務(wù)欄一致。主機(jī)時間源同步Windows 時間本身不準(zhǔn)現(xiàn)象WSL 與 Windows 的差值是固定的且 Windows 側(cè)也不準(zhǔn)。 原因WSL 的時區(qū)映射和時間源都跟著 Windows 走源頭不對WSL 修得再勤也沒用。 修復(fù)PowerShellw32tmn /resync wsl --shutdown wsl -e date驗證wsl -e date與任務(wù)欄時鐘一致。drvfs 時間戳核對/mnt/c 文件時間戳異?,F(xiàn)象/mnt/c 下的文件stat出來的時間與 Windows 里顯示的不一樣。 原因WSL 2 中 /mnt/c 是 drvfs 掛載時間戳直接讀自 Windows 文件系統(tǒng)屬性不是 WSL 自己存的。 核對stat -c %y /mnt/c/某文件.txt touch /mnt/c/tst.txt; stat -c %y /mnt/c/tst.txt # 應(yīng)等于當(dāng)前時間驗證與資源管理器里修改日期一致即正常不一致優(yōu)先回到上一節(jié)修 Windows 時鐘。一次配置長期生效wsl.conf 時區(qū)持久化/etc/wsl.conf的[time]段控制啟動時是否跟隨 Windows 時區(qū)開關(guān)默認(rèn)開啟見 src/linux/init/WslDistributionConfig.h 中useWindowsTimezone默認(rèn)true[time] useWindowsTimezone true改完必須執(zhí)行wsl --shutdown再重新進(jìn)入 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讓啟動后幾分鐘內(nèi)的大偏差直接步進(jìn)修正WSL 沒有硬件時鐘不需要rtcfreq之類針對 RTC 的配置。驗證chronyc tracking中System time偏差趨近 0。避坑清單只保留一個同步源啟用 chrony 前先timedatectl確認(rèn)沒有 systemd-timesyncd 在同時調(diào)鐘兩者打架會越調(diào)越偏Windows 是時間源頭WSL 側(cè)反復(fù)修不好時先w32tmn /resync改/etc/wsl.conf后記得wsl --shutdown配置不會熱加載跨 WSL 與 Windows 的腳本統(tǒng)一用 UTC 時間戳date -u比較別依賴本地時區(qū)/mnt/c 下文件時間戳歸 Windows 文件系統(tǒng)管構(gòu)建腳本別拿 /mnt 下的時間戳做增量判斷如果按上面步驟還修不好把date、chronyc tracking和 Windows 側(cè)w32tmn /query /status的輸出整理成 Issue 反饋給項目維護(hù)者?!久赓M下載鏈接】WSLWindows Subsystem for Linux項目地址: https://gitcode.com/GitHub_Trending/ws/WSL創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考