我已经用完了虚拟机磁盘(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映像的大小?
我已经用完了虚拟机磁盘(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映像的大小?
当前回答
因为这是一个vmdk文件,所以您可以使用VMWare的vdiskmanager,如果它适用于您的平台的话。VMWare在这里有x86 Linux、Windows和OS X版本(请参阅右侧的“附件”)。
然后你只要做:
1023856-vdiskmanager-windows-7.0.1.exe -x 30720M Machine-disk1.vmdk
它避免了必须克隆,然后扩展磁盘。现在,缺点是您需要额外的工具,而vmdk是VMWare的磁盘格式,并且您仍在使用Virtualbox,因此可能存在不兼容性。
qemu-img也可以工作,但我不确定它是否支持调整vmdk文件的大小。它看起来像这样:
qemu-img resize Machine-disk1.vmdk +8G
提醒一下,对于这两种情况,在调整底层磁盘的大小之后,仍然需要增加分区。这些工具本质上都是dd if=/dev/old_disk of=/dev/new_disk bs=16M。
其他回答
因为这是一个vmdk文件,所以您可以使用VMWare的vdiskmanager,如果它适用于您的平台的话。VMWare在这里有x86 Linux、Windows和OS X版本(请参阅右侧的“附件”)。
然后你只要做:
1023856-vdiskmanager-windows-7.0.1.exe -x 30720M Machine-disk1.vmdk
它避免了必须克隆,然后扩展磁盘。现在,缺点是您需要额外的工具,而vmdk是VMWare的磁盘格式,并且您仍在使用Virtualbox,因此可能存在不兼容性。
qemu-img也可以工作,但我不确定它是否支持调整vmdk文件的大小。它看起来像这样:
qemu-img resize Machine-disk1.vmdk +8G
提醒一下,对于这两种情况,在调整底层磁盘的大小之后,仍然需要增加分区。这些工具本质上都是dd if=/dev/old_disk of=/dev/new_disk bs=16M。
我可以通过克隆vmdk,然后修改和调整它的大小来调整它的大小。
vboxmanage clonehd "virtualdisk.vmdk" "new-virtualdisk.vdi" --format vdi
vboxmanage modifyhd "new-virtualdisk.vdi" --resize 30720
我在这里是因为我需要为Docker (CoreOS)开发环境调整磁盘大小。
CoreOS文档说不需要调整OS分区大小——这是假的。在你调整虚拟磁盘的大小后,你应该按照下面的说明,通过GParted调整OS分区的大小:
https://docs.docker.com/articles/b2d_volume_resize/
一个快速而简单的选择:
关闭机器 创建所需大小的新虚拟盒磁盘 将内容从旧磁盘移动到新磁盘: Vboxmanage clonehd“源磁盘。vmdk”“新磁盘。vmdk”——现有的 打开机器 您可能必须在操作系统中调整分区大小,以填充磁盘的其余部分
警告
如果新磁盘比源磁盘短,则会丢失源磁盘上新磁盘大小位置上的数据。
在步骤1之前,您可以防止在操作系统内源磁盘的末端释放delta空间,其中delta = size(source-disk) - size(new-disk)。
您可以使用Vmware player来调整vmdk的大小。 如果你想保持vmdk格式,这将删除往返转换(在其他文章中提到)。只要确保当你将vmdk添加到vmware时,不要在提示时单击升级格式,保持当前的格式以防VirtualBox不接受它。