WSL2 “system.vhd找不到” 错误修复教程(实测有效)

WSL2 "system.vhd找不到" 错误修复教程(实测有效)

一、错误现象

启动WSL2时提示:

无法将磁盘"C:\Program Files\WSL\system.vhd"附加到 WSL2: 系统找不到指定的文件。

错误代码: Wsl/Service/CreateInstance/CreateVm/MountDisk/HCS/ERROR_FILE_NOT_FOUND

二、适用场景

WSL2虚拟磁盘文件(system.vhd)丢失或损坏,但原有WSL发行版(如示例中的deepin)仍有残留配置时。

三、前置准备

  • 管理员身份打开PowerShell(按下Win+X,选择"Windows PowerShell (管理员)")。

  • 确保目标磁盘(如示例中的D盘)有足够空间,用于导出WSL虚拟磁盘(示例导出文件约57GB)。

四、详细修复步骤

  1. 步骤1:关闭所有WSL实例
    执行命令停止当前运行的WSL服务,避免导出时冲突:
bash 复制代码
wsl --shutdown
  1. 步骤2:查看已安装的WSL发行版

确认需要修复的发行版名称(如示例中的"deepin")及状态:

bash 复制代码
wsl --list --verbose
NAME      STATE           VERSION
deepin    Stopped         2
  1. 步骤3:导出WSL发行版虚拟磁盘(关键步骤)

先尝试tar格式导出(若失败则用VHD格式,示例中tar导出失败,改用VHD成功):

失败尝试(可跳过):

bash 复制代码
wsl --export deepin D:\WSL\deepin_251204.tar

成功方案(VHD格式导出):

bash 复制代码
wsl --export deepin D:\WSL\deepin_251204.vhdx --vhd

提示"正在导出,这可能需要几分钟时间",等待进度完成后显示"操作成功完成"即可。

  1. 步骤4:注销原有损坏的WSL发行版

清除残留的损坏配置:

bash 复制代码
wsl --unregister deepin

输出"正在注销。操作成功完成"即表示注销成功。

  1. 步骤5:卸载并更新WSL组件

先卸载现有WSL组件:

bash 复制代码
wsl --uninstall

再更新WSL到最新版本:

bash 复制代码
wsl.exe --update

提示"正在安装: 适用于 Linux 的 Windows 子系统",完成后显示"已安装 适用于 Linux 的 Windows 子系统"。

  1. 步骤6:重新导入WSL发行版

将步骤3导出的VHD文件重新导入为新的WSL实例:

bash 复制代码
wsl --import deepin D:\WSL\deepin D:\WSL\deepin_251204.vhdx --vhd

输出"操作成功完成"即修复完成。

五、验证修复结果

关闭终端、再打开终端,应该可以了

六、注意事项

  • 导出路径需提前创建文件夹(如示例中的"D:\WSL"),避免路径不存在导致导出失败。

  • 导出的VHD文件建议备份,以防后续出现问题可再次导入。

  • 命令中的"deepin""D:\WSL..."需根据自身WSL发行版名称和磁盘路径修改。

相关推荐
lbb 小魔仙15 小时前
【Harmonyos】开源鸿蒙跨平台训练营DAY3:为开源鸿蒙跨平台工程集成网络请求能力,实现数据清单列表的完整构建与开源鸿蒙设备运行验证(及常见问题与方法)
windows·开源·harmonyos·鸿蒙·开源鸿蒙·鸿蒙开平台应用
秋月的私语15 小时前
Windows系统下Git换行符问题的完整解决方案
windows·git
怜渠客16 小时前
【原创工具】Excel像素画生成 By怜渠客
windows·实用工具·怜渠客
weixin_4896900216 小时前
MicroSIP自定义web拨打协议
服务器·前端·windows
yuanmenghao16 小时前
Linux 配置Samba,Windows登录,开机自动映射登录
linux·运维·windows·操作系统·samba
晴天飛 雪16 小时前
Spring Boot 接口耗时统计
前端·windows·spring boot
凡客丶16 小时前
Windows版Miniconda打包环境迁移到内网离线环境【详解】
windows·python
小-黯17 小时前
QT编译MySQL驱动教程(Windows/Linux)
windows·qt·mysql
数智工坊17 小时前
【操作系统-处理器调度】
java·linux·服务器·windows·ubuntu
amazing-yuan17 小时前
Windows系统查看是否已安装Mysql,查找Mysql的安装地址,忘记root账号的密码时重置密码操作指引
数据库·windows·mysql