Tôi đã gặp lỗi này sau khi chuyển ~/VirtualBox\ VMs
từ Linux sang MacOS. Tôi đã thử giải pháp @mens bằng cách sử dụngvmware-vdiskmanager
nhưng không thành công.
Trong quá trình di chuyển từ linux sang MacOS, tôi đã thêm tất cả các *.vbox
tệp vào Virtualbox và tất cả chúng đều không khởi động được với cùng một lỗi (sử dụng 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
Tôi xác nhận rằng dữ liệu được truyền chính xác, md5 box-disk1.vmdk
trả lại cùng một thứ cho cả hai tệp.
Tôi quản lý để có được một vm để khởi động lại bằng cách chuyển đổi các vmdk
tập tin đểvdi
làm như sau. (Yêu cầu 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
Đường dẫn cập nhật đến âm lượng cho .vdi
và máy khởi động.
Trong trường hợp của tôi, tệp vdi lớn hơn một chút, đừng quên xóa .bin
vì nó rất lớn. Oh và nó không xác thực trong lần chạy đầu tiên. Dù sao, nếu có thể, có lẽ bạn nên quay một vm mới từ đầu.