解决Windows中使用WSL2占用磁盘空间问题

鸿辰 工具杂汇 622

概述

wsl默认是安装在系统盘的(一般为C盘),随着虚拟机里软件越装越多,很快系统盘的空间就被占用了很多,而且在虚拟机里把文件给删除了,空间也不会被释放。因此,建议将虚拟机磁盘文件进行压缩并迁移到其他磁盘储存,下文是详细的操作说明。

1. 压缩

1.1 定位虚拟机磁盘文件位置

通常默认位置为: C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\rootfs\ext4.vhdx

如果上述位置不存在,则可以使用 everything 等工具,搜索 ext4.vhdx 来定位文件位置

解决Windows中使用WSL2占用磁盘空间问题-第1张图片-鸿辰个人分享站

1.2 进行压缩操作

# 先关闭所有虚拟机
wsl --shutdown

# 进入磁盘管理
diskpart

# 选择虚拟磁盘文件,即为上述步骤的虚拟文件位置
select vdisk file="C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState\rootfs\ext4.vhdx"

# 压缩文件
compact vdisk

# 压缩完成后卸载磁盘
detach vdisk

压缩完成之后,磁盘占用空间会减少一部分。

2. 迁移

# 先关闭
wsl --shutdown

# 导出Ubuntu-22.04文件(注:这里的Ubuntu-22.04即wsl -l -v中看到的虚拟机名称)
wsl --export Ubuntu-22.04 d:\WSL2Ubuntu22.04.bak

# 注销原来的虚拟机
wsl --unregister Ubuntu-22.04

# 重新导入(注:d:\wsl目录要存在)
wsl --import Ubuntu-22.04 d:\wsl d:\WSL2Ubuntu22.04.bak --version 2

#设置启动的默认用户(注:这里的XXX即为默认用户名,如果这一步不做,每次都是以root身份启动)
ubuntu2204 config --default-user XXX

迁移完成后,重新启动wsl即可。
迁移完成后,确认无误之后,原来的虚拟磁盘文件可以删除。

标签: windows