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
  1. 关闭docker服务
1
net stop "com.docker.service"
  1. 关闭wsl
1
wsl --shutdown
  1. 迁移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
  1. 迁移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  
  1. 删除导出数据

迁移成功之后,可以删除原来导出到 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 指令重新导入数据到新磁盘目录是,注意该目录需要设置取消压缩、加密,否则会导入失败。

扫码关注