引言
在Windows 上的WSL2 和 Docker 的存储都是通过虚拟硬盘文件实现的,虚拟硬盘文件会随着WSL的使用而不断地占用越来越多的空间,即使我们不断删除WSL系统内的文件也不会使得虚拟磁盘的磁盘空间占用减小。为了减少占用的磁盘空间,我们需要对磁盘空间进行压缩。如果想迁移WSL2所占的磁盘的空间到其他的盘,比如D盘,可以参考WSL(Windows Subsystem for Linux)安装、迁移D盘、设置默认登录账户、更改root密码和授予普通用户sudo权限
默认路径
对于WSL2,默认的保存路径是
C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_xxxx\LocalState\ext4.vhdx
对于Docker 来说有两个保存的路径C:\Users\xxx\AppData\Local\Docker\wsl\data\ext4.vhdx
C:\Users\xxx\AppData\Local\Docker\wsl\main\ext4.vhdx
压缩磁盘
压缩虚拟硬盘步骤如下:
打开并且以管理员身份运行命令行,使用管理员身份可以减少权限问题 。输入指令
diskpart
进入磁盘管理
选中对应的文件,比如C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_xxxx\LocalState\ext4.vhdx
select vdisk file="C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_xxxx\LocalState\ext4.vhdx"
compact vdisk
运行命令,执行压缩,等待压缩过程完成,可以看到,经过压缩以后,虚拟硬盘的磁盘空间占用减少。
以此类推,就能实现对Windows 上 WSL 和 Docker 虚拟硬盘的压缩。