WSL2 Ubuntu 系统使用 /init 工具时空间不足 文件系统

WSL2 Ubuntu 系统使用 /init 工具时空间不足 文件系统

我在 Windows 系统上使用 WSL2 Ubuntu,现在空间不足。但我找不到 Ubuntu 上的空间在哪里。它显示我的 /dev/sdb 上只使用了 32G,这是正确的。我在 Ubuntu 上有大约 30G 的文件和数据。但是,我发现挂载在 /init 上的工具的使用率为 98%。我该如何释放这些空间?

在此处输入图片描述

答案1

C:听起来好像您的Windows 驱动器空间不足。

WSL2 上的 Ubuntu 位于虚拟磁盘中,默认情况下,该虚拟磁盘位于 WindowsC:驱动器上。虚拟驱动器本身(按照您的情况安装/dev/sdb)分配有 256GB 可用空间到 Ubuntu。然而,在 Windows 驱动器上,文件对于虚拟磁盘(`ext4.vhdx)来说,其大小刚好足以容纳 Ubuntu/ext4 文件系统中的文件,然后成长根据需要在 Windows 驱动器上添加文件。

但请注意,虚拟磁盘目前不会自动收缩当您从 Ubuntu 中删除文件时。

当然,它只能增长到驱动器上可用的最大空间大小C:

另一方面,/init实际上位于 Windows 驱动器本身上,因此您在此处看到的是 上的可用空间C:。在这种情况下,“已使用”是 * 上的所有文件C:,您对此无能为力在 Ubuntu/WSL2 中

从您的屏幕截图(请不要这样做;-)), 你有:

  • 一个221G的C:分区
  • 该分区已使用 ~ 216G。该数量包括 Ubuntu 使用的 32GB。
  • 剩余约 5.3GB C:。可供 Windows 文件或(通过虚拟磁盘增长)Ubuntu 文件使用。

因此实际上,Ubuntu 使用了 22GB,而 Windows 使用了另外 194GB,您能做的最好的事情就是清理 Windows 中的空间(删除临时文件、清除旧的下载等)。

如果您在 Windows 中有另一个更大的驱动器或分区,您也可以将 Ubuntu 的虚拟磁盘移动到该驱动器上的某个位置。根据您使用 Ubuntu 的频率,我建议驱动器的速度至少与驱动器一样快C:。当然,将其从 SDD 移动到 HDD 会导致性能下降。

要移动它,请停止 Ubuntu 中的所有内容,然后转到 PowerShell 并:


mkdir D:\WSL\images # For example
mkdir D:\WSL\instances\<newDistroName>
cd D:\WSL
    
wsl -l -v # Verify distro name to export
wsl --terminate <distroname>
wsl --export <distroname> .\images\<distroname>.tar
wsl --import <newDistroName> .\instances\<newDistroName> .\images\<distroname>.tar
wsl ~ -d <newDistroName>

您还需要通过文件在复制的实例中设置默认用户名,/etc/wsl.conf这个答案

确认新实例按预期工作并拥有所有文件后,您可以通过以下方式将其设置为默认实例(也可以从 PowerShell 中):

wsl --set-default <newDistroName>

然后通过在 Windows 开始菜单中右键单击“Ubuntu”应用程序并选择来卸载它“卸载”。这当然是一个破坏性操作,它将从驱动器中删除所有以前的 Ubuntu 安装C:

您可以将该D:\WSL\instances\<distroname>.tar文件保留为备份(取决于您D:(或其他驱动器)上的可用空间情况)或将其删除。

相关内容