0%

清理WSL2的磁盘占用

自动摘要: 现象: WSL2放了大量的数据,然后就删掉,会发现WSL2的磁盘占用没有降下来WSL2中,这就是虚拟磁盘造成的。 解决方法: 方法1:打开**%USERPROFIL ……..

现象:

WSL2 放了大量的数据,然后就删掉,会发现WSL2的磁盘占用没有降下来WSL2 中,这就是虚拟磁盘造成的。

解决方法:

  • 方法1:打开 **%USERPROFILE%\AppData\Local\Packages** ,找到ext4.vhdx

    • 我的是:C:\Users\sindre\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx
      1
      2
      3
      4
      5
      6
      7
      8
      #命令行来检查它的状态
      wsl.exe --list --verbose
      # 如果没有关闭(状态是 Running ),再用命令行去关闭
      wsl.exe --shutdown
      # 运行windows磁盘工具
      diskpart
      select vdisk file="{vhdx文件名}"
      compact vdisk
  • 方法2,新建个”缩减wsl磁盘大小-鼠标右键,管理员运行.bat”文件,拷贝下以下代码,

    • 后期只需要鼠标右键文件,然后管理员运行即可。
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      @echo off
      echo "Shutdown WSL"
      wsl --shutdown

      REM 记录下自己的路径,第一次输入后会缓存在C:\Windows\System32\compact_vdisk.txt
      REM %USERPROFILE%\AppData\Local\Packages\
      REM C:\Users\sindre\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

      setlocal enabledelayedexpansion

      REM 判断 compact_vdisk.txt 是否存在,如果不存在则提示用户输入 VHDX 文件路径
      if not exist compact_vdisk.txt (
      set /p vhdx_path=请输入 ext4.vhdx 文件路径:
      REM 记录在文件中
      echo select vdisk file="!vhdx_path!" > compact_vdisk.txt
      echo compact vdisk >> compact_vdisk.txt
      diskpart /s compact_vdisk.txt
      ) else (
      REM for /F "usebackq delims=" %%G in ("compact_vdisk.txt") do set "vhdx_path=%%G"
      REM 如果存在文件,则直接执行
      diskpart /s compact_vdisk.txt
      )

      endlocal

      pause

欢迎关注我的其它发布渠道