Windirstat 显示 Ubuntu 占用了 70 GB 的空间

Windirstat 显示 Ubuntu 占用了 70 GB 的空间

首先,我正在使用带有 WSL 的 Ubuntu。

ext4.vhdx最近我一直在想办法弄清楚如何清除被存储在 中的硬盘所占用的磁盘空间CanonicalGroupLimitedUbuntu.../LocalState

Windirstat 可视化截图:

Windirstat 可视化的屏幕截图

当我检查 Ubuntu 以查看正在使用的存储空间时,它ncdu显示仅使用了 323.6 MB 的存储空间。然而,当我运行时,df它显示大量文件系统占用了几乎 99% 的分配空间。

输出截图df

df 输出的屏幕截图

这些文件系统是否导致我的存储空间已满?我能做些什么来解决这个问题?

答案1

从您在 中显示的内容来看df,我敢说这ncdu是正确的,并且正在使用的已消耗存储量是正确的。该数字大约为 325MB,或多或少。您在 中看到的df是指向同一位置的多个安装,这就是为什么它们都具有完全相同的数字集。

您遇到的问题与 Ubuntu 无关,而与 Windows 有关。一个长期存在的 WSL Github 问题关于这个自 2019 年 11 月以来一直开放的话题。WSL 将自动扩大您的虚拟磁盘(您已正确标识为)ext4.vhdx,但缩小它以回收未使用的空间是当前必须手动完成的操作。

首先要说的是:

  1. 关闭 WSL 机器:
    wsl --shutdown
    
  2. 复制一份vhdx作为备份(以防万一)

接下来,如果你使用的是 Windows Professional(或更昂贵的版本),则可以安装 Hyper-V 并使用 Optimize-VHD 调整映像大小如上述 GitHub 问题所述

optimize-vhd -Path .\ext4.vhdx -Mode full

如果您使用的是 Windows Home 或更高版本,则需要使用dispart像这样:

diskpart
select vdisk file="C:\WSL-Distros\…\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

第三个选择是导出 WSL 映像并重新导入,可以像这样完成:

wsl --shutdown
wsl -l -v
wsl --export <DistroName> <PathToTarArchive>
wsl --unregister <DistroName>
wsl --import <DistroName> <PathToDistroNewDirectory> <PathToTarArchive>
wsl -l -v

笔记: 需要重置默认用户名导入图像后。

至于“为什么 Windows 使用 70.3GB 的存储空间或 0.3GB 的 WSL 映像?”,你需要询问雷德蒙德的人,因为知道答案远远超出了我的薪酬等级。

希望这可以帮助您恢复大量的存储空间。

相关内容