WSL2 子系统迁移(docker&ubuntu)

将wsl子系统发行版(docker-desktop-data)迁移到E盘

(1)查看wsl子系统发行版

wsl -l -v
image-20211118222437388.png

(2)关闭docker-desktop

在任务通知栏那里退出就可以了

(3)关闭所有wsl子系统发行版

wsl --shutdown

(4)将子系统导出到自己想要的地方E:\Development\Docker\docker-desktop-data.tar

wsl --export docker-desktop-data E:\DevelopTools\Docker\docker-desktop-data.tar
image-20211118222922669.png

(5)注销docker-desktop-data子系统发行版。

wsl --unregister docker-desktop-data
image-20211118222850364.png

(6)重新导入docker-desktop-data(注意:要先写目录,然后再写文件名)

 wsl --import docker-desktop-data E:\DevelopTools\Docker\ E:\DevelopTools\Docker\docker-desktop-data.tar --version 2
image-20211118223503217.png

(7)迁移完成,重新打开docker

成功将C盘下的数据文件转移到D盘。重新打开后,正常工作。C盘Docker文件也从之前的几个G编程几百M。
image-20211118223557597.png
image-20211118223728602.png

将ubuntu wsl子系统发行版迁移到E盘

感觉步骤与上述差不多。尝试一下

(1)关闭所有的wsl子系统

wsl --shutdown
image-20211118224446284.png

(2)导出子系统到想要的地方

wsl --export Ubuntu E:\DevelopTools\ubuntu_wsl\Ubuntu.tar
image-20211118224639323.png

(3) 注销Ubuntu

wsl --unregister Ubuntu
image-20211118224846704.png

(4)重新导入Ubuntu (注意要先写目录,再写目录下的文件)

 wsl --import Ubuntu E:\DevelopTools\ubuntu_wsl\ E:\DevelopTools\ubuntu_wsl\Ubuntu.tar --version 2
image-20211118225133390.png

(5)将Ubuntu设置为默认子系统


image-20211118225344595.png

(6)成功将Ubuntu移到E盘,解放C盘


image-20211118225416042.png

(7)有个问题,在没有迁移之前对wsl ubuntu设置的内容全部没了。 有什么办法将之前的设置给弄回来呢?网上查找一番,发现是用户的问题。wsl import之后的子系统,会默认root用户登录。但是我之前的用户是win。所以只要用户切换到win用户就可以了。

su win #这里切换称自己的用户名 如果不记得的可以在/etc/passwd进行查看
image-20211118231901709.png

(8)还有一个小问题,如果重新打开wsl ubuntu,默认还是root用户。如何调整为默认普通用户呢?修改注册表

  • 首先在注册表那 ctrl + F 查找Lxss
  • 找到BasePath 数据为迁移后目录的那个文件夹 我这里是{2ba16d93-...}
  • DefaultUid的数据修改为ubuntu中普通用户对应的数字
  • 然后就完美解决了,变为熟悉的界面
image-20211118232614075.png
image-20211118232907787.png
image-20211118232949826.png

结果

解放了C盘,将4G多的空间移到其他硬盘。

参考

https://www.cnblogs.com/oboth-zl/p/12769220.html#_label0

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容