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发行版名称和磁盘路径修改。

相关推荐
公子小六16 小时前
基于.NET的Windows窗体编程之WinForms滑块与上下控件
windows·microsoft·c#·.net·winforms
学海浪太大21 小时前
笔记本电脑插入显示器没反应
windows
黄一一9112431 天前
告别手动敲字,本地截图 OCR,识别完直接复制!开源截图识别工具
windows·ocr·开源软件·贴图
洪流之源1 天前
Windows 远程 Ubuntu 24.04 桌面
linux·windows·ubuntu
是小李呀1 天前
Windows 虚拟内存配置完全指南:从原理到实操,彻底解决内存不足与 OOM 问题
windows
x861 天前
WSL 里的 node 不是你装的那个
wsl
毕竟是shy哥1 天前
windows电脑WSL下本地构建docker镜像
windows·docker·容器
kakakahahahaha1 天前
【Windows】C盘低空间反复复发的排查与扩容边界
c语言·windows·电脑·笔记本电脑·内容运营·软件需求
2301_800074212 天前
map,list简单方法
windows·python·list
技术不好的崎鸣同学2 天前
Windows 红队实战:前言
windows