我已经用完了虚拟机磁盘(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映像的大小?


当前回答

一个快速而简单的选择:

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


警告

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

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

其他回答

vmdk:

相当固定的大小分配(步骤1、2)。 即使在扩展之后,也无法在vmdk的操作系统中使用(步骤3、4、5)

步骤:

1)转换为“。VBoxManage clonehd v1。vmdk v1。Vdi——格式化Vdi

2)使用命令行扩展大小(参考:tvial的博客一步一步的信息)

OR

从VirtualBox中的虚拟媒体管理器展开。

[现在-在vm内部]

3)扩大驱动器的大小,使用新的分配(例如Ubuntu在虚拟机上运行:使用GParted)

4)扩展文件系统- lvextend - l +50G <file-system-identifier>

说明:

$ lsblk
NAME                       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sda                          8:0    0   200G  0 disk 
└─sda1                       8:1    0   200G  0 part 
  ├─myfs-vg-cloud          253:0    0    99G  0 lvm  /
  └─myfs-vg-swap-1         253:1    0   980M  0 lvm  [SWAP]


$ lvextend -L +100G /dev/mapper/myfs-vg-cloud

$ lsblk
NAME                       MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sda                          8:0    0   200G  0 disk 
└─sda1                       8:1    0   200G  0 part 
  ├─myfs-vg-cloud          253:0    0   199G  0 lvm  /
  └─myfs-vg-swap-1         253:1    0   980M  0 lvm  [SWAP]

5)扩展/home - resize2fs <file-system-identifier>

说明:

$ df -h /home/
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/myfs-vg-cloud         97G   87G  6.0G  94%   /

$ resize2fs /dev/mapper/myfs-vg-cloud

$ df -h /home/
Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/myfs-vg-cloud         196G   87G  101G  47%  /

您的系统现在必须准备好使用扩展分配!!

正如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。

我有一个Mac主机上的Windows 7客户端,这篇文章非常有帮助。谢谢。

我要补充一点,我没有使用gparted。我是这样做的:

启动新的放大的vmdk映像。 转到开始,右键单击计算机,选择管理。 单击磁盘管理 你应该在你的C盘上看到一些灰色的空间(在我的情况下) 右键单击C驱动器并选择扩展卷。 选择尺寸然后出发

甜蜜的!比起使用带有数据丢失警告的第三方工具,我更喜欢这种方法。

干杯!

如果您希望结束返回vmdk硬盘(可能您也有兴趣在vwmare中使用该磁盘),完整的步骤如下:

VBoxManage clonemedium "source.vmdk" "cloned.vdi" --format vdi
VBoxManage modifymedium "cloned.vdi" --resize 51200
VBoxManage clonemedium "cloned.vdi" "resized.vmdk" --format vmdk

以上将调整硬盘大小至50GB (50 * 1024MB)。 要完成事情,你也需要调整驱动器的大小!要实现这一点,您可能需要下载gparted iso,并从该iso引导来调整驱动器的大小(从virtualbox设置中选择iso)。

附注:如果你的新大小太小,即使你的新vdi文件也会得到同样的错误。

我可以通过克隆vmdk,然后修改和调整它的大小来调整它的大小。

vboxmanage clonehd "virtualdisk.vmdk" "new-virtualdisk.vdi" --format vdi
vboxmanage modifyhd "new-virtualdisk.vdi" --resize 30720