VirtualBox: inconsistencia de tabla de grano

10

La configuración en cuestión es la siguiente: Windows 7 64bit host que ejecuta VirtualBox. La máquina invitada ejecuta Windows XP de 32 bits.

Después de una falla de energía en la caja del host, la máquina invitada no puede arrancar y se queja de que

inconsistencia entre la tabla de granos y la tabla de granos de respaldo

Se agradece cualquier ayuda para arrancar la máquina invitada sin reinstalarla.

PD: ¿Qué es una mesa de grano de todos modos?

adamo
fuente

Respuestas:

4

Realmente no puedo ayudar, pero encontré cuáles son las tablas de grano aquí: http://www.vmware.com/support/developer/vddk/VirtualDiskAPIprogramming.pdf (página 16)

Como dice el usuario mailq, parece que su unidad virtual está rota. ¿Quizás verifique la herramienta vmdkck (en esta página http://datto.org/projects/vmdk-tools ) para verificar que esté rota?

Nikolaos Georgiou
fuente
Gracias a ti también. Acepté su respuesta porque proporcionaba enlaces para localizar qué es realmente una tabla de grano. Puede solicitar la especificación del formato del disco virtual aquí vmware.com/technical-resources/interfaces/vmdk.html
adamo
12

VMware tiene una herramienta llamada vmware-vdiskmanagerubicada en "/Applications/VMware Fusion.app/Contents/Library/"y vinculada a /usr/local/bincuando está instalada. También puede usar esta herramienta para reparar discos VMDK de VirtualBox . Ya me salvó un par de veces.

Instalación

a. Puedes instalar vmware-fusion

brew cask install vmware-fusion

si. O puede descargar la vmware-vdiskmanagerutilidad directamente desde la sección Adjuntos en la parte inferior de esta página:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1023856

Uso

vmware-vdiskmanager -R <your_disk>.vmdk

Invocar sin parámetros proporciona ayuda de uso:

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.
...
de los hombres
fuente
1
El nombre de la herramienta tiene av: "vmware-vdiskmanager". Traté de editar la respuesta, pero solo agregó 2 caracteres, y las ediciones tienen que ser al menos 6. :)
Ned Batchelder
Esto funcionó muy bien, solo me salvó después de que mi Mac se bloqueó y dejó una virtualbox vagabunda en un estado sucio. ¡Gracias!
Fred
1
Recibo "no se encontraron errores en el disco virtual" después de ejecutar el comando de reparación a pesar de que tengo el mismo error de tabla de grano. ¿Alguna otra idea para resolver esto?
user95227
¡Genial gracias! Fue posible reparar el archivo dañado del dispositivo (* .vmdk) después del apagado forzado.
Matt Borja
1
¡Anoche, una respuesta de ServerFault me ​​salvó la vida!
Spencer Williams
2

Su disco duro virtual está roto. Las tablas de grano son algunas cosas internas de los entornos de virtualización.

Buscar en Google el término exacto revela que no hay muchas posibilidades de recuperación: https://forums.virtualbox.org/viewtopic.php?f=6&t=40049

mailq
fuente
Gracias por la pronta respuesta. Había buscado en Google antes de preguntar en SF. Pregunté esperando una respuesta a largo plazo que no estuviera cubierta por los foros de VirtualBox.
adamo
2

Solía clonevdi para resolver este problema. Hice un clon y el nuevo archivo funciona muy bien.

Valguimar
fuente
Puedo dar fe de ello. Esto me salvó la vida. Uf.
Ardee Aram
1

Tuve este error después de mover mi ~/VirtualBox\ VMsde Linux a MacOS. Intenté usar la solución @mensvmware-vdiskmanager , pero me falló.

Durante mi migración de Linux a MacOS, agregué todos los *.vboxarchivos a Virtualbox y todos fallaron al iniciar con el mismo error (usando vagabundo):

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

Verifiqué que los datos transferidos correctamente, md5 box-disk1.vmdkdevolvieron lo mismo para ambos archivos.

Me las arreglé para obtener un vm para arrancar nuevamente al convertir los vmdkarchivos avdi hacer lo siguiente. (Requiere 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

Se actualizó la ruta al volumen .vdiy se inició la máquina

En mi caso, el archivo vdi es un poco más grande, no olvides eliminarlo .binya que es enorme. Ah, y no se autentica en la primera ejecución. De todos modos, si es posible, tal vez deberías girar una nueva máquina virtual desde cero.

GabLeRoux
fuente