VirtualBox: inconsistência na tabela de grãos

8

A configuração em questão é a seguinte: Windows 7 64bit host executando o VirtualBox. A máquina convidada está executando o Windows XP 32bit.

Após uma falha de energia na caixa do host, a máquina convidada não pode inicializar e reclama que

inconsistency between grain table and backup grain table

Qualquer ajuda para inicializar a máquina guest sem reinstalá-la é apreciada.

PS: O que é uma mesa de grãos?

    
por adamo 24.10.2011 / 16:06

5 respostas

4

Não posso ajudar muito, mas descobri o que as tabelas de granulação estão aqui: link (página 16)

Como o usuário mailq diz, parece que seu disco virtual está quebrado. Talvez verifique a ferramenta vmdkck (nesta página link ) para checar se ela está quebrada?

    
por 24.10.2011 / 16:21
11

O VMware tem uma ferramenta chamada vmware-vdiskmanager localizada em "/Applications/VMware Fusion.app/Contents/Library/" e vinculada a /usr/local/bin quando instalada. Você pode usar essa ferramenta para reparar discos VirtualBox VMDK também . Isso me salvou algumas vezes já.

Instalação

a. Você pode instalar o vmware-fusion

brew cask install vmware-fusion

b. Ou você pode baixar o utilitário vmware-vdiskmanager diretamente da seção Anexos na parte inferior desta página:
link

Uso

vmware-vdiskmanager -R <your_disk>.vmdk

Invocar sem parâmetros fornece ajuda:

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.
...
    
por 12.02.2014 / 16:45
2

Seu disco rígido virtual está quebrado. As tabelas de grãos são algumas coisas internas dos ambientes de virtualização.

Pesquisando o termo exato, revela que não há muitas possibilidades de recuperação: link

    
por 24.10.2011 / 16:18
2

Eu usei CloneVDI para resolver esse problema. Eu fiz um clone e o novo arquivo funciona muito bem.

    
por 09.01.2013 / 02:08
1

Eu tive esse erro depois de mover meu ~/VirtualBox\ VMs do Linux para o MacOS. Eu tentei @mens solução usando vmware-vdiskmanager , mas falhou para mim.

Durante minha migração do linux para o MacOS, adicionei todos os arquivos *.vbox de volta ao Virtualbox e todos falharam em inicializar com o mesmo erro (usando o 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

Eu verifiquei que os dados foram transferidos corretamente, md5 box-disk1.vmdk retornou a mesma coisa para os dois arquivos.

Consegui que um vm inicializasse novamente convertendo os arquivos vmdk para vdi fazendo o seguinte. (Requer 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

Caminho atualizado para o volume de .vdi e inicialização da máquina.

No meu caso, o arquivo vdi é um pouco maior, não esqueça de deletar .bin como ele é enorme. Ah e não consegue autenticar na primeira execução. De qualquer forma, se possível, talvez você devesse criar uma nova vm do zero.

    
por 22.03.2017 / 02:48