Ubuntu 18.04.5(WSL环境)磁盘空间占用过高求助
Ubuntu 18.04.5(WSL环境)磁盘空间占用过高求助
嘿,我来帮你捋清楚情况,解决这个空间占用的问题~
首先看你贴的df -h输出,其实Ubuntu本身的根文件系统/dev/sdb只用到了22G,你看到的“Ubuntu用了115G”大概率是WSL虚拟磁盘文件(.vhdx)的膨胀问题——WSL的虚拟磁盘会跟着你写入数据自动变大,但删除文件后不会自动缩小,所以系统统计的是这个虚拟文件的大小,而非实际已用空间。
接下来一步步排查和解决:
第一步:确认虚拟磁盘的实际大小
在Windows系统里,Ubuntu的WSL虚拟磁盘默认存在这个路径:C:\Users\<你的Windows用户名>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
你可以找到这个文件右键看属性,看看它的大小是不是接近115G,验证我们的猜测。
第二步:清理Ubuntu系统内的冗余文件
先把系统里没用的东西清掉,释放实际空间:
- 清理旧系统包和缓存:
sudo apt autoremove --purge sudo apt clean sudo apt autoclean - 查找大文件:推荐用
ncdu工具,它能直观展示空间占用分布。先安装:
然后运行:sudo apt install ncdu
扫描完成后按方向键浏览,找到占空间大的文件/文件夹按需删除。ncdu / - 清理日志文件:系统日志容易堆积,先看
/var/log的大小:
可以用这个命令限制journal日志大小(比如设为100M):sudo du -sh /var/logsudo journalctl --vacuum-size=100M
第三步:收缩WSL虚拟磁盘的大小
如果已经删了Ubuntu里的大文件,但虚拟磁盘还是很大,就手动收缩它:
- 在Ubuntu终端里,用零填充未使用的磁盘空间(方便后续最大化释放空间):
sudo dd if=/dev/zero of=/tmp/zero.fill bs=1M sudo rm /tmp/zero.fill - 关闭Ubuntu终端,打开管理员身份的PowerShell,先关闭WSL:
wsl --shutdown - 运行收缩命令(记得替换路径里的
<你的Windows用户名>):optimize-vhd -Path "C:\Users\<你的Windows用户名>\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx" -Mode Full
另外你提到“不确定如何访问文件系统列表”,其实你贴的df -h已经列出了所有挂载的文件系统:
/是Ubuntu的根文件系统,也就是你实际用的Linux环境/mnt/c是挂载的Windows C盘,这个盘现在用了97%,但和Ubuntu的空间占用没关系- 其他比如
/dev、/run这些都是WSL的系统挂载点,不用管它们
备注:内容来源于stack exchange,提问作者striped_unicorn




