問題のセットアップは次のとおりです。VirtualBoxを実行するWindows 7 64ビットホスト。ゲストマシンはWindowsを実行していますXP 32ビット。
ホストボックスで電源障害が発生した後、ゲストマシンは起動できず、
グレインテーブルとバックアップグレインテーブル間の不整合
それを再インストールせずにゲストマシンを起動するための任意の助けを歓迎します。
PS:とにかく、穀物テーブルとは何ですか?
本当に助けにはなりませんが、ここでは粒度表が見つかりました: http://www.vmware.com/support/developer/vddk/VirtualDiskAPIprogramming.pdf (16ページ)
ユーザーmailqが言うように、仮想ドライブが壊れているように見えます。たぶんvmdkckツール(このページ http://datto.org/projects/vmdk-tools )をチェックして、壊れていることを再確認しますか?
VMwareのvmware-vdiskmanager
というツールは"/Applications/VMware Fusion.app/Contents/Library/"
にあり、インストールすると/usr/local/bin
にシンボリックリンクされます。 このツールを使用して、VirtualBox VMDKディスクも修復できます。すでに数回は助かりました。
a。インストールできます vmware-fusion
brew cask install vmware-fusion
b。または、このページの下部にあるAttachmentsセクションからvmware-vdiskmanager
ユーティリティを直接ダウンロードできます。
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1023856
vmware-vdiskmanager -R <your_disk>.vmdk
パラメーターなしで呼び出すと、ヘルプの使用法がわかります。
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.
...
この問題を解決するために CloneVDI を使用しました。クローンを作成しましたが、新しいファイルは非常にうまく機能しています。
仮想ハードドライブが壊れています。グレインテーブルは、仮想化環境の内部的なものです。
正確な用語をグーグル検索すると、回復する可能性があまりないことがわかります。 https://forums.virtualbox.org/viewtopic.php?f=6&t=40049
LinuxからMacOSに~/VirtualBox\ VMs
を移動した後、このエラーが発生しました。 @ mens solution using vmware-vdiskmanager
を試しましたが、失敗しました。
LinuxからMacOSへの移行中に、すべての*.vbox
ファイルをVirtualboxに戻しましたが、それらはすべて同じエラーで(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
データが正しく転送されたことを確認しました。両方のファイルでmd5 box-disk1.vmdk
が同じものを返しました。
vmdk
ファイルをvdi
に変換することで、次のようにしてVMを再起動できました。 (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
.vdi
のボリュームへのパスを更新し、マシンを起動しました。
私の場合、vdiファイルは少し大きいです。.bin
は非常に大きいため、忘れずに削除してください。ああ、最初の実行では認証に失敗します。とにかく、可能であれば、代わりに新しいVMを最初からスピンアップする必要があります。