在 VirtualBox 中调整 vhd 硬盘大小后无法启动

在 VirtualBox 中调整 vhd 硬盘大小后无法启动

在 Windows 7 中,我在 VirtualBox 中设置了另一个 Windows 7 VM。它运行良好。然后,我需要增加 vhd HD 大小。因此,我使用 VBoxManage 实用程序来执行此操作,并带有以下注释:

VBoxManage modifyhd "c:\VMs\Win7.vhd" --resize 30000

然后,我尝试再次运行虚拟机,但无法启动并出现以下错误:

严重错误:未找到可启动媒体!系统停止运行。

然后,我尝试查看 VHD 内部发生了什么,并尝试将其附加到设备管理中,它说无法附加,因为文件或目录已损坏且无法读取

知道这里出了什么问题吗?我该如何将我的 VM 保存在该 VHD 文件中?

答案1

不幸的是,VirtualBox 文档中有关 VBoxManage --resize 选项的内容具有误导性。您不能只增加磁盘映像的大小,然后让一切正常工作。必须调整映像中的磁盘分区信息,以便客户操作系统知道磁盘映像模拟的“驱动器”的布局。您可以通过下载带有分区编辑器的可启动 CD 映像并将 VM 启动到该 CD 来完成此调整。然后,您可以使用分区编辑器调整磁盘映像的分区以使用增加的空间。

有一个很好的程序描述这里;直接跳至步骤 4。

答案2

我遇到过同样的问题

  1. 创建具有所需大小的新 VHD
  2. 使用 clonhd 从旧 vhd 复制到新 vhd

参考 :http://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual-box-vdi-dis/

答案3

我遇到了同样的问题,我设法使用分区活CD

  1. 创建新的 VHD 来接收复制的数据(创建分区和格式化)
  2. 下载 GParted LiveCD 并在 VirtualBox 上启动
  3. 选择设备 -> 尝试数据救援
  4. 单击“确定”,扫描后单击“查看”(这将挂载 /tmp/gparted-roview-XXXXXX)
  5. 在终端上,挂载第二个 VHD(sudo mount /dev/sdb1 /mnt)
  6. 复制文件(sudo cp -R /tmp/gparted-roview-XXXXXX/* /mnt

之后,您可以关闭虚拟机并在 Windows 设备管理器上安装 VHD。

答案4

值得注意的是,我遇到了完全相同的问题,这是因为我在客户机运行时发出了modifyhd命令。官方文档没有提到您必须先删除快照,并且该客户机应该已经停止。

我的计划是在机器运行时调整磁盘大小,因为我有一个动态卷,也可以随时增加。然而,这是一个坏主意,因为我重新启动了机器以获取完整的磁盘大小,而我却对损坏的映像一无所知,即使不使用 testdisk 也无法恢复。Testdisk 找到了分区,但文件系统严重损坏,无法修复。

因此请注意:

  1. 将所有快照合并到基础映像中
  2. 关闭客户操作系统

我已经在我的计算机上重复了该过程,使用备份映像并关闭了客户操作系统,效果很好。

相关内容