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

10

Рассматриваемая настройка выглядит следующим образом: 64-разрядный хост Windows 7 работает под управлением VirtualBox. Гостевая машина работает под управлением Windows XP 32bit.

После сбоя питания на хост-компьютере гостевая машина не может загрузиться и жалуется, что

несоответствие между таблицей зерна и резервной таблицей зерна

Любая помощь по загрузке гостевой машины без переустановки приветствуется.

PS: Что такое зерновой стол?

Adamo
источник

Ответы:

4

Ничего не могу поделать, но я нашел таблицы зернистости здесь: http://www.vmware.com/support/developer/vddk/VirtualDiskAPIprogramming.pdf (стр. 16).

Как говорит пользователь mailq, похоже, что ваш виртуальный диск сломан. Может быть, проверить инструмент vmdkck (на этой странице http://datto.org/projects/vmdk-tools ), чтобы дважды проверить, что он сломан?

Николаос Георгиу
источник
И тебе спасибо. Я принял ваш ответ, потому что он предоставил ссылки, чтобы определить, что же представляет собой таблица зерна. Вы можете запросить спецификацию формата виртуального диска здесь vmware.com/technical-resources/interfaces/vmdk.html
adamo
12

В 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.
...
Мужской
источник
1
Название инструмента имеет av: "vmware-vdiskmanager". Я пытался отредактировать ответ, но он добавил только 2 символа, и правки должны быть не менее 6? :)
Нед Батчелдер
Это сработало отлично, просто спасло меня после того, как мой Mac рухнул, и оставил бродячую виртуальную коробку в грязном состоянии. Спасибо!
Фред
1
Я получаю сообщение об ошибке «На виртуальном диске не обнаружены ошибки» после выполнения команды восстановления, даже если у меня та же ошибка таблицы зернистости. Любые другие идеи для решения этой проблемы?
user95227 21.09.16
Круто, спасибо! Был в состоянии исправить поврежденный файл устройства (* .vmdk) после принудительного отключения питания.
Мэтт Борха
1
Прошлой ночью ответ ServerFault спас мне жизнь!
Спенсер Уильямс
2

Ваш виртуальный жесткий диск сломан. Зерновые таблицы - это некоторые внутренние составляющие сред виртуализации.

Поиск точного термина показывает, что возможностей для восстановления не так много: https://forums.virtualbox.org/viewtopic.php?f=6&t=40049

mailq
источник
Спасибо за быстрый ответ. Я гуглил до того, как спрашивать в SF. Я спросил, надеясь на длинный ответ, еще не охваченный форумом VirtualBox.
Адамо
2

Я использовал CloneVDI для решения этой проблемы. Я сделал клон, и новый файл работает очень хорошо.

Valguimar
источник
Я могу засвидетельствовать это. Это спасло мою жизнь. Уф.
Арди Арам
1

У меня была эта ошибка после переноса моего ~/VirtualBox\ VMsиз Linux в MacOS. Я попытался использовать решение @mensvmware-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вернул то же самое для обоих файлов.

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

GabLeRoux
источник