一、問題
首先遇到的問題是安裝docker desktop後,啟動引擎時報錯
wsl update failed: update failed: updating wsl: exit code: 4294967295: running wsl command wsl.exe c:\windows\system32\wsl.exe --update --web- download: 潃汵潮⁴牷瑩慶畬琠敫⁹卜䙏坔剁居汃獡敳屳楄敲瑣牯屹桳汥屬南⹌†嘠牥晩⁹桴瑡礠畯栠痴畳晦捩斆瑮慍搗獥瀦琠慨⁴敫漠潣瑮撿⁴潹牽猠靈潰瑲瀠牥潳湮汥മ뒛雦놤듨⢥胩몇믤膠›㘱㌰芀鎩꾯믤膠›獗⽬慃汬獍⽩湉瑳汙⽬剅佒歸義囈䱁彌䅆䱉剕: exit status 0xffffffff
可以看到是wsl更新時報錯,由於後面是亂碼,不知道具體是什麼錯誤,所以接下來開啟管理員終端,輸入wsl --list測試一下,果然,報錯了
PS C:\Users\ht> wsl --list
WSL 正在完成升級...
Could not write value to key \SOFTWARE\Classes\Directory\shell\WSL. Verify that you have sufficient access to that key, or contact your support personnel.
更新失敗(退出程式碼: 1603)。
錯誤程式碼: Wsl/CallMsi/Install/ERROR_INSTALL_FAILURE
這時候,顯然報錯原因找到了,沒有許可權寫入登錄檔,不得不吐槽一下微軟,這個bug就是不更新。
二、解決辦法
開啟登錄檔編輯器,找到對應項計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\WSL
,右鍵開啟許可權
,上面選中 SYSTEM
使用者(注意別選錯!),給它加上 允許完全控制
的許可權,點選確定就好了(即時生效,無需重啟等等)!
當你重新執行的時候會發現,又有一個新的登錄檔項沒有許可權,所以你要把上述操作應用到以下所有目錄
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\WSL
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\WSL\command
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\WSL
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\WSL\command
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shell\WSL
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Drive\shell\WSL\command
大功告成!
人心如良苗,得養乃滋長。苗以泉水灌,心以理義養。一日不讀書,胸臆無佳想。一月不讀書,耳目失精爽。