WSL2 Linux子系统迁移

共 1424字,需浏览 3分钟

 ·

2024-01-05 09:54


众所周知,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没有了。。。子系统的文件系统迁移至其他盘,也成为了刚需。


c594d6bf558330a4eb687cbe5116eaac.webp


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、启动子系统验证功能


启动该子系统,验证功能。能正常启动,且执行命令正常,则表示成功将子系统的文件系统迁移至其他盘了。


b70b8216a2e48bc2d5a6b0b75d7d0c01.webp
浏览 120
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报