WSL2 Linux子系统迁移
众所周知,WSL2子系统的文件系统是通过windows挂载磁盘中的vhdx实现的。。。默认情况下,它们都是保存在C盘。比如Ubuntu22.04放在:
C:\Users\admin\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
但是,尽管我小心翼翼地把Linux的大文件都放到其他盘,用了一年之后,这个vhdx文件还是快速增长到了23.3GB。
PS C:\Users\admin> wsl -l -v
NAME STATE VERSION
* docker-desktop-data Stopped 2
kali-linux Stopped 2
Ubuntu-22.04 Stopped 2
docker-desktop Stopped 2
加上其他的子系统,妥妥的100GB没有了。。。子系统的文件系统迁移至其他盘,也成为了刚需。
1、停止所有的子系统
为了避免迁移带来的影响,建议先把所有的子系统都停掉。命令如下:
PS C:\Users\admin> wsl --shutdown
PS C:\Users\admin> wsl -l -v
NAME STATE VERSION
* docker-desktop-data Stopped 2
kali-linux Stopped 2
Ubuntu-22.04 Stopped 2
docker-desktop Stopped 2
2、导出子系统镜像
将已经注册的wsl子系统镜像导出至磁盘。镜像的镜像为tar压缩文件,里面包含了包括整个vhdx磁盘数据和一些必要的配置。比如我在具体的执行过程中,是导出到相对空余的D盘中了。
wsl --export kali-linux D:\wsl\Kali-Linux\images\kali-linux.tar
3、注销已导出的子系统
注销后,原路径下的vhdx文件会被移除。这个时候,C盘原本的占用空间将会被释放
wsl --unregister kali-linux
4、重新导入子系统镜像
将导出的子系统镜像导入到指定盘符的路径下。
wsl --import kali-linux D:\wsl\Kali-Linux\ D:\wsl\Kali-Linux\images\kali-linux.tar --version 2
导入成功后,会在该目录中生成一个新的vhdx虚拟磁盘文件。
5、启动子系统验证功能
启动该子系统,验证功能。能正常启动,且执行命令正常,则表示成功将子系统的文件系统迁移至其他盘了。
评论