缩小vhdx文件的大小

使用 Hyper-V 提供的 Optimize-VHD

PS> Optimize-VHD -Mode Full -Verbose "C:\Users\<Username>\AppData\Local\Packages\<Linux-Distribution-AppPackageName>\LocalState\ext4.vhdx"

进行缩小,执行之后 VHDX 文件的确是变小了,但是也还没有那么小

此时应进入到 WSL2 中,运行 zerofree 将 ext4 文件系统内已经不用的块填零,但 zerofree 不能运行在已经挂载为 rw 的文件系统上,那就把文件系统挂载为 readonly 就行了

wsl2> mount /dev/sda -o remount,ro
wsl2> zerofree /dev/sda

运行结束后,在 Windows 下关闭 WSL2

PS> wsl --shutdown

然后再运行最开始 diskpart 的 compact 或者 Optimize-VHD 就可以把 WSL2 的 VHDX 缩小到很接近于使用了的空间的大小了

FYI,不能使用 Resize-VHD 用来缩小 WSL2 的 VHDX,会报“无法调整虚拟磁盘的大小”“无法完成请求的操作,原因是无法确定虚拟磁盘的安全大小下限。 这可能是因为分区表丢失或损坏。 (0xC03A0026)。”的错误,似乎是因为 WSL2 的 VHDX 里没有分区表而直接整个是 EXT4 格式的分区

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9172

(0)
郭靖的头像郭靖
上一篇 2023年7月20日 下午4:54
下一篇 2023年7月21日 下午5:16

相关推荐

  • Git:合并多个commit 的高级技巧

    前言 在我们的日常项目开发中,git commit -m 无疑是使用最频繁的指令,这也造成了大量的commit 在我们的分支上。这样常常会带来分支过长、版本过多的问题。 正文 想要解决这个问题,我们通常会对commit 进行合并。 当我们发现两个commit 或多个commit 存在很强的关联性、并且几个commit 加起来也可以成为一个完整的描述的时候,就…

    2023年3月15日
    1.8K00
  • Docker Dockerfile 使用方法

    Dockerfile 介绍 当使用Docker构建容器化应用程序时,Dockerfile是一个用于定义容器镜像的文本文件。它包含了一系列指令,告诉Docker如何从基础镜像(通常是官方或自定义的操作系统镜像)构建出最终的镜像,以及如何配置容器中的环境、文件和应用程序。 Dockerfile 的编写是构建容器的基础,它允许您定义容器的构建步骤、环境和配置。通过…

    2024年2月2日
    1.1K00
  • 利用Nextcloud搭建企业私有云盘系统

    1. 场景介绍 Nextcloud是一款免费开源的私有云存储系统,采用PHP+MySQL开发,提供了多个同步客户端支持多种设备访问,使用Nextcloud可以快速便捷地搭建一套属于自己或企业的云同步云盘,从而实现跨平台跨设备文件同步编辑、共享、版本控制、团队协作等功能。   不同于公有云盘,私有云盘需要部署在自己的服务器上(物理机或者云主机),并通过公网进行…

    2023年12月5日
    1.5K00
  • linux 查看当前有多少个 ssh 连接,并且列出具体信息

    要查看当前有多少个SSH连接并列出具体信息,可以使用以下命令: 该命令将显示所有连接的详细信息,包括用户名、终端、登录日期和时间等。 另外,也可以使用以下命令列出当前连接的信息: 这个命令会显示当前登录到系统的用户的信息,以及每个用户正在运行的进程。通过查看输出,你可以获取到SSH连接的相关信息。

    2023年9月7日
    2.7K00
  • nmcli命令详解

    以下是nmcli命令的一些常用选项和用法: 1)修改网卡名称 2)添加网卡 3)启动或停止网卡 4)设置网卡获取IP模式 使用 nmcli 来设置网卡为静态IP ,可以使用以下命令: 使用nmcli命令将网卡eth0模式设置为dhcp

    2023年10月10日
    1.5K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信