WSL2 虚拟硬盘的压缩

7 阅读1分钟

操作步骤回顾:

  1. 关闭 WSL

    wsl --shutdown
    
  2. 启动 diskpart

    diskpart
    
  3. 选择虚拟磁盘文件(注意:必须使用反斜杠 \):

    select vdisk file="D:\arch_linux\ext4.vhdx"
    
  4. 以只读方式附加虚拟磁盘

    attach vdisk readonly
    
  5. 压缩虚拟磁盘

    compact vdisk
    
  6. 分离虚拟磁盘

    detach vdisk
    
  7. 退出 diskpart

    exit
    

关键要点:

  1. 路径格式:在 diskpart 中必须使用 Windows 路径格式(反斜杠 \),而不是 Linux 格式(正斜杠 /

  2. 压缩效果:这个操作会回收 WSL2 虚拟磁盘中未使用的空间,特别是当你删除了大量文件后,可以显著减小 .vhdx 文件的大小

  3. 只读附加attach vdisk readonly 确保在压缩过程中不会修改磁盘内容

验证压缩效果:

你可以检查压缩后的文件大小:

# 在 PowerShell 中查看文件大小
Get-Item "D:\arch_linux\ext4.vhdx" | Select-Object Length, @{Name="SizeGB";Expression={[math]::Round($_.Length/1GB, 2)}}

重新启动 WSL:

现在你可以重新启动 WSL:

wsl
# 或启动特定的发行版
wsl -d Arch