Vmware宿主机内存回收

VMware 虚拟机使用之后硬盘空间只会增大不缩小问题的解决

问题背景

我使用的是ubuntu20.04的虚拟机,由于要编译Android的AOSP代码,所以使用内存比较大,但是换一个平台定制的Android源码之后我删除了原先的Android源码库在虚拟机中gparted能看到空间被释放了,但是宿主机Windows10上面的磁盘空间显式依然是满的,此时如果要换另一个源码进行编译会显式空间不足,解决方法如下:

解决方式

  1. 将虚拟机中的空间写0.出现这个问题的原因就是我虽然删除了空间但是这些空间并不是实际的在宿主机上被释放了,写0是为了将原本这块内存上的内容完全的清空,才有可能被后面的步骤回收掉。
    使用如下命令将内存空间写0,一定要先切换到root权限。
// 使用cat命令复写root分区
root@ubuntu:~/# cat /dev/zero > /zero.fill;sync;sleep 1;sync;rm -f /zero.fill
// 使用dd命令复写root分区,两种方式二选一
root@ubuntu:~/# dd if=/dev/zero of=/zeroes && rm -f /zeroes

如果有挂载点需要清除的可以使用以下命令:
cat /dev/zero > /[挂载点]/zero.fill;sync;sleep 1;sync;rm -f /[挂载点]/zero.fill
or
dd if=/dev/zero of=/[挂载点]/zeroes && rm -f /[挂载点]/zeroes

  1. 关闭虚拟机,使用VMware自带的磁盘管理工具将刚刚写0的空间进行回收
    打开Windows10的命令行窗口运行以下命令:
G:\vmware\vmware-vdiskmanager.exe -k 路径\XXX.vmdk 

前面的路径表示vmware的安装路径,自己可以去找一下安装路径下是否有vmware-vdiskmanager.exe这个工具,一般默认都是会安装的,但是不要直接打开,只能在命令行下使用,后面的路径表示虚拟机存放的路径,找到vmdk文件进行压缩即可,这一步等待的时间可能较长,取决于虚拟机本身占用了多大空间
两步操作结束后即可,空间被完美释放。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值