Windows 的 Linux 子系统安装的 Ubuntu,以及 docker 数据默认存储位置放在 C 盘,使用一段时间之后,C 盘空间快满了,所以需要将wsl2的存储位置迁移到其他位置。
wsl2 数据迁移步骤#
使用指令 wsl --list -v
查看 wsl 安装的系统
1
2
3
4
5
| PS C:\Users\hacper> wsl --list -v
NAME STATE VERSION
* docker-desktop Running 2
Ubuntu Running 2
docker-desktop-data Running 2
|
- 关闭docker服务
1
| net stop "com.docker.service"
|
- 关闭wsl
- 迁移Ubuntu数据
1
2
3
4
5
6
7
8
| # 导出 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数据
1
2
3
4
5
6
7
8
9
10
11
12
13
| # 导出 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\ 的数据
1
2
3
| D:\wsl\docker\tmp\ubuntu.tar
D:\wsl\docker\tmp\docker-desktop-data.tar
D:\wsl\docker\tmp\docker-desktop.tar
|
使用 wsl –import 指令重新导入数据到新磁盘目录是,注意该目录需要设置取消压缩、加密,否则会导入失败。
扫码关注#