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 启动报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • django虚拟环境(virtualenv)的创建

    django虚拟环境(virtualenv)的创建

    在使用django开发项目的时候,一个环境只能对应一个项目,若不安装虚拟环境、都装在系统里面,每次项目加载都需要加载所有的安装包,本文就介绍django虚拟环境的安装,感兴趣的可以了解一下
    2021-08-08
  • 关于使用pyqt弹出消息提示框的问题

    关于使用pyqt弹出消息提示框的问题

    PyQt是一个创建GUI应用程序的工具包。它是Python编程语言和Qt库的成功融合。Qt库是最强大的库之一。PyQt是由Phil Thompson 开发。接下来通过本文给大家介绍下使用pyqt弹出消息提示框的问题,需要的朋友可以参考下
    2022-01-01
  • 利用Python开发Markdown表格结构转换为Excel工具

    利用Python开发Markdown表格结构转换为Excel工具

    在数据管理和文档编写过程中,我们经常使用 Markdown 来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一个转换工具,希望对大家有所帮助
    2025-03-03
  • Python对list列表进行去重的几种方法

    Python对list列表进行去重的几种方法

    python 列表就是我们js中的数组了,我们下文整理几个常用的python 列表去重实现方法,非常的简单好用,通过代码示例讲解的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-10-10
  • Python3的unicode编码转换成中文的问题及解决方案

    Python3的unicode编码转换成中文的问题及解决方案

    这篇文章主要介绍了Python3的unicode编码转换成中文的问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 利用Python统计Jira数据并可视化

    利用Python统计Jira数据并可视化

    目前公司使用 Jira 作为项目管理工具,在每一次迭代完成后的复盘会上,我们都需要针对本次迭代的 Bug 进行数据统计,以帮助管理层能更直观的了解研发的代码质量。本篇文章将介绍如何利用统计 Jira 数据,并进行可视化,需要的可以参考一下
    2022-07-07
  • Python爬虫DNS解析缓存方法实例分析

    Python爬虫DNS解析缓存方法实例分析

    这篇文章主要介绍了Python爬虫DNS解析缓存方法,结合具体实例形式分析了Python使用socket模块解析DNS缓存的相关操作技巧与注意事项,需要的朋友可以参考下
    2017-06-06
  • Python发送邮件实现基础解析

    Python发送邮件实现基础解析

    这篇文章主要介绍了Python发送邮件实现基础解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • python基础之装饰器详解

    python基础之装饰器详解

    这篇文章主要介绍了python基础之装饰器详解,文中有非常详细的代码示例,对正在学习python的小伙伴们有一定的帮助,需要的朋友可以参考下
    2021-04-04
  • Python yield 的使用浅析

    Python yield 的使用浅析

    这篇文章主要为大家详细介绍了Python yield的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02

最新评论