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.