Назад | Перейти на главную страницу

VirtualBox: несогласованность таблицы зернистости

Рассматриваемая установка выглядит следующим образом: 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 как он огромен. О, и он не может пройти аутентификацию при первом запуске. В любом случае, если возможно, вам стоит вместо этого создать новую виртуальную машину с нуля.