Windows 的 Linux 子系统安装的 Ubuntu,以及 docker 数据默认存储位置放在 C 盘,使用一段时间之后,C 盘空间快满了,所以需要将wsl2的存储位置迁移到其他位置。
wsl2 数据迁移步骤
使用指令 wsl --list -v
查看 wsl 安装的系统
PS C:\Users\hacper> wsl --list -v
NAME STATE VERSION
* docker-desktop Running 2
Ubuntu Running 2
docker-desktop-data Running 2
-
关闭docker服务
net stop "com.docker.service"
-
关闭wsl
wsl --shutdown
-
迁移Ubuntu数据
# 导出 Ubuntu 数据到 D:\wsl\docker\tmp\ubuntu.tar wsl --export Ubuntu "D:\wsl\docker\tmp\ubuntu.tar" # 注销 Ubuntu wsl --unregister Ubuntu # 将Ubuntu 从 "D:\wsl\docker\tmp\ubuntu.tar" 导入到 "D:\wsl\ubuntu" wsl --import Ubuntu "D:\wsl\ubuntu" "D:\wsl\docker\tmp\ubuntu.tar" --version 2 # 设置默认用户,不然登录之后是root用户 ubuntu config --default-user hacper
-
迁移docker数据
# 导出 docker-desktop-data 到 D:\wsl\docker\tmp\docker-desktop-data.tar wsl --export docker-desktop-data D:\wsl\docker\tmp\docker-desktop-data.tar # 注销 docker-desktop-data wsl --unregister docker-desktop-data # 重新导入 docker-desktop-data 到 D:\wsl\docker\data\ wsl --import docker-desktop-data D:\wsl\docker\data\ D:\wsl\docker\tmp\docker-desktop-data.tar --version 2 # 导出 docker-desktop 到 D:\wsl\docker\tmp\docker-desktop.tar wsl --export docker-desktop D:\wsl\docker\tmp\docker-desktop.tar # 注销 docker-desktop wsl --unregister docker-desktop # 重新导入 docker-desktop 到 D:\wsl\docker\distro\ wsl --import docker-desktop D:\wsl\docker\distro\ D:\wsl\docker\tmp\docker-desktop.tar --version 2
-
删除导出数据
迁移成功之后,可以删除原来导出到 D:\wsl\docker\tmp\ 的数据
D:\wsl\docker\tmp\ubuntu.tar D:\wsl\docker\tmp\docker-desktop-data.tar D:\wsl\docker\tmp\docker-desktop.tar
注意
使用 wsl --import 指令重新导入数据到新磁盘目录是,注意该目录需要设置取消压缩、加密,否则会导入失败。