用了很久WSL了,C盘空间总是不够,所以需要把默认装C盘的WSL distro挪个地方。

相关文档:WSL

本文以迁移windows docker路径为例

0x00 安装

控制面板 - 程序 - 启用或关闭Windows功能 勾选HyperV,适用于Linux的Windows子系统

现在Windows和linux其实都是跑在一个hyperV上的虚拟机 (不记得从哪知道的了)

我记得以前装docker是必须开这个hyperv的,那时还没有wsl2,现在docker跑wsl2上不知道还要不要hyperv了

MS store里面找个ubuntu装一下吧

0x01 打开装好的发行版,初始化一下

输个用户名设置个密码之类的

0x02 升级到WSL2

刚装好的可能是WSL version 1。 查看wsl 版本,升级到2

1
wsl -l -v

使用--set-version升级到WSL2,中间可能要到微软官网下一个补丁

0x02 迁移

docker 和 WSL其他发行版一样,都是在一个地方存了个虚拟硬盘

docker data: %HOME%\AppData\Local\Docker\wsl\data
docker wsl: %HOME%\AppData\Local\Docker\wsl\distro

Ubuntu的在Microsoft Store目录下

不知道在哪也没事

  1. 导出wsl distro到tar
1
wsl --export <distro> <path\to\dist.tar>
  1. 注销wsl distro
1
wsl --unregister <distro>
  1. 从文件引入distro,并设置distro的虚拟磁盘位置
1
wsl --import <distro> <dir to save> <path\to\dist.tar> --version 2

例如

1
2
3
wsl --export  docker-desktop-data path\to\export\docker-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data E:\WSL_dist\docker E:\WSL_dist\docker\docker-data.tar --version 2