为什么我不能使用 modifyhd 命令调整动态 VDI 的大小?

30 xubuntu partitioning virtualbox resize

我在这里看到如何增加虚拟机的硬盘大小

它应该与类似的命令一起使用

VBoxManage modifyhd xp.vdi --resize 2000
Run Code Online (Sandbox Code Playgroud)

当 VDI 具有固定大小时,您可能会收到此错误:

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!
Run Code Online (Sandbox Code Playgroud)

对此的讨论和解决方案就在这里

但是当我的 VDI 是动态的时我得到了那个错误

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)
Run Code Online (Sandbox Code Playgroud)

这是为什么?

Tak*_*kat 26

要使用VBoxManage modifyhd我们有以下注意事项:

  • 驱动器需要为 .VDI 或 .VHD 格式。
  • 驱动器必须是动态格式,而不是固定格式(可以通过创建克隆将固定磁盘转换为动态格式)。
  • 驱动器大小只会影响逻辑大小,而不影响物理大小。
  • 将驱动器缩小到等于或小于其物理大小是不可能的。
  • 为了缩小物理尺寸,我们必须用0.
  • Windows VDI 在缩小其物理大小之前可能必须进行碎片整理。

在上面的示例中,尝试将物理大小为 4693 MB 的动态磁盘调整为 2000 MB,这是不可能的。因此错误。

  • 要以固定格式修改驱动器,请按照@ripper234 的回答进行操作 (3认同)

rip*_*234 24

这个解决方法对我有用:

  1. 关闭机器
  2. 通过管理界面创建一个你想要的大小的新驱动器
  3. 使用带有标志的VBoxManage clonemedium--existing

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    
    Run Code Online (Sandbox Code Playgroud)

注意:现在新磁盘将有未分配的多余空间,您需要使用 gparted 将大小扩展到最大值。

不知道为什么 VirtualBox 的人不能使用上面的来实现这个而不是抛出VBOX_E_NOT_SUPPORTED......至少链接到这个 :)

  • @Ken 不确定你是否想通了;开始 -&gt; 运行 -&gt; diskmgmt.msc,右键单击 C:(或任何主驱动器)并选择扩展。 (4认同)
  • @ripper234 这三个步骤需要一些深入的解释 - 对于像我这样不太确定自己在做什么的人。2) 我们是在创建一个新的固定磁盘还是什么?.vdi .vdmk ?? 请举一个适当的例子,也许有图形。另外 3) 与 clonehd 相比,clonemedium 在做什么?这两个 guid 来自哪里 - 特别是目标一个 - 即使我们正在克隆它也已经存在?谢谢 (3认同)
  • 这有帮助。我没有使用 GUID,而是使用驱动器文件名 (2认同)