WSL2 升级更新失败(退出代码: 1603,错误代码: Wsl/CallMsi/Install/ERROR_INSTALL_FAILURE)解决办法

1、问题

WSL2 无法启动,在终端 wsl -l -v发现是升级更新失败了,报错如下,其中详细信息说无法写入注册表键值。

PS C:\WINDOWS\System32> wsl -l -v
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

2、解决方法

打开注册表编辑器,找到对应项 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\WSL,右键打开权限,上面选中 SYSTEM 用户(注意别选错!),给它加上 允许完全控制 的权限(如下图),就好了(即时生效,无需重启等等)!
注册表改权限

3、后续

重新运行 wsl -l -v,发现还是不行?细瞅一眼,虽然还是报错,但报的注册表键变了!又有一个键无法写入,同理,再去注册表找到这个键(文件夹),修改权限,允许 SYSTEM 用户完全控制。

PS C:\WINDOWS\System32> wsl -l -v
WSL 正在完成升级...
Could not write value  to key \SOFTWARE\Classes\Directory\shell\WSL\command.   Verify that you have sufficient access to that key, or contact your support personnel.
更新失败(退出代码: 1603)。
错误代码: Wsl/CallMsi/Install/ERROR_INSTALL_FAILURE

再重试 wsl -l -v,还会报另一个键(文件夹)有同样问题,同样修改权限……

4、总结

总共有 6 个注册表键(文件夹)的权限,在 wsl 升级过程中, SYSTEM 用户缺少对它们的写入权限(github 上这问题出现好久了,不知道微软啥时候能修上 bug ),修改加上即可。

  • 计算机\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

参考:https://github.com/microsoft/WSL/issues/11697

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值