Eu tive esse erro depois de passar ~/VirtualBox\ VMs
do 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 *.vbox
arquivos 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.vmdk
retornaram a mesma coisa para os dois arquivos.
Consegui obter uma VM para inicializar novamente, convertendo os vmdk
arquivos 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 .vdi
e 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.