疑難排解
先對症狀,再改設定。完整清單與錯誤碼以 Troubleshooting WSL 與 GitHub microsoft/WSL issues 為準。
回報問題前請備妥
在發行版裡:
安裝階段
虛擬化沒開(0x80370102 等)
進 BIOS/UEFI 開啟 Intel VT-x 或 AMD-V。筆電品牌名稱不同,多半在 CPU 相關選單。WSL 2 還需要 SLAT;極舊 CPU(例如 Core 2 Duo)無法跑 WSL 2。
發行版必須在系統碟
錯誤 0x80070003 常見原因是新內容被改存到 D:。改回把應用程式存在 C:,見 Windows 設定 → 系統 → 儲存空間。
功能沒啟用(0x8007019e)
以系統管理員 PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
改完要重開機。現在較乾淨的做法仍是 wsl --install。
「wsl 不是 Cmdlet」
功能未裝,或在 ARM/32 位元行程裡呼叫到錯的 System32。改用 wsl.exe,或從 64 位元終端機執行。
「沒有已安裝的發行版」
發行版至少要成功開啟一次。確認你不是用內建 Administrator 帳戶(它看不到一般使用者裝的發行版)。
虛擬硬碟被壓縮或加密
轉換 WSL 版本失敗時,到 %LocalAppData%\Packages\ 底下該發行版的 LocalState,內容功能表 → 進階,取消「壓縮內容」與「加密內容」。
Kernel 元件需要更新
執行 wsl --update。較舊系統可能還要手動裝 Linux kernel MSI(官方安裝文件步驟 4)。
跑起來之後
很慢
專案是否在 /mnt/c?搬到 ~/projects。這是第一名原因。
記憶體只升不降
wsl --shutdown 會把輕量 VM 的快取還給 Windows。長期使用請在 .wslconfig 設 memory=,見 組態檔。
接上 VPN 就沒網路/DNS 失敗
Windows 11 可試 networkingMode=mirrored 與 DNS tunneling,見 網路。
忘記 Linux 密碼
PowerShell(發行版名稱依 wsl -l 為準):
進 root 後:
無法從檔案總管開 \\wsl$
Linux 端的 9P 伺服器可能沒起來。在發行版執行 dmesg | grep 9p 看有無錯誤,並 wsl --shutdown 後重開。
Docker 在 WSL 裡找不到
確認 Docker Desktop 已選 WSL 2 engine,且該發行版在 Resources → WSL integration 已勾選。不要混裝兩套 daemon。
還是不行
官方除錯指令與 log 收集方式寫在疑難排解文件末段。開 GitHub issue 時附上本頁開頭那組版本資訊與重現步驟,比只貼「不能用」有效得多。