WSL2 无法启动、重装 Ubuntu 与执行 configure.sh 权限报错的完整解决方案
适用系统:Windows 10 / 11
适用发行版:Ubuntu 20.04 / 22.04 / 24.04
🧱 一、问题背景
你在执行:
wsl -d Ubuntu-22.04
时出现:
无法将磁盘“C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx”附加到 WSL2:系统找不到指定的文件。
错误代码: Wsl/Service/CreateInstance/MountVhd/HCS/ERROR_FILE_NOT_FOUND
这个错误只说明 WSL 在创建实例或挂载虚拟磁盘时找不到指定路径,不能直接等同于“VHDX 已损坏”。常见情况包括:注册信息仍指向旧路径、VHDX 被移动或删除、发行版迁移/卸载不完整等。
先确认发行版实际注册路径和 ext4.vhdx 是否存在,再决定是修复路径、恢复备份,还是重装。不要一看到这个错误就直接注销发行版。
🩺 二、第一阶段:确认问题原因
1️⃣ 检查虚拟磁盘是否存在
打开资源管理器路径:
C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\
查看是否有文件:ext4.vhdx
| 结果 | 下一步 |
|---|---|
| ✅ 存在 | 继续检查注册路径、占用、挂载及文件系统状态,不能仅凭“存在”判断已损坏 |
| ❌ 不存在 | 检查是否被移动、迁移到其他目录、误删,或注册信息仍指向旧位置 |
⚙️ 三、第二阶段:解决 ext4.vhdx 丢失问题
方法 1:如果文件存在但打不开
1️⃣ 关闭所有 WSL 服务:
wsl --shutdown
2️⃣ 尝试修复:
diskpart
然后依次输入:
select vdisk file="C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"
attach vdisk readonly
这只能检查虚拟磁盘能否附加,不能据此判断内部 ext4 文件系统是否完整。附加失败也可能由路径、占用或权限问题造成。检查结束后执行 detach vdisk,再执行 exit 退出 DiskPart。
方法 2:文件不存在(最常见)
先核对该发行版注册的实际路径,并查找备份、磁盘移动记录或回收站。确认 VHDX 无法找回、且不再需要旧系统数据后,才按下面步骤重装。
🔧 四、第三阶段:卸载旧的 Ubuntu 实例
1️⃣ 停止 WSL
wsl --shutdown
2️⃣ 注销(彻底删除)旧 Ubuntu
这一步会永久删除该发行版的数据、软件和配置。若 VHDX 还存在,先在 WSL 停止后复制到其他位置备份;能够启动或导出时,也可先用 wsl --export 备份。确认旧数据已保留或可以放弃后再执行。
wsl --unregister Ubuntu-22.04
若不确定发行版名称:
wsl --list
3️⃣ 不要手工删除发行版目录
执行 wsl --unregister 后,不需要再把 AppData\Local\Packages\... 里的目录当成“残留”手工清理。这里可能同时包含应用包自身数据和发行版状态,路径也会随安装方式变化。
如果只是准备重新安装,先确认 wsl -l -v 中旧实例已经不存在,再通过 wsl --install 或 Microsoft Store 正常安装即可。
🪄 五、第四阶段:重新安装 Ubuntu
方式一:命令行快速安装(推荐)
在 PowerShell(管理员)运行:
wsl --install -d Ubuntu-22.04
如果系统提示 “Installing, this may take a few minutes…
WslRegisterDistribution failed with error: 0x80071772”,请继续往下看👇
🧯 六、第五阶段:解决安装时报错 0x80071772
错误信息:
WslRegisterDistribution failed with error: 0x80071772
Error: 0x80071772
0x80071772 对应 Windows 的“指定文件已加密,而当前用户没有解密能力”错误。它和普通 NTFS 权限不足不是一回事,也不是靠给 AppData 整个目录授予“完全控制”就能解决。
解决步骤:
✅ 1️⃣ 先确认错误文本
如果完整错误明确包含类似:
The specified file is encrypted and the user does not have the ability to decrypt it.
就优先检查发行版安装位置、父目录或目标磁盘是否启用了 EFS 文件加密。不要先去改整个 AppData 的 ACL 权限。
✅ 2️⃣ 检查安装目录是否被 EFS 加密
在资源管理器中查看发行版所在目录或目标安装位置的 属性 -> 高级,确认“加密内容以便保护数据”是否被启用。如果目录确实被 EFS 加密,应先在能够正常解密该目录的用户上下文中解除加密,或把 WSL 安装到未使用 EFS 的本地目录。
BitLocker 是整卷加密,与 EFS 不是同一个机制;正常解锁的 BitLocker 系统盘本身不会等同于这个错误。
✅ 3️⃣ 再检查 WSL 状态
wsl --status
wsl --version
wsl --update
确认 WSL 本身工作正常后,再重新安装发行版:
wsl --install -d Ubuntu-22.04
如果错误文本不是“文件已加密”,而是其他代码,就应按那个具体错误重新排查,不要把这一节套到所有安装失败场景。
🚀 七、第六阶段:初始化 Ubuntu 系统
安装完成后首次运行:
wsl -d Ubuntu-22.04
系统会提示:
Enter new UNIX username:
New password:
设置用户名与密码后即可进入 Ubuntu。
💾 八、第七阶段:备份与恢复建议
建议你立即备份 WSL 虚拟磁盘,以防下次损坏。
✅ 导出 WSL 系统镜像:
wsl --export Ubuntu-22.04 D:\Backup\Ubuntu22.04.tar
✅ 若以后要恢复:
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu22.04 D:\Backup\Ubuntu22.04.tar
⚙️ 九、第八阶段:执行 configure.sh 报错 Permission denied
安装好 Ubuntu 后,你可能遇到:
-bash: ./configure.sh: Permission denied
这通常是因为文件没有执行权限。
🪜 步骤 1:查看文件权限
ls -l configure.sh
若输出为:
-rw-r--r--
说明无执行权限。
🪜 步骤 2:添加执行权限
chmod +x configure.sh
再次运行:
./configure.sh
🧩 特殊情况 1:脚本位于 Windows 目录(如 /mnt/c)
WSL 可以执行 Windows 挂载目录中的脚本;若出现权限问题,应检查挂载选项、文件权限和 CRLF 换行。也可以采用下面两种方式。
✅ 方法 1:
cp /mnt/c/Users/逐梦/Desktop/configure.sh ~/
cd ~
chmod +x configure.sh
./configure.sh
✅ 方法 2:
直接使用 bash 执行(绕过执行权限检查):
bash /mnt/c/Users/逐梦/Desktop/configure.sh
🧩 特殊情况 2:脚本缺少或写错解释器声明
打开文件:
head -n 1 configure.sh
常见 Bash 脚本可以使用:
#!/usr/bin/env bash
或:
#!/bin/bash
具体应与脚本实际使用的 shell 语法一致;如果直接用 bash configure.sh 启动,则不依赖可执行位和 shebang 来选择解释器。
📘 十、知识扩展:理解 Linux 权限
| 权限符号 | 含义 |
|---|---|
| r | 可读 (read) |
| w | 可写 (write) |
| x | 可执行 (execute) |
例如:
-rwxr-xr-x
表示:
- 所有者可读/写/执行;
- 组用户和其他人可读/执行。
✅ 十一、总结
| 阶段 | 问题 | 解决方法 |
|---|---|---|
| 1️⃣ | 无法附加 VHDX | 先核对注册路径和 ext4.vhdx 是否存在,不直接判定损坏 |
| 2️⃣ | 确认旧实例无法恢复 | 备份能保留的数据后,再考虑 wsl --unregister Ubuntu-22.04 |
| 3️⃣ | 重装时报错 0x80071772 | 优先检查 EFS 加密及完整错误文本 |
| 4️⃣ | 安装成功但脚本无法执行 | 检查执行权限、挂载位置和换行格式,可用 chmod +x 或 bash script.sh |
| 5️⃣ | 位于 Windows 目录脚本 | 需要时复制到 Linux 文件系统中再执行 |
💡 十二、建议与最佳实践
1️⃣ 定期备份 WSL 实例
wsl --export Ubuntu-22.04 D:\Backup\Ubuntu22.04.tar
2️⃣ 不要手工清理 WSL 的发行版数据目录
ext4.vhdx 就是 WSL2 发行版的主要 Linux 文件系统。不要把 AppData 或自定义 WSL 安装目录里的相关文件当普通缓存删除;需要迁移或卸载时优先使用 WSL 自带命令。
3️⃣ 脚本优先放在 Linux 主目录下执行
路径:/home/<用户名>/
4️⃣ 检查并更新 WSL
wsl --update
评论将在接近此处时加载,也可点击立即加载。