解决hyper-v .vhdx WSL文件过大的问题_ext4.vhdx

概述

在使用 WSL2 时,主机操作系统的磁盘空间可能会逐渐被挤压,尤其是在上传大文件或生成大量数据后。即使删除了 WSL 上的数据,PC 的磁盘空间也不会立即被释放。本操作手册将指导您如何通过一系列步骤来释放 WSL2 占用的磁盘空间。

注意事项
  • • 操作前请备份 WSL 环境,以防万一。
  • • 操作过程中可能会遇到风险,请谨慎操作。
  • • 请确保您了解每一步的操作,并在实施前进行充分的研究。
备份 WSL 环境

在执行任何操作之前,建议备份您的 WSL 环境。有多种方法可以备份 WSL 环境,请参考相关文章确保您能够进行至少一次备份。

实施步骤
  1. 1. 检查磁盘空间 打开 PowerShell 并检查当前磁盘空间使用情况。

    PS C:\Users\myname> wsl> df
  2. 2. 停止 WSL 停止在操作系统上运行的所有 WSL 实例。

    > exitPS C:\Users\myname> wsl --shutdown
  3. 3. 找到 ext4.vhdx 文件 找到并记录 ext4.vhdx 文件的位置。该文件通常位于以下路径:

    C:\Users\myname\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState

    请根据您的实际环境找到该文件。

  4. 4. 尝试 optimize-vhd 尝试使用 Optimize-VHD 命令优化 ext4.vhdx 文件。

    PS C:\Users\myname> Optimize-VHD -Path .\ext4.vhdx -Mode full

    如果该命令不存在,请继续下一步。

  5. 5. 使用 diskpart 使用 diskpart 工具来压缩 ext4.vhdx 文件。

    PS C:\Users\myname> diskpart

    在 diskpart 窗口中执行以下命令:

    select vdisk file="D:\Hyper-V\ubuntu-24[2]\Virtual Hard Disks\ubuntu-24[2].vhdx"attach vdisk readonlycompact vdiskdetach vdiskexit
  6. 6. 检查结果 重新检查磁盘空间使用情况,确认是否成功释放了磁盘空间。

    PS C:\Users\myname> wsl> df
附加信息
  • • 在使用上述方法进行压缩之前,建议在 WSL 中运行以下命令来清理 Docker 相关的垃圾,以增加压缩量:

    docker container prunedocker image prunedocker volume prunedocker builder prunedocker system prune
总结

通过上述步骤,您可以有效地释放 WSL2 占用的磁盘空间。请确保在操作前备份您的环境,并谨慎执行每一步。希望这些信息对您有所帮助!