wsl 子系统(window 上的 linux 系统)迁移到非 C 盘的位置 使用 Ubuntu 系列
一个辅助软件(是一个压缩包):LxRunOffline
很多教程都是说要添加环境变量,其实没那个必要。
如果有安装过 gitbash 的直接在当前目录打开。没有的话就到 cmd 中进入到这个目录就行了。这个都是基本操作了,如果切换目录也不会那就不要折腾 linux 了。
查看已经安装过的 wsl 列表
XML/HTML代码
- # 进入到解压的目录,执行 LxRunOffline.exe
- ./LxRunOffline.exe list
可以看得出我安装的是 Ubuntu-18.04。如果还没安装的可以先到应用商店安装一个。
停止运行 WSL 服务
进入服务(任务管理器可以打开) 找到 LxssManager 右键停止
开始迁移系统
XML/HTML代码
- ./LxRunOffline.exe move -n Ubuntu-18.04 -d D:/WSL/Ubuntu-18.04
特别注意的地方:
Ubuntu-18.04 是你们一开始安装的版本,每个人估计都不一样,光是 ubuntu 就有 Ubuntu 和 Ubuntu-18.04,根据你们 list 列出来的名称为准
路径要用 /。这个很重要,因为如果你们用的是 gitbash 的话,不用 / 识别不出来路径。
最后面的 D 盘的位置就随你们喜欢,你们自己定
等待执行完成即可,如果一开始是从 C 盘迁移,会有很多警告,可以忽略不管。如果已经迁移到其他盘再次迁移的话,没有东西输出的,等待执行完成就是了。
查看结果
XML/HTML代码
- ./LxRunOffline.exe get-dir -n Ubuntu-18.04
同理,ubuntu-18.04 换成你们自己的 linux 版本就行了。
然后就大功告成了!
Ubuntu .wsl 文件一键装到 D 盘 + 已安装迁移
WSL 默认装 C 盘,虚拟硬盘 vhdx 动辄 20GB+,C 盘红条警告不是梦?本文教你3招:用 Ubuntu 官方 .wsl 文件直接装到 D 盘、--location 参数指定路径、已安装的 WSL 一键搬家到 D 盘。从此 C 盘自由。
WSL2 的 Linux 文件系统存储在一个 ext4.vhdx 虚拟硬盘 文件中。这个文件有一个致命特性:
只增不减 —— 你在 WSL 里装软件、下镜像、编译代码,vhdx 会自动扩容;但删文件后,Windows 端的 vhdx 体积不会自动缩小。
这意味着:
XML/HTML代码
- 操作 vhdx 变化
- 安装 Docker 镜像(5GB) +5GB ✅
- 删除 Docker 镜像(5GB) 0GB
- ❌ 不会缩小
- 编译 Linux 内核(10GB) +10GB ✅
- 清理编译产物 0GB
- ❌ 不会缩小
默认安装路径在 C 盘深处:
C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu...\LocalState\ext4.vhdx
如果你的 C 盘只有 128GB,WSL 吃掉 30-50GB 是家常便饭。
方案一:用 Ubuntu 官方 .wsl 文件直接装到 D 盘 ⭐推荐
Ubuntu 官方提供了 .wsl 后缀 的专用安装镜像,配合 WSL 2.4+ 的 --install --from-file 命令,可以直接指定安装目录。
1. 检查 WSL 版本
XML/HTML代码
- wsl --version
需要 WSL ≥ 2.7.1(支持 --location 和 --from-file 参数)。版本过低请更新:
XML/HTML代码
- wsl --update
2. 下载 Ubuntu .wsl 文件
Ubuntu 官方镜像站提供 .wsl 格式的专用文件:
XML/HTML代码
- 版本 下载地址
- Ubuntu 26.04 LTS(推荐) https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl
- Ubuntu 24.04 LTS https://releases.ubuntu.com/24.04/ubuntu-24.04-wsl-amd64.wsl
- Daily 构建版 https://cdimage.ubuntu.com/ubuntu-wsl/daily-live/current/
国内用户可用阿里云镜像加速:
https://mirrors.aliyun.com/ubuntu-cdimage/ubuntu-wsl/
下载命令(PowerShell):
XML/HTML代码
- # 创建下载目录
- mkdir D:\WSL\images -Force
- # 下载 Ubuntu 26.04 LTS .wsl 文件(约400MB)
- curl.exe -L -o D:\WSL\images\ubuntu-26.04-wsl-amd64.wsl `
- https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl
3. 一键安装到 D 盘
XML/HTML代码
- # 安装到 D 盘指定目录
- wsl --install --from-file D:\WSL\images\ubuntu-26.04-wsl-amd64.wsl --location D:\WSL\Ubuntu-26.04
安装完成后,vhdx 文件直接生成在 D:\WSL\Ubuntu-26.04\ 下,不占 C 盘 1 字节。
4. 首次配置
XML/HTML代码
- # 启动
- wsl -d Ubuntu-26.04
- # 首次进入会提示创建用户名和密码
- # 如果没有提示,手动创建:
- adduser myuser
- usermod -aG sudo myuser
- # 设置为默认用户
- cat > /etc/wsl.conf <<'EOF'
- [user]
- default=myuser
- [boot]
- systemd=true
- EOF
- # 退出重启
- exit
- wsl -t Ubuntu-26.04
- wsl -d Ubuntu-26.04
5. 设置为默认发行版
XML/HTML代码
- wsl --set-default Ubuntu-26.04
方案二:在线安装时指定 D 盘
如果你不想手动下载 .wsl 文件,WSL 也支持在线安装时直接指定目录:
XML/HTML代码
- # 在线安装 Ubuntu 到 D 盘
- wsl --install -d Ubuntu --location D:\WSL\Ubuntu
⚠️ 注意:此方式从 Microsoft Store 下载,速度可能较慢,且版本可能不是最新 LTS。
方案三:已装在 C 盘?3步搬家到 D 盘 ⭐重点
如果你已经把 WSL 装在了 C 盘,不用卸载重装,导出→注销→导入 三步即可搬迁。
XML/HTML代码
- 第1步:导出备份
- # 先关闭所有 WSL
- wsl --shutdown
- # 查看当前发行版名称
- wsl -l -v
- # 导出为 tar 文件(路径自己改)
- wsl --export Ubuntu D:\WSL\ubuntu-backup.tar
- 导出时间取决于你的 WSL 大小,10-30 分钟不等。期间 不要操作 WSL。
- 第2步:注销 C 盘旧版
- # 确认导出文件存在且大小合理后,执行注销
- wsl --unregister Ubuntu
- ⚠️ 此操作会删除 C 盘上的 ext4.vhdx,释放 C 盘空间。请确保上一步导出成功!
- 第3步:导入到 D 盘
- # 创建目标目录
- mkdir D:\WSL\Ubuntu -Force
- # 导入到 D 盘
- wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\ubuntu-backup.tar --version 2
- 导入完成后,检查 vhdx 位置:
- # 确认 vhdx 在 D 盘
- dir D:\WSL\Ubuntu\ext4.vhdx
⚠️ 迁移后必须恢复默认用户
导入后 WSL 默认以 root 登录,需要恢复普通用户:
XML/HTML代码
- 方法一:命令行设置
- Ubuntu config --default-user 你的用户名
- 方法二:修改 wsl.conf
- # 进入 WSL
- wsl -d Ubuntu
- # 编辑配置
- sudo nano /etc/wsl.conf
- # 添加以下内容
- [user]
- default=你的用户名
- 方法三:注册表(以上都不生效时)
- 1. 打开 regedit
- 2. 定位到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss
- 3. 找到对应发行版的 DefaultUid,改为 1000(即第一个普通用户的 UID)
- 迁移完成后清理
- # 删除备份文件(释放空间)
- del D:\WSL\ubuntu-backup.tar
- # 验证一切正常
- wsl -l -v
附加技能:vhdx 瘦身,回收已删除文件的空间
即使迁移到 D 盘,vhdx 仍会"只增不减"。定期瘦身可以回收空间:
XML/HTML代码
- 方法一:diskpart(最通用)
- # 关闭 WSL
- wsl --shutdown
- # 打开 diskpart
- diskpart
- # 在 diskpart 中执行(路径替换为你的 vhdx 实际路径)
- select vdisk file="D:\WSL\Ubuntu\ext4.vhdx"
- attach vdisk readonly
- compact vdisk
- detach vdisk
- exit
瘦身效果:从 30GB 压缩到 12GB 很常见,取决于你在 WSL 中删除了多少文件。
XML/HTML代码
- 方法二:WSL 内置命令(新版 WSL 支持)
- wsl --shutdown
- wsl --manage Ubuntu --compact
- 方法三:Hyper-V 管理器(可视化)
- 1. Win+S 搜索 "Hyper-V 管理器"
- 2. 右侧操作面板 → "编辑磁盘"
- 3. 选择 vhdx 文件 → 选择"压缩"
完整速查卡
新安装到 D 盘(.wsl 文件方式)
XML/HTML代码
- # 1. 下载 .wsl 文件
- curl.exe -L -o D:\WSL\ubuntu-26.04.wsl https://releases.ubuntu.com/26.04/ubuntu-26.04-wsl-amd64.wsl
- # 2. 安装到 D 盘
- wsl --install --from-file D:\WSL\ubuntu-26.04.wsl --location D:\WSL\Ubuntu-26.04
- # 3. 设为默认
- wsl --set-default Ubuntu-26.04
C 盘迁移到 D 盘
XML/HTML代码
- # 1. 导出
- wsl --shutdown
- wsl --export Ubuntu D:\WSL\ubuntu-backup.tar
- # 2. 注销(释放C盘空间)
- wsl --unregister Ubuntu
- # 3. 导入到 D 盘
- wsl --import Ubuntu D:\WSL\Ubuntu D:\WSL\ubuntu-backup.tar --version 2
- # 4. 恢复默认用户
- Ubuntu config --default-user 你的用户名
vhdx 瘦身
XML/HTML代码
- wsl --shutdown
- diskpart
- # select vdisk file="D:\WSL\Ubuntu\ext4.vhdx"
- # attach vdisk readonly
- # compact vdisk
- # detach vdisk
- # exit
常见问题
Q:迁移后 Docker 还能用吗?
能用。Docker Desktop 的 WSL 集成是独立的发行版(docker-desktop 和 docker-desktop-data),如果你也用了 Docker,建议把这两个也迁到 D 盘:
XML/HTML代码
- wsl --export docker-desktop-data D:\WSL\docker-desktop-data-backup.tar
- wsl --unregister docker-desktop-data
- wsl --import docker-desktop-data D:\WSL\docker-desktop-data D:\WSL\docker-desktop-data-backup.tar --version 2
Q:迁移后 Windows Terminal 的配置还在吗?
在。Terminal 的配置存储在 Windows 的 settings.json 中,不受 WSL 迁移影响。如果图标或名称变了,检查 Terminal 配置中的 guid 是否对应。
Q:.wsl 文件和 .appx 有什么区别?
XML/HTML代码
- 格式 安装方式 指定目录 适用场景
- .wsl wsl --install --from-file ✅ 支持 --location 推荐,直接装到任意盘
- .appx 双击安装或 Store ❌ 只能装 C 盘 旧方式,需后续迁移
- 在线安装 wsl --install -d Ubuntu ✅ 支持 --location 需联网,版本可能滞后

