简介
WSL2使用虚拟化层为它带来更高的性能和兼容性。但是,WSL2 的少数缺点之一是它使用虚拟磁盘 (VHDX) 来存储文件系统。这意味着您的虚拟磁盘占用了 100GB,但 WSL2 只需要 15GB...
所以要寻找一种缩小 WSL2 虚拟磁盘的方法,以此增加驱动器上可用磁盘空间,经过几次错误的尝试,找到了一种适合我的方法。希望它也能帮助你!
开始之前
在收缩 WSL2 虚拟磁盘之前,需要确保 WSL2 未运行。
您可以使用PowerShell中的命令检查它是否正在运行:wsl -l -v
它应该在空闲停止,你可以使用命令停止:wsl -t WLinux
强烈建议您备份 WSL2 安装,由于不同的环境,可能会导致数据损坏。所以,请先备份一下!
备份
首先,在PowerShell中运行命令wsl -l -v以打印所有当前安装的 Linux 发行版的列表。知道创建备份的确切名称很重要。例如,您可能拥有“Ubuntu-22.04”而不仅仅是“Ubuntu”。
获得此信息后,以下命令将导出所选发行版的完整备份。在备份之前, cd 进入您要保存备份的目录。您在命令行上的任何目录都是您的备份将默认保存到的目录。
例如,备份Debian这样:
wsl --export Debian debianbackup.tar
或者,您在备份时可以不使用cd进入要备份的目录下,直接在导出过程中指定文件位置和文件名。例如:
wsl --export Ubuntu c:\users\desktop\ubuntu27.tar
收缩 WSL2 虚拟磁盘
您可以使用工具来压缩 VHDX。这允许您收缩 WSL2 虚拟磁盘文件,回收磁盘空间。它对我有用,没有任何数据损坏,将文件大小从 100GB 降低到 15GB。不过,您的结果可能会有所不同。diskpart
在PowerShell中启动该工具:diskpart
在powershell中输入diskpart后将打开一个新窗口:
接下来需要指定你wsl2的 VHDX 文件的路径
选择diskpart,并使用 VHDX 的完整存储路径
选择后,您可以要求压缩它:compact vdisk
完成后,您可以关闭当前窗口,至此,vhdx压缩完成。