V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
go233
V2EX  ›  程序员

有没有人用 wsl2 开发啊?文件系统爆炸磁盘待解救。

  •  
  •   go233 · 2023-11-29 13:45:36 +08:00 · 3491 次点击
    这是一个创建于 385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我用 wls2 开发有一段时间了,但是发现它占用磁盘好快,我都没怎么写代码,但是存放 wls2 的两个 vhdx 文件,一个 40 多 G 一个 30 多 G 。但是进 linux 系统 df 看了一下更目录使用率才 15%。现在不知道怎么拯救我的磁盘。 我试过下面的压缩方式,但是没啥变化,还是那么大。不知道咋整了,难受,有大佬懂得可以给点解决思路吗?

    diskpart select vdisk file = "D:\Ubuntu\ext4.vhdx" compact vdisk

    第 1 条附言  ·  2023-11-29 18:40:53 +08:00

    首先感谢大家的回复,这个问题我尝试了很多办法。下面的命令只在某个写特定条件下有用,但是对我而言它没有效果,我确定自己命令执行没问题,而且跑完了100%进度。于是我在github上找了一个工具我看有几十个star,而且比较新,我在没备份的情况下(主要是整个磁盘满了不够备份所需)就执行了命令。虽然确实是压缩掉了一点体积,但是这个工具导致我的实例启动以后没有任何用户,连root都没有,也加不了用户。由于我不是很懂linux的操作,去StackOverflow上搜了相关的内容发现无解,于是放弃了。幸好我写的代码都在root目录下面,平时也都有上传到自己的git上。资料基本没丢失,只是新弄个实例需要装一堆新环境,配置变量之类的,这就很麻烦,还有一些ssh配置也要重新配置。

    这个事情给我的教训就是,买个移动硬盘还是挺有必要的,准备买个硬盘盒子,用旧的笔记本盘配个移动硬盘救急用。

    还有,貌似直接导出实列然后再导入实例也可以实现压缩wsl体积,但是我已经没法尝试了,等下次wsl空间大了我再试试网友们提到的方法。

    再次感谢大家。💋

    diskpart
    select vdisk file="xxxx.vhdx"
    compact vdisk
    detach vdisk
    
    ShadowPower
        2
    ShadowPower  
       2023-11-29 13:52:57 +08:00
    wsl --manage Ubuntu --set-sparse true
    ShadowPower
        3
    ShadowPower  
       2023-11-29 13:53:57 +08:00
    @yinbingren 其实现在已经是正式版了
    moexx
        4
    moexx  
       2023-11-29 15:04:26 +08:00
    @ShadowPower #3 2.0.9 是正式版了?
    ShadowPower
        5
    ShadowPower  
       2023-11-29 15:35:25 +08:00
    @moexx
    cccer
        6
    cccer  
       2023-11-29 15:58:09 +08:00
    这个命令肯定是可以的,你是不是执行错了,需要一行行的输入。
    ```
    diskpart
    select vdisk file="xxxx.vhdx"
    compact vdisk
    detach vdisk
    ```
    haierspi
        7
    haierspi  
       2023-11-29 17:39:28 +08:00
    直接 修改 WSL 的安装目录就好了.. 默认是安装在 C 盘的.. 改成其他盘... 别折腾 那个 给 WSL 增加磁盘的玩意..纯粹浪费生命啊,
    v2minustore
        8
    v2minustore  
       2023-11-29 17:41:19 +08:00
    @cccer 支持 6l 我试过是可以的
    YsHaNg
        9
    YsHaNg  
       2023-11-29 18:25:26 +08:00 via iPhone
    @haierspi 开发都是公司配 1t 2t 的单硬盘 何必呢 别折腾 直接 call it
    Richex
        10
    Richex  
       2023-11-29 20:17:09 +08:00
    我也遇到过 diskpart 没用的情况,可以试试使用 Optimize-VHD ,记得先停掉 WSL2 。

    Optimize-VHD -Path c:\test\dynamic.vhdx -Mode Full

    注意 Optimize-VHD 命令只能在 PowerShell 中使用并且确保 Windows 打开了 Hyper-V 功能。
    cc666
        11
    cc666  
       2023-11-29 21:13:00 +08:00
    简单,一个是使用 diskpart 压缩
    如果是专业版系统,打开 hyper-v 管理器,点击磁盘编辑,选中 VHD 文件,选择操作为压缩即可
    二者都亲测可以
    Cyshall
        12
    Cyshall  
       2023-11-29 21:35:22 +08:00
    升级最新的 23H2 ,然后编辑 windows 系统加目录下的.wslconfig 文件,内容如下:
    [experimental]
    autoMemoryReclaim=gradual
    networkingMode=mirrored
    sparseVhd=true
    autoProxy=true
    dnsTunneling=true

    其中 sparseVhd=true 就是自动释放硬盘空间。
    cndenis
        13
    cndenis  
       2023-11-30 09:00:06 +08:00
    现在 1T 的 SSD 才几百块钱, 几十 G 的占用也没啥吧, 充值完美解决问题
    nulIptr
        14
    nulIptr  
       2023-11-30 10:13:09 +08:00
    这年头还有人在意磁盘空间啊。。。
    想起前几年的时候用 tauri 搞了个客户端项目,啥都没写,光启动个空项目就占了 10g 硬盘空间。
    go233
        15
    go233  
    OP
       2023-11-30 11:06:22 +08:00
    @Cyshall 我的系统还在 windows10 专业版上,目前还是 22H2 版本,您这个信息我记录下来了,等哪天能升级了我就用上。感谢分享。💋
    go233
        16
    go233  
    OP
       2023-11-30 11:10:19 +08:00
    @haierspi 这个我早已经改过了,主要我的笔记本就 500G ssd 还不能扩展硬盘,已经用满了,我也不知道到底装了啥东西,用软件扫了一下发现都是安卓开发用的模拟器 sdk 占用最大,因为开发偶尔要用到,就没删掉,装起来很麻烦。我自己也有 macbook 但是目前还是喜欢用 wsl 开发,这样可以与我生产环境的 ubuntu 服务器环境保持统一性。总之感谢您的回复。💋
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3142 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:29 · PVG 21:29 · LAX 05:29 · JFK 08:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.