问题
最近使用wsl --update
升级了wsl,然后启动wsl时,报错
不支持此接口
Error code: Wsl/0x80004002
解决办法
目前看到两种解决办法,一是把新安装的wsl appx包给删掉,另一种是修复文件夹的权限设置
删除wsl的appx包
这种方法治标不治本,因为我是想要升级wsl,好使用wsl一些新的特性,比如windows桌面无缝集成linux gui应用
Get-AppxPackage |? { $_.Name -like "*WindowsSubsystemforLinux*" }
Remove-AppxPackage -Package MicrosoftCorporationII.WindowsSubsystemForLinux_1.2.5.0_x64__8wekyb3d8bbwe
修复文件夹权限
参考https://github.com/microsoft/WSL/issues/9202
问题的根因在于企业办公网环境设置了一些安全策略,导致wsl升级后,某个文件夹的权限错误,可以通过以下命令修复:
# 首先安装sysinternals
winget install sysinternals
# 管理员权限启动
psexec -i -s cmd.exe
# 修改文件夹权限
icacls C:\ProgramData\Microsoft\Windows\AppRepository\Packages\MicrosoftCorporationII.WindowsSubsystemForLinux_1.2.5.0_x64__8wekyb3d8bbwe\PackagedCom /grant System:(OI)(CI)(X) /inheritance:d