VirtualBox:粒度表不一致

VirtualBox:粒度表不一致

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

主机断电后,客户机无法启动并抱怨

粮食表和备份粮食表不一致

任何无需重新安装即可启动客户机的帮助都将不胜感激。

PS:Grain Table 到底是什么?

答案1

真的帮不上什么忙,但是我发现这里的谷物表是这样的: http://www.vmware.com/support/developer/vddk/VirtualDiskAPIprogramming.pdf(第 16 页)

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

答案2

VMware 有一个名为“vmware-vdiskmanager位于”的工具,安装时"/Applications/VMware Fusion.app/Contents/Library/"会将其符号链接到该工具。/usr/local/bin您也可以使用此工具修复 VirtualBox VMDK 磁盘。它已经救了我好几次了。

安装

a.您可以安装VMware 融合(需要 macOS Catalina;用于vmware-fusion10旧版 macOS)

brew install vmware-fusion

b. 或者您可以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.
...

答案3

你的虚拟硬盘坏了。Grain 表是虚拟化环境的一些内部内容。

通过谷歌搜索确切的术语,可以发现恢复的可能性并不多: https://forums.virtualbox.org/viewtopic.php?f=6&t=40049

答案4

~/VirtualBox\ VMs从 Linux 移到 MacOS 后遇到了这个错误。我尝试@mens 解决方案使用vmware-vdiskmanager,但对我来说却失败了。

在我从 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两个文件都返回了相同的内容。

我设法让虚拟机重新启动将文件转换vmdkvdi执行以下操作。(需要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和已启动的机器。

就我而言,vdi 文件稍大一些,不要忘记删除,.bin因为它太大了。哦,第一次运行时验证失败。无论如何,如果可能的话,也许你应该从头开始启动一个新的虚拟机。

相关内容