You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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的大小:
    sudo du -sh /var/log
    
    可以用这个命令限制journal日志大小(比如设为100M):
    sudo journalctl --vacuum-size=100M
    

第三步:收缩WSL虚拟磁盘的大小

如果已经删了Ubuntu里的大文件,但虚拟磁盘还是很大,就手动收缩它:

  1. 在Ubuntu终端里,用零填充未使用的磁盘空间(方便后续最大化释放空间):
    sudo dd if=/dev/zero of=/tmp/zero.fill bs=1M
    sudo rm /tmp/zero.fill
    
  2. 关闭Ubuntu终端,打开管理员身份的PowerShell,先关闭WSL:
    wsl --shutdown
    
  3. 运行收缩命令(记得替换路径里的<你的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

火山引擎 最新活动