我已经用完了虚拟机磁盘(vmdk)上的空间,需要调整虚拟映像的大小。使用命令调整大小

vboxmanage modifyhd Machine-disk1.vmdk --resize 30720

给出错误

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

如何调整vmdk映像的大小?


当前回答

为了缩小图像大小,我使用以下步骤:

在客户端机器cat /dev/zero > z;sync;sleep 3;sync;rm -f z 关闭客户端机器 在主机VBoxManage clonehd”源代码上。vmdk”“克隆。Vdi”——格式化Vdi 在VBoxManage modifyhd克隆的主机上。vdi,紧凑 在主机VBoxManage clonehd“克隆。vdi”“调整大小。Vmdk "——格式化Vmdk

其他回答

一个快速而简单的选择:

关闭机器 创建所需大小的新虚拟盒磁盘 将内容从旧磁盘移动到新磁盘: Vboxmanage clonehd“源磁盘。vmdk”“新磁盘。vmdk”——现有的 打开机器 您可能必须在操作系统中调整分区大小,以填充磁盘的其余部分


警告

如果新磁盘比源磁盘短,则会丢失源磁盘上新磁盘大小位置上的数据。

在步骤1之前,您可以防止在操作系统内源磁盘的末端释放delta空间,其中delta = size(source-disk) - size(new-disk)。

正如Luca在回答中提到的,所需的步骤是:

将VMDK镜像克隆为VDI格式 VBoxManage clonehd”源代码。vmdk”“克隆。Vdi”——格式化Vdi 调整VDI映像的大小 VBoxManage modifyhd "克隆。Vdi”——调整大小51200 克隆回VMDK格式 VBoxManage clonehd克隆。vdi”“调整大小。Vmdk "——格式化Vmdk

如果可以使用VDI映像,则步骤3是可选的。

所有这些步骤都可以在VirtualBox图形用户界面下的File -> Virtual Media Manager中执行。选择要克隆的驱动器,然后选择“复制”。打开一个对话框,允许您选择磁盘格式和选项。要调整VDI图像的大小,只需使用底部的滑块(如果不可见,则单击属性)。

最后,您可能还需要在客户操作系统中更改磁盘大小:

运行客户操作系统,调整磁盘分区大小。如果您正在运行Linux,则可以使用gparted或kparted。

您可以使用Vmware player来调整vmdk的大小。 如果你想保持vmdk格式,这将删除往返转换(在其他文章中提到)。只要确保当你将vmdk添加到vmware时,不要在提示时单击升级格式,保持当前的格式以防VirtualBox不接受它。

我在这里是因为我需要为Docker (CoreOS)开发环境调整磁盘大小。

CoreOS文档说不需要调整OS分区大小——这是假的。在你调整虚拟磁盘的大小后,你应该按照下面的说明,通过GParted调整OS分区的大小:

https://docs.docker.com/articles/b2d_volume_resize/

为了缩小图像大小,我使用以下步骤:

在客户端机器cat /dev/zero > z;sync;sleep 3;sync;rm -f z 关闭客户端机器 在主机VBoxManage clonehd”源代码上。vmdk”“克隆。Vdi”——格式化Vdi 在VBoxManage modifyhd克隆的主机上。vdi,紧凑 在主机VBoxManage clonehd“克隆。vdi”“调整大小。Vmdk "——格式化Vmdk