WSL2 无法启动、重装 Ubuntu 与执行 configure.sh 权限报错的完整解决方案


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 的虚拟磁盘文件 (ext4.vhdx) 丢失或损坏,导致 Ubuntu 无法挂载。
这在系统清理、OneDrive 同步、杀毒误删时非常常见。


🩺 二、第一阶段:确认问题原因

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

若可挂载说明文件没坏,否则文件损坏严重。


方法 2:文件不存在(最常见)

说明 Ubuntu 的根文件系统丢失,只能重装。


🔧 四、第三阶段:卸载旧的 Ubuntu 实例

1️⃣ 停止 WSL

wsl --shutdown

2️⃣ 注销(彻底删除)旧 Ubuntu

wsl --unregister Ubuntu-22.04

若不确定发行版名称:

wsl --list

3️⃣ 删除残留文件夹

删除以下目录(若存在):

C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc

🪄 五、第四阶段:重新安装 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

表示系统无法访问 WSL 创建虚拟磁盘文件。

解决步骤:

✅ 1️⃣ 停止 WSL 服务

wsl --shutdown
net stop LxssManager

✅ 2️⃣ 启用必要组件

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

然后重启电脑。

✅ 3️⃣ 检查 AppData 目录权限

确保:

C:\Users\xxx\AppData\Local\Packages\
  • 你拥有“完全控制”权限;
  • 没有被 OneDrive 云同步(若有云图标 → 右键 “始终保留在此设备上”)。

✅ 4️⃣ 重新安装

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 路径下执行脚本。

✅ 方法 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

若第一行不是:

#!/bin/bash

请手动添加,然后保存文件。


📘 十、知识扩展:理解 Linux 权限

权限符号 含义
r 可读 (read)
w 可写 (write)
x 可执行 (execute)

例如:

-rwxr-xr-x

表示:

  • 所有者可读/写/执行;
  • 组用户和其他人可读/执行。

✅ 十一、总结

阶段 问题 解决方法
1️⃣ 无法附加 VHDX 文件丢失或损坏
2️⃣ 卸载 Ubuntu wsl --unregister Ubuntu-22.04
3️⃣ 重装时报错 0x80071772 启用 WSL 组件、检查权限
4️⃣ 安装成功但脚本无法执行 chmod +x configure.shbash configure.sh
5️⃣ 位于 Windows 目录脚本 复制到 Linux 路径下再运行

💡 十二、建议与最佳实践

1️⃣ 定期备份 WSL 实例

wsl --export Ubuntu-22.04 D:\Backup\Ubuntu22.04.tar

2️⃣ 不要清理 AppData\Local\Packages\CanonicalGroupLimited…
系统清理工具或 OneDrive 会误删 ext4.vhdx

3️⃣ 脚本优先放在 Linux 主目录下执行
路径:/home/<用户名>/

4️⃣ 启用 WSL 自动更新

wsl --update

文章作者: 0xdadream
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xdadream !
评论
  目录