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/军哥聊技术$
相关推荐
dyxal15 小时前
最长公共子序列(LCS)
python·算法
Ai_easygo16 小时前
多Agent协作与A2A协议——CrewAI + LangGraph搭建AI协作团队
人工智能
你驴我16 小时前
WhatsApp Cloud API 速率限制下的令牌桶与退避策略实践
网络·后端·python
AC赳赳老秦16 小时前
司法公开数据采集应用:OpenClaw 抓取裁判文书公开信息,批量整理同类参考案例
java·大数据·python·数据挖掘·数据分析·php·openclaw
HIT_Weston16 小时前
151、【Agent】【OpenCode】启动分析(CLI 命令注册)
人工智能·agent·opencode
笑小枫16 小时前
用 Claude Code 推翻重写笑小枫网站
java·人工智能·spring boot·ai编程
audyxiao00116 小时前
人工智能顶会AAAI 2026论文分享|SlideBot:用于生成信息丰富、可靠、多模态幻灯片的多智能体框架
人工智能·大模型·aaai·智能体·幻灯片
用户9385156350716 小时前
Workflow 与 Agent 之争:确定性执行与智能探索的深度剖析
人工智能
阿里云大数据AI技术16 小时前
阿里云 EMR Serverless StarRocks(Stella 2.2.0) 发布:内表与湖表同时支持向量、全文与 AI Function,一条 SQL 完成多模态检索
人工智能
AI人工智能+16 小时前
智能文档抽取系统采用“解析底座+大模型“双引擎架构,突破传统OCR局限
深度学习·ocr·文档抽取