有问题的设置如下:运行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执行以下操作。 (需要qemu , brew 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而不是。