VirtualBox:谷物表不一致

有问题的设置如下:运行VirtualBox的Windows 7 64位主机。 客户机运行Windows XP 32位。

在主机箱发生电源故障后,客机无法启动并抱怨

粮食表和备用粮食表之间的不一致

任何帮助启动客机没有重新安装赞赏。

PS:什么是粮食表呢?

不能真正帮助,但我发现谷物表在这里: http : //www.vmware.com/support/developer/vddk/VirtualDiskAPIprogramming.pdf (page 16)

就像用户mailq所说,看起来你的虚拟驱动器坏了。 也许检查vmdkck工具(在这个页面http://datto.org/projects/vmdk-tools )仔细检查它是坏的?

VMware在"/Applications/VMware Fusion.app/Contents/Library/"有一个名为vmware-vdiskmanager "/Applications/VMware Fusion.app/Contents/Library/"并且在安装时将其链接到/usr/local/bin您也可以使用此工具修复VirtualBox VMDK磁盘 。 它已经救了我几次了。

安装

一个。 你可以安装vmware-fusion

 brew cask install vmware-fusion 

湾 或者,您可以直接从本页底部的“ 附件”部分下载vmware-vdiskmanager实用程序:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1023856

用法

 vmware-vdiskmanager -R <your_disk>.vmdk 

不带参数调用帮助使用:

 Usage: vmware-vdiskmanager OPTIONS <disk-name> | <mount-point> Offline disk manipulation utility ... -R : check a sparse virtual disk for consistency and attempt to repair any errors. ... 

我使用了CloneVDI来解决这个问题。 我做了一个克隆,新文件工作得很好。

你的虚拟硬盘坏了。 粮食表是虚拟化环境的一些内部资料。

谷歌search确切的术语显示,没有太多的可能性恢复: https : //forums.virtualbox.org/viewtopic.php?f=6&t=40049

我安装了VMware-vix-disklib-6.5.0-4604867.x86_64.zip并运行下面的命令bin / vmware-diskmanager -R .vmdk工具修复了损坏的磁盘

将我的~/VirtualBox\ VMs从Linux迁移到MacOS后出现此错误。 我使用vmware-vdiskmanager vdiskmanager尝试了@mens解决scheme ,但是对我来说却失败了。

在我从Linux迁移到MacOS的过程中,我将所有的*.vbox文件重新添加到了Virtualbox中,并且都导致了同样的错误(使用vagrant):

 There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below. Command: ["startvm", "<UUID 1>", "--type", "headless"] Stderr: VBoxManage: error: Could not open the medium '/path/to/box-disk1.vmdk'. VBoxManage: error: VMDK: inconsistency between grain table and backup grain table in '/path/to/box-disk1.vmdk' (VERR_VD_VMDK_INVALID_HEADER). VBoxManage: error: VD: error VERR_VD_VMDK_INVALID_HEADER opening image file '/path/to/box-disk1.vmdk' (VERR_VD_VMDK_INVALID_HEADER) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MediumWrap, interface IMedium 

我确认数据传输正确, md5 box-disk1.vmdk为这两个文件返回相同的结果。

我设法得到一个虚拟机,通过vmdk文件转换为vdi执行以下操作。 (需要qemubrew install qemu

 # Convert from `.vmdk` to `.bin` qemu-img convert box-disk1.vmdk box-disk1.bin # Convert from `.bin` to `.vdi` VBoxManage convertdd box-disk1.bin box-disk1.vdi 

更新了.vdi和机器引导的卷的path。

在我的情况下,vdi文件稍大,不要忘记删除.bin因为它是巨大的。 哦,它无法validation第一次运行。 无论如何,如果可能的话,也许你应该从头开始一个新的VM而不是。