缩小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

相关推荐

  • Firewalld遇到ipset not usable,无法启用的问题

    centos7在启用firewalld的时候,启动没有报错,但是查看状态显示如下: 处理过程 定位问题 尝试手动调用ipset 此时基本可以判定是内核出了问题。列出相关内核文件夹内容,查看具体问题。 ls /lib/modules/3.10.0-1160.36.2.el7.x86_64/kernel/net/netfilter 上图是正常的内容。实际小编自身…

    2022年12月19日
    2.1K00
  • Docker Dockerfile 使用方法

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

    2023年10月19日
    1.2K00
  • find命令排除某些目录或文件

    使用-prune开关。例如,如果要排除misc目录,只需将a添加-path ./misc -prune -o到您的find命令中: find . -path ./misc -prune -false -o -name ‘*.txt’ 这是带有多个目录的示例: find . -type d \( -path dir1 -o -path dir2 -o -pat…

    2023年6月16日
    1.7K00
  • 二进制安装MySQL

    Yum/rpm包安装,简单、快速、无法定制化、新手推荐使用 二进制安装,解压缩后直接简单配置即可使用,速度较快,专业DBA常用 源码编译安装,特点是可以定制化安装需求,缺点过程较为复杂 二进制安装 创建mysql用户 因为这个用户只是用来进行管理,为了系统安全,配置无登录权限 下载mysql二进制软件包(本案例为mysql5.7.33版本) 创建tools目…

    2022年6月24日
    1.5K00
  • ubuntu 编译 pyav 报错 libx264 not found

    解决办法:

    2023年9月7日
    1.3K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信