减小Vagrant虚拟机盒子(vmdk)的存储大小

6
我在Windows主机上从ubuntu/trusty64创建了初始化的vagrant。我意识到新创建的virtualbox的磁盘大小设置为40GB。我想将其减少至少10GB。有什么办法可以做到这一点吗?
虽然现在实际大小只有1.19GB,但我不希望它的虚拟大小这么大。
谢谢!
2个回答

4
你可以尝试通过以下两种方式进行:
1. 运行以下命令来清空虚拟机中的磁盘空间: cat /dev/zero > /path/to/fill/z; sync; sleep 3; sync; rm -rf z 注意:在运行上述命令之前,请先删除虚拟机中不需要的文件。如果您有多个分区或逻辑卷,请对每个分区都进行操作。
2. 压缩虚拟磁盘(VDI格式的效果很好,但是VMDK格式则未知),可使用以下命令: VBoxManage modifyhd --compact /path/to/vdisk.vmdk 完成后,您会看到压缩进度,检查其大小即可。
更新:如果要调整虚拟磁盘的大小,请使用 VBoxManage modifyhd --resize <megabytes> /path/to/vdisk.vmdk.
注意:虚拟磁盘的大小并不太重要,它只是虚拟磁盘镜像可以增长到的最大容量。默认情况下,VMDK应该是动态分配的,这意味着vmdk的大小将接近于虚拟机中的数据量。以上方法将有助于回收已在虚拟机中释放的空间。
重要提示:增加虚拟磁盘大小是可以的,但是在缩小虚拟磁盘大小时,您应该非常小心,因为存在数据丢失的风险,新大小小于虚拟磁盘中实际数据大小。

1
似乎不起作用。问题在于它的虚拟大小(最大大小)为40GB,但磁盘上的实际大小只有1.19GB。我只想减小这个40GB的虚拟大小。vmdk文件似乎会一直增长直到达到给定的最大大小。 - ganni
1
好的,我现在明白你想要实现什么。请查看更新后的答案。 - Terry Wang
谢谢!我尝试了你的方法,还尝试了将我的vdisk.vmdk转换为vdi格式后使用“VBoxManage modifyhd --resize vdisk.vdi”,但都没有成功。虽然我能够将其虚拟大小缩小到15G,但在缩小后我的虚拟机无法启动。所以我现在放弃了这个方法 :( - ganni
4
对我没有用:~/dev/slim $ VBoxManage modifyhd --resize 40000 '/Users/jstoutenburg/VirtualBox VMs/dev_default_1434481145698_7671/box-disk1.vmdk' 0%... 进度状态:VBOX_E_NOT_SUPPORTED VBoxManage: 错误:此格式的调整硬盘大小操作尚未实现!有什么想法吗?如果这对Mac OS主机有影响怎么办? - Stoutie

2
在Linux上,您可以尝试使用qemu-img resize filename [+|-]size来调整文件大小。

很不幸,我的主机系统是Windows.. 难道没有其他方法吗? - ganni
抱歉,我不知道Windows的方法。如果您能找到一种缩小容器的方法,我可以告诉您如何调整虚拟机内部文件系统的大小。 - Maxym

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接