# WSL2 無法啟動怎麼辦?我用這幾步修好 Windows 11 上的 `0x80070569` 錯誤 最近在 Windows 11 上遇到一個很煩的問題:`WSL2` 明明有裝,`Ubuntu` 也還在,但就是突然無法啟動。 如果你也遇到下面這種錯誤,這篇可以先存起來: ```text Wsl/Service/CreateInstance/CreateVm/HCS/0x80070569 ``` 這次我是在**不重開機**的情況下,把 `WSL2` 救回來。這篇整理的是我實際排查和修復的流程,重點會放在對一般使用者有用、也比較容易被搜尋到的關鍵資訊。 --- ## 這次遇到的 WSL2 錯誤症狀 表面上看起來,`WSL` 其實沒有壞得很徹底: - `wsl -l -v` 看得到 `Ubuntu` - 而且版本還是 `2` - `WSL` 相關功能也都已經安裝 - 但一執行 `wsl -d Ubuntu` 就失敗 我這次遇到的關鍵錯誤是: ```text Wsl/Service/CreateInstance/CreateVm/HCS/0x80070569 ``` 進一步查 Windows 錯誤碼後,對應訊息是: ```text Logon failure: the user has not been granted the requested logon type at this computer. ``` 這代表方向不是單純「Ubuntu 壞掉」,而比較像是: - `WSL2` 建立 VM 時失敗 - `Hyper-V` / `HCS` 路徑有問題 - Windows 服務狀態異常 - 或是本機安全性原則 / 網域 GPO 影響了 WSL2 啟動 --- ## 先確認不是 WSL 安裝壞掉 如果你也遇到 `WSL2 無法啟動`,我建議先檢查下面這幾個項目: ```powershell wsl --status wsl -l -v Get-WindowsOptionalFeature -Online -FeatureName 'Microsoft-Windows-Subsystem-Linux' Get-WindowsOptionalFeature -Online -FeatureName 'VirtualMachinePlatform' Get-Service WSLService,vmcompute,hns ``` 我這次檢查到的狀況是: - `Microsoft-Windows-Subsystem-Linux` 已啟用 - `VirtualMachinePlatform` 已啟用 - `WSLService`、`vmcompute`、`hns` 都有在跑 - `Ubuntu` 仍然存在,而且是 `WSL2` 所以可以先排除: - 沒安裝 `WSL` - 沒開 `VirtualMachinePlatform` - distro 被刪掉 也就是說,這不是典型的安裝問題。 --- ## 這類錯誤為什麼會發生? `WSL2` 底層會透過 Hyper-V / HCS 建立虛擬化環境,所以當錯誤出現在: ```text CreateVm/HCS/0x80070569 ``` 通常就要懷疑: - WSL 服務卡住 - Hyper-V Compute 服務異常 - 系統權限沒有正確套用 - 公司電腦上的群組原則(GPO)影響了 WSL2 如果你是在 **Windows 11 企業版**、**公司網域電腦**、或是有安全性政策控管的環境,這個方向尤其常見。 --- ## 我這次實際有效的修復方法 這次我沒有先重開機,而是先做一輪「關閉 WSL、重啟服務、重套原則」。 ### 1. 關閉所有 WSL 執行個體 ```powershell wsl --shutdown ``` 這一步是先把可能卡住的 WSL 狀態清掉。 ### 2. 重啟 `WSLService` ```powershell Restart-Service WSLService -Force ``` ### 3. 重啟 `vmcompute` ```powershell Restart-Service vmcompute -Force ``` `vmcompute` 是 Hyper-V 主機運算服務,`WSL2` 啟動會用到它。如果這個服務卡住,Ubuntu 本身通常也起不來。 ### 4. 重新套用群組原則 ```powershell gpupdate /force ``` 這一步對公司電腦特別重要。因為如果 `WSL2` 啟動失敗和系統權限、登入類型、服務權限有關,那重新套用目前原則有時候就能把狀態拉回正常。 ### 5. 重新測試 WSL2 ```powershell wsl -d Ubuntu -e uname -a ``` 我這次就是做完上面幾步之後,`WSL2` 成功恢復。 成功時輸出會像這樣: ```text Linux 001771-03370 6.6.87.2-microsoft-standard-WSL2 ... ``` --- ## 可直接複製的修復指令 如果你想先快速測試,這段可以直接用: ```powershell wsl --shutdown Restart-Service WSLService -Force Restart-Service vmcompute -Force gpupdate /force wsl -d Ubuntu -e uname -a ``` 這是我這次修好 `WSL2 啟動失敗` 的主要流程。 --- ## 為什麼這次不是靠重灌解決? 很多人遇到 `WSL2 無法啟動`,第一反應通常是: - 重裝 Ubuntu - 重裝 WSL - 重新勾選 Windows 功能 - 直接重開機 但這次情況不是這種。 因為我檢查後發現: - `WSL2` 還在 - `Ubuntu` 還在 - Windows 功能也都正常 所以問題更像是**服務狀態或權限套用異常**,而不是安裝壞掉。這也是為什麼這次有效的方式,不是重灌,而是: - `wsl --shutdown` - 重啟 `WSLService` - 重啟 `vmcompute` - `gpupdate /force` --- ## 如果是公司電腦,之後可能還會再發生 這次最值得注意的地方是錯誤碼: ```text 0x80070569 ``` 它對應的是登入類型權限失敗,這表示問題可能和: - 本機安全性原則 - 群組原則(GPO) - Hyper-V / WSL 所需權限 有關。 所以如果你是在公司環境、企業版 Windows、或受網域管理的電腦上,這類問題有可能不是一次性的。 換句話說: - 這套方法很適合先救急 - 但不一定代表根因完全排除 - 如果經常復發,還是要往 GPO 或安全性原則方向追 --- ## 我會怎麼建議處理這種 WSL2 問題 如果你只是偶爾遇到一次,那先試下面這組指令最省時間: ```powershell wsl --shutdown Restart-Service WSLService -Force Restart-Service vmcompute -Force gpupdate /force ``` 如果你已經不是第一次遇到,而且又很依賴 `WSL2` 做開發、Docker、FTP 模擬、Samba 測試或 Linux 環境,那就不該只把它當成單次故障。 比較務實的做法是: - 先把 WSL 救回來,恢復工作 - 再檢查是否為公司 GPO 造成 - 如果是高依賴環境,評估改用正式 Linux VM --- ## 關鍵字整理 如果你是搜尋這些關鍵字進來的,這篇處理的是同一類問題: - `WSL2 無法啟動` - `WSL Ubuntu 無法啟動` - `Windows 11 WSL2 0x80070569` - `Wsl/Service/CreateInstance/CreateVm/HCS/0x80070569` - `WSL2 CreateVm HCS error` - `Restart-Service WSLService` - `Restart-Service vmcompute` - `gpupdate /force WSL` --- ## 結論 這次 `WSL2` 救回來的關鍵,不是重灌,也不是直接重開機,而是: 1. 關掉 WSL 2. 重啟 `WSLService` 3. 重啟 `vmcompute` 4. 重新套用群組原則 5. 再次啟動 Ubuntu 對我這次的環境來說,這組方法是有效的,而且不用先重開機。 如果你碰到的是同樣的 `0x80070569`,很值得先試一次。