WSL2 启动报错“拒绝访问“ E_ACCESSDENIED 完整解决方案

WSL2 启动报错"拒绝访问" E_ACCESSDENIED 完整解决方案

  • 前言
  • 一、问题现象
  • 二、解决步骤
    • [2.1 关闭 WSL](#2.1 关闭 WSL)
    • [2.2 查看当前文件权限](#2.2 查看当前文件权限)
    • [2.3 查看当前用户名](#2.3 查看当前用户名)
    • [2.4 以管理员身份修复权限](#2.4 以管理员身份修复权限)
    • [2.5 重新启动 WSL](#2.5 重新启动 WSL)
  • 三、常见原因总结
  • [四、补充:关于 localhost 代理警告](#四、补充:关于 localhost 代理警告)
  • 总结

前言

将 WSL 迁移到非系统盘(如 D 盘)后,再次启动时可能遇到 "拒绝访问" 错误,本文记录完整排查与修复过程。


一、问题现象

打开 PowerShell,输入 wsl 启动,报错如下:

bash 复制代码
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 完全关闭:

powershell 复制代码
wsl --shutdown

2.2 查看当前文件权限

powershell 复制代码
icacls "D:\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)

可以看到:

  • AdministratorsSYSTEM 有完全控制权限 (F)
  • 普通用户只有读取和执行权限 (RX)缺少写入权限

2.3 查看当前用户名

powershell 复制代码
$env:USERNAME

记住输出的用户名(例如 23670),下一步要用。

2.4 以管理员身份修复权限

普通终端没有权限修改该文件的 ACL,直接运行 icacls /grant 会报"拒绝访问":

powershell 复制代码
# ❌ 普通权限下会失败
icacls "D:\Software\wsl\ext4.vhdx" /grant "23670:(F)"
# 输出:D:\Software\wsl\ext4.vhdx: 拒绝访问。

正确做法 ------通过 Start-Process -Verb RunAs 提权执行,运行后会弹出 UAC 管理员确认窗口 ,点击 "是"

powershell 复制代码
Start-Process powershell -Verb RunAs -ArgumentList "-Command", "icacls 'D:\Software\wsl\ext4.vhdx' /grant '你的用户名:(F)'; icacls 'D:\Software\wsl' /grant '你的用户名:(OI)(CI)(F)'; pause"

⚠️ 注意 :将 你的用户名 替换为上一步获取的实际用户名。

例如用户名为 23670,完整命令为:

powershell 复制代码
Start-Process powershell -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 重新启动 WSL

powershell 复制代码
wsl

正常输出:

bash 复制代码
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

(base) wyj@wyj:/mnt/d/file/军哥聊技术$

WSL 启动成功!


三、常见原因总结

原因 说明
WSL 迁移到非系统盘 从 C 盘迁移到 D 盘后,新位置的文件权限未正确继承
Windows 更新 系统更新后可能重置部分文件夹权限
手动移动 vhdx 文件 复制/移动虚拟磁盘文件时权限丢失
多用户环境 其他管理员创建的 WSL 实例,当前用户无权限

四、补充:关于 localhost 代理警告

启动时可能看到以下警告:

复制代码
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。

这条警告 不影响 WSL 正常使用 ,可以忽略。如需消除,在 %USERPROFILE%\.wslconfig 中添加:

ini 复制代码
[wsl2]
networkingMode=mirrored

保存后执行:

powershell 复制代码
wsl --shutdown
wsl

重启即可消除警告。


总结

步骤 命令
关闭 WSL wsl --shutdown
查看权限 icacls "D:\Software\wsl\ext4.vhdx"
查看用户名 $env:USERNAME
提权修复权限 Start-Process powershell -Verb RunAs ...
重启 WSL wsl

核心思路:用管理员权限给当前用户授予 vhdx 文件的完全控制权限,一行命令即可解决。

bash 复制代码
PS D:\file\军哥聊技术> wsl --shutdown; icacls "D:\Software\wsl\ext4.vhdx" 2>$null
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:USERNAME
PS D:\file\军哥聊技术> wsl --shutdown; icacls "D:\Software\wsl\ext4.vhdx" 2>$null
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\军哥聊技术> wsl --shutdown; icacls "D:\Software\wsl\ext4.vhdx" 2>$null
D:\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; icacls "D:\Software\wsl\ext4.vhdx" 2>$null
D:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)
                          NT AUTHORITY\SYSTEM:(I)(F)
PS D:\file\军哥聊技术> wsl --shutdown; icacls "D:\Software\wsl\ext4.vhdx" 2>$null
D:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)
                          NT AUTHORITY\SYSTEM:(I)(F)
PS D:\file\军哥聊技术> wsl --shutdown; icacls "D:\Software\wsl\ext4.vhdx" 2>$null
D:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)
                          NT AUTHORITY\SYSTEM:(I)(F)
PS D:\file\军哥聊技术> wsl --shutdown; icacls "D:\Software\wsl\ext4.vhdx" 2>$null
D:\Software\wsl\ext4.vhdx BUILTIN\Administrators:(I)(F)
                          NT AUTHORITY\SYSTEM:(I)(F)
PS D:\file\军哥聊技术> wsl --shutdown; icacls "D:\Software\wsl\ext4.vhdx" 2>$null
D:\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:USERNAME
23670
PS D:\file\军哥聊技术> icacls "D:\Software\wsl\ext4.vhdx" /grant "${env:USERNAME}:(F)"
D:\Software\wsl\ext4.vhdx: 拒绝访问。
已成功处理 0 个文件; 处理 1 个文件时失败
PS D:\file\军哥聊技术> Start-Process powershell -Verb RunAs -ArgumentList "-Command", "icacls 'D:\Software\wsl\ext4.vhdx' /grant '23670:(F)'; icacls 'D:\Software\wsl' /grant '23670:(OI)(CI)(F)'; pause"
PS D:\file\军哥聊技术> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2
PS D:\file\军哥聊技术> wsl
wsl: 检测到 localhost 代理配置,但未镜像到 WSL。NAT 模式下的 WSL 不支持 localhost 代理。
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

(base) wyj@wyj:/mnt/d/file/军哥聊技术$
相关推荐
舒一笑5 小时前
AI 时代最火的新岗位,不是提示词工程师,而是 Harness 工程师
人工智能·程序员·设计
apcipot_rain5 小时前
Python实战——蒙特卡洛模拟分析杀牌游戏技能收益
python·游戏·数学建模
明月醉窗台5 小时前
[jetson] AGX Xavier 安装Ubuntu18.04及jetpack4.5
人工智能·算法·nvidia·cuda·jetson
青稞社区.5 小时前
从最基础的模型出发,深度剖析高性能 VLA 的设计空间
人工智能·agi
老绿光5 小时前
Python 字典完全指南:从入门到实战
linux·服务器·python
夜猫逐梦5 小时前
【AI】 Claude Code 源码泄露:一场关于安全与学习的风波
人工智能·安全·claude code·源码泄漏
浔川python社5 小时前
更多人工智能出现,会带来哪些利与弊
人工智能
stereohomology5 小时前
大语言模型的认知边界 & 在认知边界处的系统性崩溃
人工智能·语言模型·自然语言处理
羊羊小栈5 小时前
基于「YOLO目标检测 + 多模态AI分析」的智慧农业茶叶病害检测预警系统
人工智能·yolo·目标检测·计算机视觉·毕业设计·大作业
搜狐技术产品小编20235 小时前
智能代码审查基于大语言模型的自动化代码质量保障平台设计与实践
运维·人工智能·语言模型·自然语言处理·自动化