Miałem ten błąd po przeniesieniu mojego ~/VirtualBox\ VMs
z systemu Linux na MacOS. Wypróbowałem @mens rozwiązanie przy użyciuvmware-vdiskmanager
, ale nie udało mi się.
Podczas migracji z systemu Linux na MacOS, dodałem wszystkie *.vbox
pliki z powrotem do Virtualbox i wszystkie nie uruchomiły się z tym samym błędem (przy użyciu błędnej wersji):
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
Sprawdziłem, czy dane przesłane poprawnie, md5 box-disk1.vmdk
zwróciły to samo dla obu plików.
Udało mi się uzyskać vm do ponownego uruchomienia, konwertując vmdk
pliki,vdi
wykonując następujące czynności. (Wymaga 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
Zaktualizowano ścieżkę do woluminu .vdi
i uruchomiono komputer.
W moim przypadku plik vdi jest nieco większy, nie zapomnij go usunąć, .bin
ponieważ jest ogromny. Aha, i nie można się uwierzytelnić przy pierwszym uruchomieniu. W każdym razie, jeśli to możliwe, może powinieneś zamiast tego rozpędzić nową maszynę wirtualną.