毕竟 WSL2 只是一个子系统,所以可以大胆折腾,搞坏了重置 Ubuntu 即可,但是每次弄坏了可能还要去重新配置环境,MySQL, Redis, Docker 啥乱七八糟的装一遍也很麻烦,后来发现可以使用导入导出的方式做一个快照和回滚
其次我这种强迫症人选对磁盘清理真是谜之依赖,所以又找到了对 WSL 虚拟磁盘的压缩方式
WSL 的快照和回滚
其实就是把阿里云的备份方式做一个套用,结果完全能用
这里首先要去关闭当前运行的子系统
1 | PS C:\>wsl --shutdown |
然后直接执行导出命令即可
1 | wsl --export Ubuntu-20.04 c:\wsl-ubuntu20-04.tar |
之后系统数据会打包成一个 .tar
文件,然后放到 U 盘云端都可以
如果需要回滚首先进行系统的注销,然后将 .tar
包进行导入
1 | # 注销当前系统 |
WSL2 宿主机磁盘清理
WSL2 使用虚拟磁盘,如果往 WSL2 中放了大量的数据,然后就删掉,会发现 WSL2 的磁盘占用并没有降下来,这时强迫症如我就需要手动去压缩磁盘
第一步还是关闭运行状态的子系统,然后使用 diskpart
命令打开磁盘工具窗口,然后找到自己 WSL 版本对应的磁盘位置,例如我的 Ubuntu-20.04 是 C:\Users\aidan\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
执行磁盘选择命令后压缩
1 | # 选择磁盘 |
如果执行压缩命令时报错不要慌,因为当前磁盘是一个只读的状态,只需要执行 detach vdisk
命令即可,然后压缩,完成后不要忘了把权限换回来: attach vdisk readonly
Debian 存储清理
旧内核清理
1 | sudo apt purge $(dpkg -l 'linux-*' | awk '/^ii/{print $2}' | grep -P '^(?!linux-(?:generic|raspi|aws)).*') |
旧软件清理
- 清理旧版本的软件缓存:
sudo apt-get autoclean
- 清理所有软件缓存:
sudo apt-get clean
- 清理系统中不再使用的孤立文件:
sudo apt-get autoremove
可以使用sudo du -sh /var/cache/apt
命令查看缓存大小 - 清理软件的残余配置:
sudo apt-get autoremove -purge
- 卸载软件:
sudo apt --purge remove xxx
1 | sudo apt autoclean && sudo apt clean && sudo apt autoremove && sudo apt remove && sudo apt autoremove --purge |
删除残余配置文件
remove
但没有 purge
的软件会残留一部分配置文件,这里做一个清除操作
- 找出系统上哪些软件包留下了残余的配置文件:
dpkg --list | grep "^rc"
- 提取软件名:
dpkg --list | grep "^rc" | cut -d " " -f 3
- 删除软件包:
dpkg --list | grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge
清除无用依赖包
- 安装查看工具
deborphan
,执行软件名列出所有无用依赖:sudo apt install deborphan
- 删除软件:
deborphan | xargs sudo apt purge -y
清楚过时软件
所谓过时(obsolete)的软件包是指 /etc/apt/sources.list 源文件中没有任何一个软件源提供这个软件的 deb 安装包
也就是说这个软件包在软件源里找不到了,不被支持了.这可能是因为下面几个原因:
- 上游开发者不维护这个软件,又没有人来接管这个软件的开发.所以 Debian/Ubuntu 的软件包维护人员决定将这个软件从软件源中删除
- 这个软件成了孤儿,同时用户很少.所以它就从软件源里消失了
- 这个软件有了一个新的名字,维护人员给它起了一个新的名字并保留旧软件包
- 查找所有过时软件:
sudo aptitude search ?obsolete
- 可以手动删除,也可以清除所有:
sudo aptitude purge ~o
清理日志文件
ncdu 工具可以查看文件大小
- 安装后执行:
sudo ncdu /var/log
- 删除可以使用:
sudo dd if=/dev/null of=/var/log/xxx.log
查看大软件
debian-goodies 工具可以查看软件大小,可以执行 dpigs -H
查看大容量软件,默认展示前十条结果,可以指定展示行数 dpigs -H --lines=20
1 | 1.1GiB elasticsearch |
参考文章:
https://www.linuxdashen.com/debianubuntu 清理硬盘空间的 8 个技巧
- 本文标题:WSL2 的备份与清理
- 本文作者:Aidan
- 创建时间:2021-11-04 18:24:34
- 本文链接:https://aidanblog.top/wsl2-backup_and_clean/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!