安裝Docker Desktop時出現報錯,WSL2 升級更新失敗(退出程式碼: 1603,錯誤程式碼: Wsl/CallMsi/Install/ERROR_INSTALL_FAILURE)解決辦法

悦动代码發表於2024-12-09

一、問題

首先遇到的問題是安裝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

大功告成!

人心如良苗,得養乃滋長。苗以泉水灌,心以理義養。一日不讀書,胸臆無佳想。一月不讀書,耳目失精爽。

相關文章