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

 更新时间:2026年03月23日 10:11:01   作者:璀璨whyyym88888888  
将WSL迁移到非系统盘(如 D 盘)后,再次启动时可能遇到 “拒绝访问” 错误,本文记录完整排查与修复过程,感兴趣的朋友跟随小编一起看看吧

前言

将 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 --shutdown

2.2 查看当前文件权限

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 查看当前用户名

$env:USERNAME

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

2.4 以管理员身份修复权限

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

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

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

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,完整命令为:

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

wsl

正常输出:

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 中添加:

[wsl2]
networkingMode=mirrored

保存后执行:

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; 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/军哥聊技术$

到此这篇关于WSL2 启动报错“拒绝访问“ E_ACCESSDENIED 完整解决方案的文章就介绍到这了,更多相关WSL2 启动报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • python实现的接收邮件功能示例【基于网易POP3服务器】

    python实现的接收邮件功能示例【基于网易POP3服务器】

    这篇文章主要介绍了python实现的接收邮件功能,结合实例形式分析了Python基于网易POP3服务器接收邮件相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • keras的backend 设置 tensorflow,theano操作

    keras的backend 设置 tensorflow,theano操作

    这篇文章主要介绍了keras的backend 设置 tensorflow,theano操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Pycharm 2020最新永久激活码(附最新激活码和插件)

    Pycharm 2020最新永久激活码(附最新激活码和插件)

    最近很多朋友的Pycharm激活时间又过期了,今天小编再把激活的方法汇总和工具分享一下,文中给大家分享两种方式,需要的朋友直接拿去用吧
    2020-01-01
  • python数据结构之图的实现方法

    python数据结构之图的实现方法

    这篇文章主要介绍了python数据结构之图的实现方法,实例分析了Python图的表示方法与常用寻路算法的实现技巧,需要的朋友可以参考下
    2015-07-07
  • python如何获取list字典的交集、并集和差集

    python如何获取list字典的交集、并集和差集

    在Python编程中,对列表(list)进行去重可通过set运算符法和set函数法实现,多个列表的交、并、差集也能简便操作,此外,字典(dict)的键(keys)和键值对(items)的获取也是常用技巧,这些操作方法不仅提高了代码的简洁性,也增强了数据处理的效率
    2024-09-09
  • anaconda虚拟环境默认路径的更改图文教程

    anaconda虚拟环境默认路径的更改图文教程

    在Anaconda中如果没有指定路径,虚拟环境会默认安装在anaconda所安装的目录下,这篇文章主要给大家介绍了关于anaconda虚拟环境默认路径更改的相关资料,需要的朋友可以参考下
    2023-10-10
  • Django+uni-app实现数据通信中的请求跨域的示例代码

    Django+uni-app实现数据通信中的请求跨域的示例代码

    这篇文章主要介绍了Django+uni-app实现数据通信中的请求跨域的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Python reversed反转序列并生成可迭代对象

    Python reversed反转序列并生成可迭代对象

    这篇文章主要介绍了Python reversed反转序列并生成可迭代对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 使用Python实现简单的数据备份

    使用Python实现简单的数据备份

    数据备份,即数据的复制和存储,是指将数据从一个位置复制到另一个位置,以防止原始数据丢失或损坏,下面我们就来了解一下用Python如何实现这一功能吧
    2025-03-03
  • 如何通过一篇文章了解Python中的生成器

    如何通过一篇文章了解Python中的生成器

    生成器指的是生成器对象,可以由生成器表达式得到,也可以使用yield关键字得到一个生成器函数,调用这个函数得到一个生成器对象,下面这篇文章主要给大家介绍了关于Python中生成器的相关资料,需要的朋友可以参考下
    2022-04-04

最新评论