WSL的清理与迁出
以前在复现一些基于Linux系统的项目时,一直在使用 WSL2 这个工具,然而近期在使用过程中发现了一个很头疼的问题——WSL安装系统时,默认只会直接安装在 C 盘(包括Docker-desktop),久而久之便会占用大量的 C 盘空间,并且如果直接通过系统的命令行进行删除操作,并不会直接释放占用的 C 盘空间。
这对我这种对硬盘空间极为焦虑的人十分不友好,也算是误打误撞发现了硬盘莫名其妙爆红的元凶……在查阅了一些网上大佬们的解决方案后,也是顺利解决了,在此记录一下这次清理的过程。
0 系统环境
1 | wsl --version |
1. 找出占用空间的文件(夹)
网上很多教程都是通过压缩的方法解决,但是没有先清理 wsl 中的垃圾,实测一点毛用没有=-=
这里我是这样逐步找出占用空间较大的文件,在 Ubuntu 中运行以下指令
1 | sudo du -h --max-depth=1 --exclude=/proc --exclude=/mnt/* / | sort -rh |
2. 删除不必要的文件与文件夹
可以看到根目录/总共用了159G,主要大头在 root 用户下的文件夹中以及 statistical (这是之前某次参加比赛使用的文件夹,里面存放了许多模型预训练权重,因此占用空间较大,时间一久把他给忘记了…..现在他的使命也完成了,直接进行删除~),将相关无用文件夹进行 rm -rf
操作后,再查看一下 root 文件夹下,可以发现接下来的重头戏就是 .cache 缓存的清理了。
其中 Pip 缓存可以通过以下指令安全删除
1 | pip cache purge |
其他缓存根据个人使用和需求可以进行自行删除
3. 使用 DiskPart 压缩磁盘
1 | # 依次运行以下指令 |
清理到这里就完成了,以下是清理前后的对比:
4. 将 WSL 迁移至其他盘
4.1 准备工作
先通过以下操作查看 wsl 中虚拟机状态,注意接下来的操作需要确保系统为关闭状态,可以使用 wsl --shutdown
来关闭 wsl。
1 | wsl -l -v |
4.2 导出/恢复备份
在 E 盘创建一个目录用来存放新的WSL,比如我创建了一个 E:\Ubuntu_WSL
1 | # 导出原系统的备份 |
此时打开 wsl ,可以发现已经可以正常使用了。
评论