WSL2 Linux子系统迁移

Nutao

共 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
浏览 49
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报