VirtualBox: inconsistência na tabela de grãos


10

A configuração em questão é a seguinte: Host do Windows 7 de 64 bits 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

inconsistência entre a tabela de grãos e a tabela de grãos de backup

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

PS: O que é uma tabela de grãos, afinal?

Respostas:


4

Não posso ajudar muito, mas descobri quais são as tabelas de grãos aqui: http://www.vmware.com/support/developer/vddk/VirtualDiskAPIprogramming.pdf (página 16)

Como o usuário mailq diz, parece que sua unidade virtual está com problemas. Talvez verifique a ferramenta vmdkck (nesta página http://datto.org/projects/vmdk-tools ) para verificar novamente se está quebrada?


Obrigada tambem Aceitei sua resposta porque fornecia links para localizar o que realmente é uma tabela de grãos. Pode-se solicitar a especificação de formato de disco virtual aqui vmware.com/technical-resources/interfaces/vmdk.html
— Adamo

12

O VMware possui uma ferramenta chamada vmware-vdiskmanagerlocalizada "/Applications/VMware Fusion.app/Contents/Library/"e com link simbólico /usr/local/binquando instalada. Você pode usar esta ferramenta para reparar também os discos do VirtualBox VMDK . Isso já me salvou algumas vezes.

Instalação

uma. Você pode instalar o vmware-fusion

brew cask install vmware-fusion

b. Ou você pode baixar o vmware-vdiskmanagerutilitário diretamente da seção Anexos na parte inferior desta página:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1023856

Uso

vmware-vdiskmanager -R <your_disk>.vmdk

A chamada sem parâmetros fornece ajuda para o uso:

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.
...

1
O nome da ferramenta possui um av: "vmware-vdiskmanager". Tentei editar a resposta, mas ele só adicionou 2 caracteres e as edições devem ter pelo menos 6? :)
— Ned Batchelder

Isso funcionou muito bem, só me salvou depois que meu Mac travou e deixou uma caixa virtual vagabunda em um estado sujo. Obrigado!
— 20915 Fred

1
Estou recebendo "nenhum erro foi encontrado no disco virtual" após executar o comando de reparo, mesmo que eu tenha o mesmo erro na tabela de grãos. Alguma outra idéia para resolver isso?
— user95227

Incrível, obrigado! Consertou o arquivo do dispositivo corrompido (* .vmdk) após o desligamento forçado.
— Matt Borja

1
Ontem à noite, uma resposta ServerFault salvou minha vida!
— Spencer Williams

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, o Google revela que não existem muitas possibilidades de recuperação: https://forums.virtualbox.org/viewtopic.php?f=6&t=40049


Obrigado pela resposta rápida. Eu tinha pesquisado no Google antes de perguntar na SF. Eu perguntei, esperando uma resposta de longo prazo ainda não coberta pelos fóruns do VirtualBox.
— Adamo 24/10

2

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


Eu posso atestar isso. Isso salvou minha vida. Ufa.
— Ardee Aram

1

Eu tive esse erro depois de passar ~/VirtualBox\ VMsdo Linux para o MacOS. Eu tentei a solução @mens usandovmware-vdiskmanager , mas falhou para mim.

Durante minha migração do linux para o MacOS, adicionei todos os *.vboxarquivos novamente ao Virtualbox e todos eles falharam ao 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 e md5 box-disk1.vmdkretornaram a mesma coisa para os dois arquivos.

Consegui obter uma VM para inicializar novamente, convertendo os vmdkarquivos paravdi 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 .vdie inicializado pela máquina.

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.