WSL2 启动报错“拒绝访问“ E_ACCESSDENIED 完整解决方案
WSL2 启动报错拒绝访问 E_ACCESSDENIED 完整解决方案前言一、问题现象二、解决步骤2.1 关闭 WSL2.2 查看当前文件权限2.3 查看当前用户名2.4 以管理员身份修复权限2.5 重新启动 WSL三、常见原因总结四、补充关于 localhost 代理警告总结前言将 WSL 迁移到非系统盘如 D 盘后再次启动时可能遇到“拒绝访问”错误本文记录完整排查与修复过程。一、问题现象打开 PowerShell输入wsl启动报错如下PS D:\file\军哥聊技术wsl 无法将磁盘\\?\D:\Software\wsl\ext4.vhdx附加到 WSL2: 拒绝访问。 错误代码: Wsl/Service/CreateInstance/MountDisk/HCS/E_ACCESSDENIED根本原因当前 Windows 用户对 WSL2 虚拟磁盘文件ext4.vhdx没有完全控制权限导致 WSL 无法挂载磁盘。二、解决步骤2.1 关闭 WSL先确保 WSL 完全关闭wsl--shutdown2.2 查看当前文件权限icaclsD:\Software\wsl\ext4.vhdx输出如下D:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F) NT AUTHORITY\SYSTEM:(I)(F) NT AUTHORITY\Authenticated Users:(I)(M) BUILTIN\Users:(I)(RX)可以看到Administrators和SYSTEM有完全控制权限(F)普通用户只有读取和执行权限(RX)缺少写入权限2.3 查看当前用户名$env:USERNAME记住输出的用户名例如23670下一步要用。2.4 以管理员身份修复权限普通终端没有权限修改该文件的 ACL直接运行icacls /grant会报拒绝访问# ❌ 普通权限下会失败icaclsD:\Software\wsl\ext4.vhdx/grant23670:(F)# 输出D:\Software\wsl\ext4.vhdx: 拒绝访问。正确做法——通过Start-Process -Verb RunAs提权执行运行后会弹出UAC 管理员确认窗口点击“是”Start-Processpowershell-Verb RunAs-ArgumentList-Command,icacls D:\Software\wsl\ext4.vhdx /grant 你的用户名:(F); icacls D:\Software\wsl /grant 你的用户名:(OI)(CI)(F); pause⚠️注意将你的用户名替换为上一步获取的实际用户名。例如用户名为23670完整命令为Start-Processpowershell-Verb RunAs-ArgumentList-Command,icacls D:\Software\wsl\ext4.vhdx /grant 23670:(F); icacls D:\Software\wsl /grant 23670:(OI)(CI)(F); pause参数说明参数含义(F)Full Control完全控制权限(OI)Object Inherit子文件继承此权限(CI)Container Inherit子文件夹继承此权限等弹出的管理员窗口显示“请按任意键继续”后说明权限修复成功。2.5 重新启动 WSLwsl正常输出To run acommandas administrator(userroot), usesudo command.Seeman sudo_rootfordetails.(base)wyjwyj:/mnt/d/file/军哥聊技术$✅WSL 启动成功三、常见原因总结原因说明WSL 迁移到非系统盘从 C 盘迁移到 D 盘后新位置的文件权限未正确继承Windows 更新系统更新后可能重置部分文件夹权限手动移动 vhdx 文件复制/移动虚拟磁盘文件时权限丢失多用户环境其他管理员创建的 WSL 实例当前用户无权限四、补充关于 localhost 代理警告启动时可能看到以下警告wsl: 检测到 localhost 代理配置但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。这条警告不影响 WSL 正常使用可以忽略。如需消除在%USERPROFILE%\.wslconfig中添加[wsl2] networkingModemirrored保存后执行wsl--shutdown wsl重启即可消除警告。总结步骤命令关闭 WSLwsl --shutdown查看权限icacls D:\Software\wsl\ext4.vhdx查看用户名$env:USERNAME提权修复权限Start-Process powershell -Verb RunAs ...重启 WSLwsl核心思路用管理员权限给当前用户授予 vhdx 文件的完全控制权限一行命令即可解决。PS D:\file\军哥聊技术wsl --shutdown;icaclsD:\Software\wsl\ext4.vhdx2$nullD:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)NT AUTHORITY\SYSTEM:(I)(F)NT AUTHORITY\Authenticated Users:(I)(M)BUILTIN\Users:(I)(RX)已成功处理1个文件;处理0个文件时失败 PS D:\file\军哥聊技术$env:USERNAME PS D:\file\军哥聊技术wsl --shutdown;icaclsD:\Software\wsl\ext4.vhdx2$nullD:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)NT AUTHORITY\SYSTEM:(I)(F)NT AUTHORITY\Authenticated Users:(I)(M)BUILTIN\Users:(I)(RX)已成功处理1个文件;处理0个文件时失败 PS D:\file\军哥聊技术wsl --shutdown;icaclsD:\Software\wsl\ext4.vhdx2$nullD:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)NT AUTHORITY\SYSTEM:(I)(F)NT AUTHORITY\Authenticated Users:(I)(M)BUILTIN\Users:(I)(RX)PS D:\file\军哥聊技术wsl --shutdown;icaclsD:\Software\wsl\ext4.vhdx2$nullD:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)NT AUTHORITY\SYSTEM:(I)(F)PS D:\file\军哥聊技术wsl --shutdown;icaclsD:\Software\wsl\ext4.vhdx2$nullD:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)NT AUTHORITY\SYSTEM:(I)(F)PS D:\file\军哥聊技术wsl --shutdown;icaclsD:\Software\wsl\ext4.vhdx2$nullD:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)NT AUTHORITY\SYSTEM:(I)(F)PS D:\file\军哥聊技术wsl --shutdown;icaclsD:\Software\wsl\ext4.vhdx2$nullD:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)NT AUTHORITY\SYSTEM:(I)(F)PS D:\file\军哥聊技术wsl --shutdown;icaclsD:\Software\wsl\ext4.vhdx2$nullD:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)D:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)NT AUTHORITY\SYSTEM:(I)(F)NT AUTHORITY\Authenticated Users:(I)(M)BUILTIN\Users:(I)(RX)已成功处理1个文件;处理0个文件时失败 PS D:\file\军哥聊技术$env:USERNAME23670PS D:\file\军哥聊技术icaclsD:\Software\wsl\ext4.vhdx/grant${env:USERNAME}:(F)D:\Software\wsl\ext4.vhdx: 拒绝访问。 已成功处理0个文件;处理1个文件时失败 PS D:\file\军哥聊技术Start-Process powershell-VerbRunAs-ArgumentList-Command,icacls D:\Software\wsl\ext4.vhdx /grant 23670:(F); icacls D:\Software\wsl /grant 23670:(OI)(CI)(F); pausePS D:\file\军哥聊技术wsl-l-vNAME STATE VERSION * Ubuntu Stopped2PS D:\file\军哥聊技术wsl wsl: 检测到 localhost 代理配置但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。 To run acommandas administrator(userroot), usesudo command.Seeman sudo_rootfordetails.(base)wyjwyj:/mnt/d/file/军哥聊技术$
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440035.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!