WSL 在 Windows 上使用了多少磁盘空间?
我发现你可以进入 Windows'应用程序和功能它将显示 WSL2“Ubuntu”的磁盘使用情况,但这似乎不包括WSL 遗产或者也许确实如此,因为它报告的内容似乎比我预期的要多?
答案1
从 Linux 确定磁盘使用情况
使用类似的工具ncdu
可以轻松确定磁盘使用情况,并且还提供良好的 CLI 界面。
安装 ncdu
sudo apt install ncdu
运行 ncdu
因此,我们无法获得 Windows 的所有目录,因此我们需要排除目录/mnt
。
sudo ncdu / --exclude /mnt
从 Windows 确定
在 Windows 下应用程序和功能它列出了Ubuntu
占用1.92 GB
ncdu
报告1.7 GiB(~1.82GB)这与 Windows 报告的内容非常接近。
WSL 旧版“Linux 上的 Ubuntu 上的 Bash”
我无法Bash on Ubuntu on Linux
通过 Windows 找到它占用了多少空间,但我可以通过运行来查看它使用了多少空间sudo ncdu / --exclude /mnt
。
相关的研究
答案2
当然,随着 WSL 及其发行版的更新,这个问题的答案也会随之改变。
这也是非常很难测量任何给定 Windows 功能使用的确切磁盘空间,因为 Windows 也在不断消耗和释放磁盘空间用于其他用途。话虽如此,以下是今天在 Windows 11 上进行的一些测量:
简写:
- WSL 功能和内核占用 100-200MB 的空间。
- Ubuntu 发行版至少占用 1.1GB,但在第一次更新/升级时会迅速扩展到 2.7GB 左右。
- 安装的 rootfs tarball 又占用了约 400MB,这些空间可以恢复。
笔记:
这些测量是使用 Windows 11 上发布的 WSL 版本完成的。
WSL 现已在 Microsoft Store 中提供预览版,此版本安装后将消耗更多的由于这些功能未内置于 Windows,因此磁盘空间较大。我尚未测量 WSL 的 Store/Preview 版本。
此外,这些测量是使用 WSL2 分布进行的。最初的WSL1 分布占用的大小将大于 WSL2,但是,WSL1将要当文件被删除时释放空间(与 WSL2 不同)。
细节:
在安装 WSL 之前,全新安装的 Windows 11 + 更新会消耗
35,584,876,544
大量磁盘空间。启用 WSL 功能并重新启动后,
35,587,739,648
字节数有所减少。减少了约2,863,104
(2.8MB)。这是意料之中的,因为该功能内置于 Windows 中,只是“启用”(不一定安装)。请注意,在此阶段,WSL1 已安装并可与发行版一起使用。
启用虚拟机平台以启用 WSL2 会消耗额外的
23,044,096
字节数。但是,重新启动实际上会回收14,274,560
这些字节数,净变化为8,769,536
。同样,这个较小的数字可能是因为该功能随 Windows 一起提供,并且刚刚启用。下载 16.1MB 的 WSL2 内核包并重新启动后,
568,856,576
会消耗大量额外空间。这个数字需要特别注意,因为 Edge 是第一次启动以下载该包。几乎可以肯定,大部分额外消耗的磁盘空间来自首次激活 Edge 功能和其他副作用。安装后的内核本身会占用
73,476,524
一些字节。安装 Ubuntu 20.04
wsl --install -d Ubuntu
肯定是磁盘空间最大的消耗者。安装并重启后,又1,648,529,408
占用了 1.6GB 空间。这主要有两个部分。第一个是“应用程序”本身。这包括安装的 rootfs tarball。它存储在
C:\Program Files\
通常禁止普通用户访问的目录中。但是,您可以使用在管理会话中运行的简单 PowerShell 单行命令来检查 WSL tarball 的大小:Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\' | Where-Object {$_.Name -eq 'install.tar.gz' }
这表明 tarball 是
452,534,052
字节。从技术上讲,可以通过删除应用程序来恢复,但请注意——删除应用程序也会删除分发版。不过,可以将其解耦(通过wsl --export
/--import
),然后删除“App”/tarball。另一部分是实际的发行版本身,在 WSL2 下可以在虚拟 HDD 的大小中看到
ext4.vhdx
。在运行之前任何命令,其大小vhdx
为 1,173,397,504。之后
sudo apt update && sudo apt upgrade -y
,分发包的大小增加到2,701,131,776
(大约 2.7GB)。请注意,显示df
为1,513,688k
。大小的巨大变化vhdx
可能是由于虚拟磁盘可以生长根据需要,但不会随着文件从其中移除而释放空间。请参阅这个问题了解详情。针对 Ubuntu 22.04 的更新:基本
vhdx
大小为 1.49GB。但是,由于它今天才发布,因此已经包含最新的软件包。因此,初始版本sudo apt update && sudo apt upgrade -y
确实不是消耗任何额外空间。与 Ubuntu 20.04 相比,总体节省了约 1.2GB。同样,随着 Ubuntu 22.04 生命周期的推进,这种情况可能会发生变化。
答案3
@CTS_AE 的回答很有帮助。ncdu
是一款出色的文件夹磁盘使用情况可视化工具。但是,ncdu --exclude /mnt
对我不起作用ncdu / --exclude /mnt
。
我在 Debian(WSL2)上进行了测试,并ncdu --version
显示ncdu 1.15.1
。
答案4
这是答案,即使现在(Windows 11)不是那么准确(我在路径中看不到“规范”): https://askubuntu.com/questions/1363015/understanding-disk-space-using-wsl2
答案在 Windows 中:%userprofile%\AppData\Local\Packages
然后搜索您的发行版,当您找到它时,右键单击它并进入属性,它将为您计算。
正如我上面评论的那样,df/du/ncdu 所说的和现实之间存在巨大差异,例如我刚刚安装的 kali,du 说它使用了 0.9G,但 Windows 文件资源管理器说的是 1.7G