问题:
是vscode+wsl2的重度使用者。现在c盘被wls快填满了,就想着如何压缩子系统,然后迁移到d盘。
解决过程:
1 确认WSL目前的状态
wsl --list -v
由于我之前已经关闭了wsl,所以显示stopped,如果不是,用wsl --shutdown Ubuntu-20.04 将其停止。
2 压缩
参考这个链接:https://blog.youkuaiyun.com/dhdhhy/article/details/130108226 释放WSL的子系统的内存,解决C盘飘红。该文讲得很清楚,先在wsl里删除不必要的文件,然后按该链接操作,最后把机器重启一下,确实变小了。
后来发现“【wsl2】常用命令及ext4硬盘扩展与压缩_wsl 硬盘扩容-优快云博客” 说要先先在wsl里面执行 fstrim -a
:但我没有执行。
3 从c盘迁移到d盘
本来发现下面这个链接主推的方法很新:
win11系统下,将WSL2从系统盘(C盘)迁移到迁移到数据盘(D盘)_wsl移动到d盘-优快云博客
由于我是把wsl从之前的旧机器上迁移过来的,结果在程序里根本找不到,所以没法应用,只好还是用该文中提到的tar方法,“将WSL从C盘迁移至其他盘_怎么把wsl从c盘移到d盘-优快云博客”也有记录,但最后的用户名恢复并不需要,自己操作的有效过程如下:
step1: wsl --export Ubuntu-20.04 D:\WSL\Ubuntu.tar 导出备份(如命名为Ubuntu.tar)
step2: wsl --unregister Ubuntu-22.04 上步成功后,注销原有的wsl
step3: wsl --import Ubuntu-20.04 D:\WSL D:\WSL\Ubuntu.tar 导入备份到新位置
不需要什么恢复用户名,下次打开wsl,已经是原来的用户名,可能是win11,wsl2已经改善了这方面的问题。
step4: 如果磁盘紧张,可以删除D:\WSL\Ubuntu.tar。否则也可以留作备份。