通过“Windows 上的 Ubuntu”减少空间消耗

通过“Windows 上的 Ubuntu”减少空间消耗

我正在运行带有 Windows 终端的 Windows Subsystem for Linux (WSL2),目前我已经下载了“Windows 上的 Ubuntu“来自 Microsoft Store。当我运行“Windows 上的 Ubuntu”应用程序时,我会在终端中看到我的所有 Ubuntu 目录。

然而,据我了解此 Ubuntu 论坛帖子,不应使用此应用程序。相反,可以使用“Ubuntu”Microsoft 商店应用程序来运行 WSL。

目前,Windows 上的 Ubuntu 占用了大约 40GB 的硬盘空间。我的问题是,更改为“Ubuntu”应用程序会占用更少的磁盘空间吗?如果会,有人能帮我从“Windows 上的 Ubuntu”移动到“Ubuntu”而不丢失任何数据吗?

输出wsl -l -v

$ wsl.exe -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop         Stopped         2
  docker-desktop-data    Stopped         2

输出df -h /

$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdc        251G   27G  213G  11% /

答案1

更改为“Ubuntu”应用程序是否会占用更少的磁盘空间?

让我们先解决主要问题——不是的。更改你安装的应用程序本身没有任何直接的对磁盘空间的影响。

间接?可能吧。但这只是因为备份和恢复 WSL 发行版有“压缩”它的副作用。

为什么 WSL 上的 Ubuntu 占用这么多空间?

包含 Ubuntu 的 WSL2 虚拟磁盘映像是动态的Hyper-V 虚拟磁盘。这里的“动态”意味着它一开始是一个接近 0 字节的文件,随着您向其中添加数据而增长。到目前为止,WSL 的所有 Ubuntu 映像都是基于 Ubuntu Server,安装后占用大约 1GB 的磁盘空间。

例如,我刚刚删除了我的 Ubuntu-22.04 发行版,然后在 PowerShell 中重新运行:

ubuntu2204.exe

在它要求输入我的用户名和密码后,生成的图像大小为 1.1GB。

然后,经过基本操作sudo apt update && sudo apt upgrade -y(无论如何,在 WSL 上安装 Ubuntu 后你应该做的第一件事),发行版现在占用约 1.7GB。请注意,我使用的是此 PowerShell 脚本获取 VHDX 大小,但您也可以使用文件资源管理器来查找ext4.vhdx文件并观察其大小。

假设此时我在 Ubuntu 上安装了 Nix 包管理器,其中包含一些我喜欢的常用包。突然间,磁盘大小跳升至约 3.8GB。哎呀!(其实不是,但可以说这对我来说太多了)。所以我删除了所有/nix

但现在我的磁盘映像仍为 3.8GB。为什么它没有回到约 1.6GB?

答案是,虽然动态的虚拟磁盘会随着新文件的增长而增大,但它不会自动收缩当这些文件被删除时。

您可以使用以下命令大致(但不准确)了解 Ubuntu 应占用多少空间:

df -h /

如果您发现您在 Ubuntu 中确实使用了 40GB 的文件(这完全有可能),那么除了卸载或删除项目之外您实际上没有什么可以做的。

但是,如果你遇到ext4.vhd虚拟磁盘的大小与你在 Ubuntu 中实际使用的大小之间存在很大差异的情况,那么你可以按照这个答案有关如何缩小虚拟磁盘的一些指导。

“Windows 上的 Ubuntu”与“Ubuntu”

据我所知...不应该使用此应用程序。相反,可以使用“Ubuntu”Microsoft 商店应用程序来运行 WSL。

不是。一旦你有已安装Ubuntu 的任何 Store 版本,Store 应用实际上都不再“有用”。这很令人困惑,但也值得一读这个答案了解更多详情。Canonical 开发人员在该帖子中指出,他们已“重命名”该应用程序以避免混淆。您在安装时它的名称不同,这完全正常,不需要“修复”。

Store 应用程序的唯一目的是:

  • 询问您的初始用户名和密码
  • 将 Ubuntu 的“模板”(rootfs)复制到ext4.vhdx
  • 首次运行发行版

将来,当您运行ubuntu.exeubuntu2004.exe(这可能是您的“开始”菜单项指向的)时,它会检测到它已经安装并直接跳过前两个步骤。

无论你运行的是 Ubuntu、Windows 上的 Ubuntu、Ubuntu 22.04、Ubuntu 20.04 等(至少在某个时候,微软商店中都有所有选项),最终的结果都是你正在运行你的安装的发行版是从Microsoft Store 模板

商店中最新发布的 Ubuntu 应用程序甚至允许您卸载应用程序,离开你的Ubuntu分配完好无损。但是,我不知道您使用的版本是否足够新,因此我不推荐这样做。无论如何,“模板”文件仅占用大约 800MB 左右,因此只有在磁盘空间非常紧张时才值得担心。

相关内容