要彻底卸载wsl并释放全部磁盘空间,需依次执行:卸载发行版(wsl --unregister)、禁用windows功能(子系统与虚拟机平台)、删除%localappdata%packages下对应发行版文件夹、清除资源管理器linux图标(注册表或图标缓存),最后运行wsl --shutdown并检查磁盘空间。

要在Windows系统中彻底卸载Linux子系统(WSL)并释放其占用的全部磁盘空间,必须清除发行版数据、禁用核心功能、删除虚拟硬盘文件,并清理资源管理器中的残留图标——漏掉任意一环都可能让.vhdx文件继续占着几十GB空间,或导致“Linux”项在文件资源管理器侧边栏顽固存在。
卸载已安装的Linux发行版
打开Windows终端(管理员权限),执行以下命令查看当前安装的发行版:
wsl --list --verbose
你会看到类似这样的输出:
NAME STATE VERSION
* Ubuntu Stopped 2
若显示不止一个发行版,请逐个卸载。以Ubuntu为例,运行:
wsl --unregister Ubuntu
【该操作不可逆,会永久删除该发行版的所有用户数据、配置文件和已安装软件】。如需保留/home内容,卸载前请手动复制 \wsl$Ubuntuhome用户名 下的文件到Windows目录。
禁用WSL核心Windows功能
进入“控制面板 → 程序 → 启用或关闭Windows功能”,取消勾选两项:
适用于Linux的Windows子系统
虚拟机平台
点击“确定”后重启电脑。重启后,以管理员身份打开PowerShell,运行:
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux
再执行 wsl --status,确认返回结果为“WSL is not installed”或类似提示,表明核心组件已停用。
手动删除残留的虚拟硬盘文件
WSL2默认将Linux根文件系统保存为.vhdx虚拟磁盘文件,路径位于用户目录下,但Windows磁盘管理无法识别、也不会自动清理。
按 Win+R 输入 %LOCALAPPDATA%Packages 回车,打开该文件夹。
Windows 命令行编码与兼容规范。涵盖 GBK/UTF-8 编码、PowerShell/pwsh 互操作、Python/Node.js、Git 配置及代码生成规则。适用于 Windows 10/11 + MSYS2/Git Bash 环境下的所有命令行操作。
查找并删除所有以 CanonicalGroupLimited、DebianSoftware、OpenSUSE、KaliLinux、Ubuntu 等开头的文件夹——这些就是各发行版的完整运行环境容器,包含.vhdx文件及配置元数据。
删除前请确认:这些文件夹修改日期应早于你执行 wsl --unregister 的时间;若某文件夹正在被占用(提示“正在使用”),说明对应发行版未真正注销,需先在终端中再次运行 wsl --unregister。
移除资源管理器中的Linux图标
即使卸载完成,文件资源管理器左侧导航窗格仍可能显示“Linux”项,这是Windows缓存的注册表项与图标数据库未刷新所致。
方法一:重置Windows资源管理器图标缓存
以管理员身份运行CMD,依次执行:
ie4uinit.exe -ClearIconCache
taskkill /f /im explorer.exe & start explorer.exe
方法二:直接删除注册表挂载点(更彻底)
按 Win+R 输入 regedit,定位到:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace
查找子项名称中含 {1D73885E-F9A4-468D-A23C-9B604F324652} 或 Linux 字样的项,右键删除整项。
【删除前务必右键导出备份该注册表项】,误删其他GUID可能导致“此电脑”内设备图标异常。
检查并释放最终磁盘空间
打开“此电脑”,右键C盘→“属性”,查看已用空间是否明显减少。若未变化,打开磁盘清理工具(右键C盘→“属性”→“磁盘清理”→“清理系统文件”),勾选“Windows更新清理”和“临时Windows安装文件”——部分WSL内核更新包可能残留在 C:WindowsWinSxS 中。
最后,在PowerShell(管理员)中运行:
wsl --shutdown
确保所有WSL进程终止。此时再检查 %LOCALAPPDATA%Packages 目录,不应再有任何Linux相关文件夹残留。










