Published on

解决 WSL 占用 C 盘空间过大问题:迁移到其他磁盘

Authors

💡 TL;DR: 本文介绍了如何将 WSL 从系统盘迁移到其他磁盘,以解决 C 盘空间不足的问题。主要通过 wsl --exportwsl --import 命令实现。

背景

WSL(Windows Subsystem for Linux) 默认将所有数据存储在系统盘(C 盘),对于寸土寸金的 C 盘来说,非常的不合理。本文将介绍如何将 WSL 环境迁移到其他磁盘。

迁移步骤

1. 查看当前安装的 WSL 发行版

首先进入 WSL,记录自己当前的用户名,后续会用到

Zsh
➜  ~ echo $USER
admin

记录下默认用户名,比如 admin

然后在 PowerShell 中关闭当前的 WSL 系统,并列出目前已安装的 WSL

PowerShell
# 关闭 WSL 系统
wsl --shutdown

# 查看当前安装的 WSL 发行版
wsl -l -v

你将会看到类似如下输出:

  NAME      STATE           VERSION
* Ubuntu    Running         2

记录下你想要迁移的发行版名称,比如 Ubuntu

2. 导出现有 WSL 环境

将当前的 WSL 环境导出为一个 tar 文件:

PowerShell
# 导出 WSL 发行版
wsl --export Ubuntu D:\ubuntu.tar

3. 注销当前 WSL 实例

PowerShell
# 注销现有的 WSL 实例
wsl --unregister Ubuntu

⚠️ 注意:这一步会删除原有的 WSL 环境,请确保已经完成导出操作。

4. 重新导入 WSL 到新位置

创建新的目标文件夹并导入:

PowerShell
# 创建新的目标文件夹
mkdir D:\WSL

# 导入 WSL 到新位置
wsl --import Ubuntu D:\WSL D:\ubuntu.tar

在使用 wsl --import 命令导入 WSL 后,系统会默认使用 root 用户登录。要恢复到之前的用户,可以执行:

PowerShell
# 设置默认用户
ubuntu.exe config --default-user admin

💡 提示:将 admin 替换为你在第一步中记录下的用户名

验证迁移是否成功

PowerShell
# 检查 WSL 状态
wsl -l -v

至此,我们完成了 WSL 的迁移工作。完结撒花!


🔍 相关资源