本教程适用于需要彻底清除 WSL Ubuntu 22.04 并重新安装 Ubuntu 24.04 的用户。很多教程只介绍了 wsl --unregister 命令,但这远远不够——Appx 包、磁盘镜像、全局配置等残留都可能导致后续问题。本教程提供洁癖级的完整清理方案。

教程概述

本教程将带你完成在 Windows 系统中彻底移除 WSL Ubuntu 22.04 并全新安装 Ubuntu 24.04 的完整过程。内容包括:

  • 环境准备:备份重要数据和前置条件
  • WSL 实例清理:注销发行版实例
  • Appx 包清理:移除 Microsoft Store 安装包
  • 磁盘镜像清理:删除 ext4.vhdx 残留文件
  • 全局配置清理:重置 WSL 全局配置
  • 全新安装:安装 Ubuntu 24.04 并验收

一、适用场景

本教程适用于以下情况:

  • 你之前通过 Microsoft Store 安装了 Ubuntu 22.04 LTS
  • 你想彻底删除它,确保 WSL 数据、Appx 包、磁盘镜像、全局配置 都不残留
  • 然后重新安装 Ubuntu 24.04(WSL2)

二、环境准备

1. 必备条件

  • Windows PowerShell(管理员):建议使用管理员权限执行所有命令
  • 关闭所有 WSL 相关程序:包括 Ubuntu 终端、VS Code Remote、Docker Desktop 等

2. 重要提醒

⚠️ 警告wsl --unregister <Distro>永久删除该发行版的所有 Linux 数据,不可恢复。如果你需要保留旧系统内容,请先做导出备份。


三、可选:备份旧 Ubuntu 22.04

如果你需要保留旧系统数据,请先执行备份。不需要任何旧数据可跳过此步骤。

1. 关闭 WSL

1
wsl --shutdown

2. 导出备份

1
wsl --export Ubuntu-22.04 D:\backup\Ubuntu-22.04.tar

命令解释:

  • wsl --export:将指定发行版导出为 tar 归档文件
  • Ubuntu-22.04:发行版名称(以 wsl -l -v 显示的名称为准)
  • D:\backup\Ubuntu-22.04.tar:导出文件的保存路径

预期结果: D:\backup\Ubuntu-22.04.tar 文件生成成功。


四、清除 WSL 发行版实例(Linux 层)

这是清理的第一步,移除 WSL 中注册的 Linux 发行版实例。

1. 确保 WSL 全部停止

1
wsl --shutdown

2. 查看当前发行版

1
wsl -l -v

预期输出:

1
2
  NAME            STATE           VERSION
* Ubuntu-22.04 Stopped 2

3. 注销并删除 Ubuntu 22.04

1
wsl --unregister Ubuntu-22.04

命令解释:

  • wsl --unregister:注销指定发行版,删除其所有数据
  • 发行版名称以 wsl -l -v 显示的为准(区分大小写)

4. 验证清理结果

1
wsl -l -v

预期结果: 列表中不再出现 Ubuntu-22.04


五、清除 Appx 包(Windows 应用层)

重要:这是很多教程忽略的步骤。--unregister 只清除 WSL 实例,但 Microsoft Store 安装的 Ubuntu App 包仍可能存在。

1. 查找 Ubuntu 相关 Appx 包

使用 Windows PowerShell(管理员) 执行:

1
Get-AppxPackage -AllUsers | Where-Object {$_.Name -like "*Ubuntu*"} | Select Name, PackageFamilyName

预期输出示例:

1
2
3
Name                                    PackageFamilyName
---- -----------------
CanonicalGroupLimited.Ubuntu22.04LTS CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc

2. 卸载 Ubuntu 22.04 Appx 包

1
2
3
4
5
6
7
8
9
$AppName = "CanonicalGroupLimited.Ubuntu22.04LTS"

# 查看包详情
Get-AppxPackage -AllUsers $AppName | Select Name, PackageFullName, PackageFamilyName, InstallLocation

# 卸载包(所有用户)
Get-AppxPackage -AllUsers $AppName | ForEach-Object {
Remove-AppxPackage -Package $_.PackageFullName -AllUsers
}

命令解释:

  • Get-AppxPackage -AllUsers:获取所有用户安装的 Appx 包
  • Remove-AppxPackage -AllUsers:从所有用户移除指定包

3. 验证 Appx 包已清除

1
Get-AppxPackage -AllUsers | Where-Object {$_.Name -like "*Ubuntu22.04*"} | Select Name, PackageFamilyName

预期结果: 无输出。

常见问题:卸载失败

如果提示某些用户卸载失败或部署错误:

  1. 确认机器上是否有多个 Windows 用户账户
  2. 尝试用管理员权限对 AllUsers 卸载
  3. 若仍失败,需要登录到那个用户账户再单独卸载

六、清除磁盘镜像残留(文件层)

WSL2 的 Linux 文件系统保存在 ext4.vhdx 文件中,这是最关键的残留点。

1. 确保 WSL 停止

1
wsl --shutdown

2. 查找包目录是否存在

1
2
3
4
5
6
7
8
9
# 替换为你实际的 PackageFamilyName
$PFN = "CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc"
$PkgDir = Join-Path $env:LOCALAPPDATA "Packages\$PFN"

# 显示路径
$PkgDir

# 检查是否存在
Test-Path $PkgDir

洁癖目标: 返回 False

3. 删除残留目录(如果存在)

如果上一步返回 True,执行删除:

1
Remove-Item -LiteralPath $PkgDir -Recurse -Force

4. 扫描残留的 ext4.vhdx 文件

1
Get-ChildItem "$env:LOCALAPPDATA\Packages" -Recurse -Filter "ext4.vhdx" -ErrorAction SilentlyContinue | Select FullName, Length

预期结果:

  • 如果没有任何 WSL 发行版,应当无输出
  • 如果有其他发行版(如 docker-desktop-data),会看到它们的 ext4.vhdx,这不算 Ubuntu 22.04 残留

七、清除全局 WSL 配置(行为层)

全局配置文件 .wslconfig 可能包含之前的自定义设置,建议重置。

1. 检查配置文件是否存在

1
Test-Path "$env:USERPROFILE\.wslconfig"

2. 删除配置文件(可选)

如果你想恢复 WSL 默认配置:

1
2
Remove-Item "$env:USERPROFILE\.wslconfig" -Force
wsl --shutdown

说明: 如果你之前自定义了 WSL2 的内存、CPU、swap 等配置,删除后会恢复默认值。


八、洁癖级总验收

执行以下命令,确保所有残留都已清除:

验收项 1:WSL 发行版实例

1
wsl -l -v
  • ✅ 不存在 Ubuntu-22.04

验收项 2:Appx 包

1
Get-AppxPackage -AllUsers | Where-Object {$_.Name -like "*Ubuntu22.04*"} | Select Name, PackageFamilyName
  • ✅ 无输出

验收项 3:磁盘镜像

1
Get-ChildItem "$env:LOCALAPPDATA\Packages" -Recurse -Filter "ext4.vhdx" -ErrorAction SilentlyContinue | Select FullName, Length
  • ✅ 不存在指向 Ubuntu22.04LTS 的 ext4.vhdx

验收项 4:全局配置

1
Test-Path "$env:USERPROFILE\.wslconfig"
  • ✅ 返回 False(或你明确知道里面的内容)

九、全新安装 Ubuntu 24.04

完成清理后,开始安装新版本。

1. 确认 WSL 默认版本

1
wsl --status

确保默认版本是 WSL 2。

2. 查看可安装的发行版

1
wsl --list --online

预期输出(部分):

1
2
3
NAME                            FRIENDLY NAME
Ubuntu-24.04 Ubuntu 24.04 LTS
...

3. 安装 Ubuntu 24.04

1
wsl --install -d Ubuntu-24.04

首次启动说明:

  • 系统会自动初始化文件系统
  • 需要创建 Linux 用户名和密码

4. 设置为默认发行版(建议)

1
wsl --set-default Ubuntu-24.04

5. 验证安装结果

1
wsl -l -v

预期结果:

1
2
  NAME            STATE           VERSION
* Ubuntu-24.04 Running 2

6. 在 Ubuntu 中确认版本

1
cat /etc/os-release

预期输出:

1
2
3
4
PRETTY_NAME="Ubuntu 24.04 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
...

十、可选:核弹级清理

如果你需要完全重置 WSL 组件本身(不是单发行版),可考虑:

  1. 在 Windows 功能中关闭再打开 WSL 和 Virtual Machine Platform
  2. 卸载并重装 WSL(商店版)

⚠️ 注意:这会影响所有发行版和相关软件(如 Docker),一般不建议作为常规操作。


十一、命令速查表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# WSL 基本操作
wsl --shutdown # 关闭所有 WSL 实例
wsl -l -v # 列出所有发行版
wsl --unregister Ubuntu-22.04 # 注销发行版

# 备份与导出
wsl --export Ubuntu-22.04 D:\backup\Ubuntu-22.04.tar

# Appx 包管理
Get-AppxPackage -AllUsers | Where-Object {$_.Name -like "*Ubuntu*"}
Remove-AppxPackage -Package <PackageFullName> -AllUsers

# 安装新发行版
wsl --list --online # 查看可用发行版
wsl --install -d Ubuntu-24.04 # 安装 Ubuntu 24.04
wsl --set-default Ubuntu-24.04 # 设为默认

总结

通过本教程,你已完成了 WSL Ubuntu 的彻底清理和重装:

  • WSL 实例:使用 wsl --unregister 注销旧发行版
  • Appx 包:使用 PowerShell 移除 Microsoft Store 安装包
  • 磁盘镜像:清理 ext4.vhdx 文件残留
  • 全局配置:重置 .wslconfig 配置文件
  • 全新安装:成功安装 Ubuntu 24.04 LTS

这套洁癖级清理流程确保了系统环境干净,避免旧版本残留导致的潜在问题。

参考资源