Рассматриваемая установка выглядит следующим образом: 64-битный хост Windows 7, на котором запущен VirtualBox. Гостевая машина работает под управлением 32-разрядной Windows XP.
После сбоя питания на главном компьютере гостевая машина не может загрузиться и жалуется, что
несоответствие между таблицей зернистости и резервной таблицей зернистости
Любая помощь по загрузке гостевой машины без ее переустановки приветствуется.
PS: А что такое зерновой стол?
У VMware есть инструмент под названием vmware-vdiskmanager
находится в "/Applications/VMware Fusion.app/Contents/Library/"
и привязан к /usr/local/bin
при установке. Вы также можете использовать этот инструмент для восстановления дисков VirtualBox VMDK.. Это меня уже пару раз спасало.
а. Вы можете установить vmware-fusion
brew cask install vmware-fusion
б. Или вы можете скачать 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.
...
Ничего не могу поделать, но я нашел, какие здесь зернистые таблицы: http://www.vmware.com/support/developer/vddk/VirtualDiskAPIprogramming.pdf (стр.16)
Как говорит пользователь mailq, похоже, что ваш виртуальный диск сломан. Возможно, проверьте инструмент vmdkck (на этой странице http://datto.org/projects/vmdk-tools ) дважды проверить, что он сломан?
Ваш виртуальный жесткий диск сломан. Таблицы зерна - это некоторая внутренняя составляющая сред виртуализации.
Поиск в Google точного термина показывает, что возможностей для восстановления не так много: https://forums.virtualbox.org/viewtopic.php?f=6&t=40049
я использовал CloneVDI чтобы решить эту проблему. Я сделал клон, и новый файл работает очень хорошо.
У меня была эта ошибка после перемещения ~/VirtualBox\ VMs
с Linux на MacOS. Я попытался Решение @mens с использованием 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
делаем следующее. (Требуется 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
как он огромен. О, и он не может пройти аутентификацию при первом запуске. В любом случае, если возможно, вам стоит вместо этого создать новую виртуальную машину с нуля.