核心需求
- 装 WSL 2 版本的 Ubuntu 22.04(WSL 1 兼容性太差,怕后续跑工具出问题);
- 系统必须放 D 盘,C 盘空间实在扛不住;
- 不用国内镜像源,优先用微软官方渠道;
- 步骤简单好懂,别搞太复杂的操作。
最开始尝试导入 ubuntu2204.tar 文件时直接报错,发现并非现成的 WSL 镜像可用。
常见错误排查
坑 1:导入时直接报'未指定的错误'
在 PowerShell 里执行导入命令:
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu2204 D:\WSL\ubuntu2204.tar --version 2
结果弹出'未指定的错误'。反复核对路径、文件名后问题依旧。
坑 2:想查 WSL 版本,却提示'命令无效'
输入 wsl --version 报错'命令行选项无效'。此时意识到 WSL 是 Windows 自带的旧版本(收件箱版本),不支持基础命令,更无法兼容新版 Ubuntu 的导入。
坑 3:升级 WSL 后,才发现 tar 包格式错了
升级完 WSL 再导入,报错具体了:
Ubuntu_2204.1.7.0_x64.appx: ZIP uncompressed data is wrong size (read 574740460, expected 0) bsdtar: Error exit delayed from previous errors. 导入分发失败。错误代码:Wsl/Service/RegisterDistro/WSL_E_IMPORT_FAILED
原来手里的 ubuntu2204.tar 是被重命名的 Windows 应用商店 APPX 安装包(本质是 ZIP 格式)。WSL 导入只认包含 Linux 根目录(/bin、/etc 等)的纯净 tar 包,APPX 包完全不兼容。
坑 4:在 Ubuntu 终端里跑 Windows 命令
中间犯了个低级错:想关 WSL 实例,在 Ubuntu 终端里输 wsl --shutdown,提示'wsl: command not found'。后来分清:wsl 是 Windows 命令,只能在 PowerShell 里用;Ubuntu 终端里只能跑 Linux 命令。
安装与迁移步骤
更新 WSL 是解决所有兼容性问题的关键。旧版 WSL 的 bug 太多,不管是导入报错还是命令无效,更新后基本都能解决。
步骤 1:升级 WSL 到最新版
打开「管理员 PowerShell」(后面所有 Windows 端命令都在这执行),输入升级命令:
wsl --update
等待几分钟,更新完成后如果提示重启,就重启电脑。这一步千万别省,之前所有的'未指定错误',本质都是旧版 WSL 的兼容问题。
步骤 2:用微软官方命令一键装 Ubuntu 22.04
直接用 WSL 官方一键安装命令,自动从微软服务器下载正确的镜像:
wsl --install -d Ubuntu-22.04
执行后会自动下载、配置 WSL 2,完成后会自动弹出 Ubuntu 终端,按提示操作:
- 输入 UNIX 用户名(设为
szx,随便起,不用和 Windows 用户名一致); - 设密码(输入时不显示字符,正常输就行,输完按回车,再重复输一次确认);
- 后面提示填姓名、电话这些,直接按回车跳过就行。
步骤 3:退出 Ubuntu 终端,准备迁移到 D 盘
安装完先退出 Ubuntu 终端,三种方法任选:
- 直接点终端窗口右上角的'×'关闭;
- 输入
exit再按回车; - 按
Ctrl + D快捷键。
步骤 4:把 Ubuntu 迁移到 D 盘(避免占 C 盘)
全程在管理员 PowerShell 里执行,步骤很简单:
设置默认用户为之前建的 szx(避免下次启动进 root 账户):
ubuntu2204 config --default-user szx
先关闭所有 WSL 实例,防止文件被占用:
wsl --shutdown
把 C 盘的 Ubuntu 导出成 tar 镜像到 D 盘(确保 D:\WSL 文件夹已存在):
wsl --export Ubuntu-22.04 D:\WSL\ubuntu2204_szx.tar
注销 C 盘的 Ubuntu 实例(释放 C 盘空间):
wsl --unregister Ubuntu-22.04
把镜像重新导入到 D 盘指定目录:
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu2204 D:\WSL\ubuntu2204_szx.tar --version 2
步骤 5:验证迁移 + 更新 Ubuntu 软件包
- 启动 D 盘的 Ubuntu:从开始菜单搜'Ubuntu 22.04 LTS',点击启动,会直接进入
szx用户的终端。
更新软件包(确保环境最新,后续装工具不缺依赖):在 Ubuntu 终端输入,输完密码等待完成:
sudo apt update && sudo apt upgrade -y
这里重点说下:因为已经迁移到 D 盘,所有下载的软件包和更新文件都会存在 D 盘的 D:\WSL\Ubuntu2204\rootfs 目录下,完全不占 C 盘空间。
验证迁移是否成功:输入以下命令,若显示 LOCATION: D:\WSL\Ubuntu2204,就说明成了:
wsl --list --verbose
总结
最终效果
- 成功装了 WSL 2 版本的 Ubuntu 22.04,默认用户
szx权限正常; - 整个系统都在 D 盘,C 盘没增加任何占用;
- 全程用的微软官方渠道,没碰国内镜像源;
- 环境稳定,后续可以直接装需要的工具。
避坑重点
- 装 WSL 先更版本!旧版 WSL bug 多,很多报错都是因为没更新,
wsl --update一条命令就能解决; - 命令别用错地方:
wsl相关命令在 PowerShell 里执行,apt这类 Linux 命令在 Ubuntu 终端里用; - 新手别瞎找 tar 包:直接用
wsl --install -d 分发版名称一键安装,比手动导入省太多事; - 迁移前必关 WSL 实例:
wsl --shutdown执行完再迁移,避免文件占用报错。

