zoukankan      html  css  js  c++  java
  • 清理WSL2的磁盘占用

    翻译自 How to Shrink a WSL2 Virtual Disk

    我是WSL的铁粉,特别是 WSL2,它使用虚拟技术提高了 WSL 的性能和兼容性(例如 Docker )。不过,因为 WSL2 使用了虚拟磁盘,意味着它可能只有 15GB 的数据,但是虚拟磁盘占用了 100GB 的空间。如果你往 WSL2 中放了大量的数据,然后就删掉,会发现WSL2的磁盘占用没有降下来,这就是虚拟磁盘造成的。

    我找了一些方法来去压缩 WSL2 的虚拟磁盘,发现了一个对我有效的方法,希望它对你来说也同样适用。

    准备工作

    在压缩虚拟磁盘前,需要将 WSL2 先关闭。

    可以先使用命令行来检查它的状态:

    wsl.exe --list --verbose
    

    如果没有关闭(状态是 Running ),再用命令行去关闭它:

    wsl.exe --terminate 
    

    关闭WSL2

    虽然这个方法对我来说有效,但你的环境可能跟我不同,这样做可能会导致你的数据发生损坏,建议你先备份一下WSL2的数据

    使用 diskpart 来压缩WSL2的虚拟磁盘

    我发现可以使用 diskpart 工具来压缩WSL2的虚拟磁盘,它会根据WSL2中数据的大小来重新申请磁盘空间。

    在命令行启动 diskpart 工具:

    diskpart
    

    它会自己打开一个新的窗口。

    diskpart

    接下来需要确定虚拟磁盘文件的位置。

    WSL2的虚拟磁盘文件在C:\Users\{user}\AppData\Local\Packages\下面,不同的WSL2发行版对应的名称不同,例如 PengwinWhitewaterFoundryLtd.CoUbuntuCanonicalGroupLimitedDebian
    TheDebianProject 。找到了你的 WSL2 的文件夹,就能在它下面找到 LocalState\ext4.vhdx 这个磁盘文件。

    例如,我的磁盘文件是 C:\Users\ontheroad\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx

    diskpart 选择这个文件:

    select vdisk file="{vhdx文件名}"
    

    再执行压缩命令:

    compact vdisk
    

    压缩过程需要几分钟。

    压缩磁盘文件

    压缩完成后可以关掉 diskpart 窗口,整个过程也完成了。可以再看看文件管理器中的磁盘使用,应该减少了很多。

  • 相关阅读:
    Model I/O
    How to create realistic .scn files?
    3ds Max 教程
    ELK Stack企业日志平台文档
    源码搭建Zabbix4.0.23LTS监控系统
    Ansible自动化运维应用实战
    网站架构部署
    MySQL数据库性能优化与监控实战(阶段四)
    MySQL数据库企业集群项目实战(阶段三)
    基于xtrabackup的主从同步
  • 原文地址:https://www.cnblogs.com/enrio/p/14222648.html
Copyright © 2011-2022 走看看