VMware 内安装 Linux 客操作系统,一段时间后虚拟硬盘文件变大,虽然 Linux 系统里并没有那么多文件。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
catalina

VMware 内安装 Linux 客操作系统,一段时间后虚拟硬盘文件变大,虽然 Linux 系统里并没有那么多文件。

  •  
  •   catalina 2019 年 3 月 17 日 3905 次点击
    这是一个创建于 2594 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有什么办法把它缩小到系统占用的大小吗?

    https://s2.ax1x.com/2019/03/17/AZTS1A.png
    22 条回复    2019-03-18 16:02:39 +08:00
    qihu3721
        1
    qihu3721  
       2019 年 3 月 17 日   2
    要不试试 vmware-toolbox-cmd disk shrinkonly,前提是安装了 vmware tools
    vocaloid
        2
    vocaloid  
       2019 年 3 月 17 日
    这已经是多年来一直以来的 bug 了...一年前我寻遍了解决方法什么事都没有
    ipwx
        3
    ipwx  
       2019 年 3 月 17 日
    @vocaloid 这不是 bug。。。

    @catalina 至少需要在 Linux 里面有啥 VMware 提供的辅助性软件,不然你不可能把大小压缩下去。因为磁盘分区表是 VM 管的,而不是宿主机管的。但是我对这个可操作性表示怀疑,因为 ext4 这个文件系统太 TM 复杂了。。。
    wd
        4
    wd  
       2019 年 3 月 17 日 via iPhone
    搜一下 shrink 就好了 可能就是 1 楼那个命令
    catalina
        5
    catalina  
    OP
       2019 年 3 月 17 日 via Android
    @qihu3721 好像没用,虚拟磁盘文件还是那么大。这其实就是 VMware 里面的压缩磁盘对吗?我试过的。。。
    4679kun
        6
    4679kun  
       2019 年 3 月 17 日
    ![Snipaste_2019-03-17_18-55-08.png]( https://i.loli.net/2019/03/17/5c8e27988410f.png)
    4679kun
        7
    4679kun  
       2019 年 3 月 17 日
    第一步可以采用 zerofree 这个程序,可能需要在 livecd 里操作
    catalina
        8
    catalina  
    OP
       2019 年 3 月 17 日 via Android
    @qihu3721 抱歉,这是一次误判。主要原因是:当时不知道我是怎么想的,竟然不是在 console 界面、而是在 ssh 里执行了这个命令,结果执行过程中 ssh 断了。。。
    谢谢你的命令,它很管用
    catalina
        9
    catalina  
    OP
       2019 年 3 月 17 日 via Android
    @4679kun 好的,下回我试试看
    catalina
        10
    catalina  
    OP
       2019 年 3 月 17 日 via Android
    @4679kun 找到了,网上也有写到这个,不过它说是可以直接用 grub 里安装好的 recovery mode 执行。
    https://www.maketecheasier.com/shrink-your-virtualbox-vm
    虽然说的是 vbox 的,不过应该 wipe 的方法都是通用的
    ysc3839
        11
    ysc3839  
       2019 年 3 月 17 日
    VMWare 硬盘设置那里就有个压缩的选项,用这个无效吗?
    Osk
        12
    Osk  
       2019 年 3 月 17 日
    吃瓜群众关注下, 反正 Hyper-V 使用的 VHDX 是可以 compact 的, 但是如果是 Linux 使用的文件系统的话就不清楚了, 据说可以在 Linux 里面执行 fstrim 标记哪些 block 无效, 然后关闭虚拟机执行 compact. 不知道有没有大佬试过.
    catalina
        13
    catalina  
    OP
       2019 年 3 月 17 日 via Android
    @ysc3839 嗯,得先把已删除的文件置 0,来让硬盘设置里的那个功能知道哪能删除。。。
    @Osk 好像是这个原理。
    ysc3839
        14
    ysc3839  
       2019 年 3 月 17 日
    @catalina 这么说的话似乎涉及到 Trim 了。主控 (虚拟机) 不知道哪些数据是没用的可以删除的。
    catalina
        15
    catalina  
    OP
       2019 年 3 月 17 日 via Android
    @ysc3839 嗯。。。不,它其实是可以知道的,但是如同 fat 和 ntfs 一样,ext4 好像也不会直接删除文件内容,而是把文件从文件表中移除,结果就搞得虚拟磁盘越来越大。。。这个过程其实有点像 xp 上手动 trim ssd 的过程,强行释放被已经删除的文件捆绑住的簇,从而恢复 ssd 的速度,而虚拟机则是直接把释放的簇占用的空间还给了主机硬盘。
    4679kun
        16
    4679kun  
       2019 年 3 月 17 日
    Cu635
        17
    Cu635  
       2019 年 3 月 17 日
    “‘一段时间后’虚拟硬盘文件变大”,那么在这“一段时间” lz 是怎么用的 linux ?有没有随时 apt upgrade 的习惯?
    catalina
        18
    catalina  
    OP
       2019 年 3 月 17 日 via Android
    @Cu635 有,但这个虚拟机主要是用来跑 boinc 的,总得来说往硬盘里写了一堆文件、又删了一堆文件。。。
    @4679kun 都是我现在已经知道了的答案啊?
    flynaj
        19
    flynaj  
       2019 年 3 月 17 日 via Android
    VirtualBox 的话可以先填充 0,在收缩一下。文件删除只是标记删除,实际文件数据并没有清空。
    catalina
        20
    catalina  
    OP
       2019 年 3 月 18 日 via Android
    @flynaj vmware 好像也是这个样子的
    Cu635
        21
    Cu635  
       2019 年 3 月 18 日
    @catalina
    “总得来说往硬盘里写了一堆文件、又删了一堆文件”,这是关键啊。
    刚开始里面的 linux 只有 3.2G ,硬盘上的 vmdk 文件也就只有 3.2G 上下,你往里面写个 5G 的数据,vmdk 自然要跟着长大啊。但是你删除了这 5G 之后,vmdk 文件不会缩小,结果这是这样了。
    另外,vmware 好像是有工具在这种情况下缩小 vmdk 文件的,不需要提前填充 0。我之前是在虚拟机关机的情况下在软件界面找的。

    @flynaj
    跟“文件删除只是标记删除,实际文件数据并没有清空。”只是具有相关性不具有因果性,这个功能就是看虚拟机软件有没有做了,vmware 是可以不提前填充 0 就缩小 vmdk 文件的,vbox 才是需要提前填充 0 的。
    catalina
        22
    catalina  
    OP
       2019 年 3 月 18 日 via Android
    @Cu635 对啊,所以我没感到奇怪。
    而且 ext4 的 vmware 并不支持直接缩小,ntfs 和 fat32 好像效果不错(根据之前的经验)
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4975 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 50ms UTC 09:38 PVG 17:38 LAX 02:38 JFK 05:38
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86