彻底卸载wsl后ext4.vhdx仍残留于appdata,需先wsl --shutdown终止进程,再通过diskpart压缩或手动删除该文件,并清理lxss注册表项及开始菜单快捷方式。

Win10彻底卸载WSL子系统后,即使已执行wsl --unregister并关闭Windows功能,ext4.vhdx虚拟磁盘文件仍会顽固驻留在AppData目录中,持续占用数GB至上百GB空间,且无法被常规磁盘清理识别。这类残留不释放,C盘就永远红着,重启、重装、甚至重置设置都无效。
确认残留虚拟磁盘是否存在
打开文件资源管理器,在地址栏直接粘贴并回车:%LOCALAPPDATA%\Packages → 找到名称含CanonicalGroupLimited、Debian、KaliLinux或Ubuntu的文件夹 → 进入其LocalState子目录 → 查看是否存在ext4.vhdx文件(大小通常在2GB以上,有的可达200GB)。
注意:该目录默认隐藏,需在资源管理器「查看」→勾选「隐藏的项目」才能看见。
强制关闭WSL后台服务并定位磁盘路径
以管理员身份运行PowerShell,依次执行:
第一步:wsl --shutdown → 强制终止所有WSL进程,否则.vhdx文件将被系统锁定,后续删除或压缩操作会失败。
第二步:wsl -l -v → 确认输出为空或仅显示There is no installed distribution,避免误删仍在运行的发行版。
第三步:手动记录下你找到的ext4.vhdx完整路径,例如:C:\Users\Alice\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx。这一步不能跳过,diskpart命令必须依赖准确路径。
用diskpart安全压缩并删除虚拟磁盘
方法一:压缩后删除(推荐,适合磁盘空间告急但想留个备份)
在管理员PowerShell中逐行执行(每行回车后等待提示符返回再输下一行):
diskpart
select vdisk file="C:\Users\Alice\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx" → 路径必须用英文双引号包裹,且不能有中文或空格(如有,请先改用户名或移动文件)。
attach vdisk readonly → 此步让diskpart能读取该VHDX结构,若报错“拒绝访问”,说明上一步wsl --shutdown未成功,需重启PowerShell重试。
compact vdisk → 这是关键动作,它会回收Linux内已删除但Windows未释放的空间。执行时间取决于磁盘大小,20GB可能耗时1–3分钟,200GB可能超10分钟,进度条不会显示,耐心等待命令返回Virtual disk successfully compacted.。
detach vdisk
exit
回到文件资源管理器,刷新LocalState目录,此时ext4.vhdx体积应明显缩小(如从186GB缩至3.2GB)。右键直接删除该文件即可。
方法二:一步彻底清除(无备份需求时最干脆)
确认wsl --shutdown已执行 → 直接进入%LOCALAPPDATA%\Packages → 找到对应发行版文件夹 → 全选并永久删除整个文件夹(Shift+Delete)。【删除前务必确认该发行版已通过wsl --unregister注销,否则可能引发系统异常】。
扫尾:清理注册表与开始菜单残留
按Win + R输入regedit → 定位到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss → 检查右侧是否还有子项(每个子项代表一个曾安装的WSL发行版)。若存在,右键删除全部子项(不要删Lxss主键本身)。
接着打开开始菜单文件夹:C:\ProgramData\Microsoft\Windows\Start Menu\Programs → 删除其中名为Ubuntu、WSL、Windows Subsystem for Linux等所有相关快捷方式。
最后重启电脑,打开磁盘管理器验证:不再出现vEthernet (WSL)虚拟网卡,运行wsl --status应返回The Windows Subsystem for Linux is not supported或类似提示。











