domingo, 7 de junio de 2015

Extender el tamaño de un disco vmdk

Para extender el tamano de un disco vmdk de VirtualBox se usa el comando VBoxManage. Este comando se usa para extender discos vdi entonces es necesarios convertir primero el disco a vdi para extenderlo y despues volverlo a convertir a vmdk:
vboxmanage modifyhd wsWin7.vmdk --resize 40960
este comando devuelve el error:
VBoxManage: error: Could not find file for the medium '/home/nicas/Downloads/wsWin7.vmdk' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium, calleensISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp
Para crear un clon con transformando de vmdk a vdi se usa:
vboxmanage clonehd wsWin7.vmdk wsWin7.vdi --format vdi
Una vez clonado es posible extender el tamaño a 40GB =  40 x 1024 = 40960
vboxmanage modifyhd wsWin7.vdi --resize 40960
Después podemos conectar el disco vdi directamente a la VM y sustituirlo por el vmdk o volverlo a convertir a vmdk con vboxmanage.
Una vez extendido el tamaño con vboxmanage es necesario extender la partición del disco en el sistema operativo huésped.

sábado, 6 de junio de 2015

VMDK: inconsistency between grain table and backup grain table

Al actualizar Fedora 18 a Fedora 20, la versión instalada de VirtualBox-4.2-4.2.18 debe actualizarse a VirtualBox-4.3-4.3.28. Sin embargo, la instalación del rpm no va bien porque hay muchos paquetes que entran en conflicto con los de la versión anterior.

Elimino con yum autoremove todos los paquetes de la versión anterior.

rpm -aq VirtualBox
yum list | grep virtualbox
yum autoremove VirtualBox-4.2.x86_64
yum autoremove VirtualBox-4.3.x86_64

y lo vuelvo a instalar siguiendo los pasos de aqui.

Para ver las operaciones que se han seguido con yum con un paquete en concreto (por ejemplo firefox) se usa el comando:

yum history list firefox

Después de instalarlo, VirtualBox se ejecuta sin problemas. Descargo e instalo las Extensiones.

Sin embargo, cuando se intenta ejecutar cualquier VM tanto Windows como Linux, aparece el mensaje de error siguiente:

Failed to open a session for the virtual machine CentOS-6.4-i386-minimal.

VMDK: inconsistency between grain table and backup grain table in '/path/al/disco/disco.vmdk' (VERR_VD_VMDK_INVALID_HEADER).

VD: error VERR_VD_VMDK_INVALID_HEADER opening image file '/path/al/disco/disco.vmdk' (VERR_VD_VMDK_INVALID_HEADER).

Failed to open image '/path/al/disco/disco.vmdk' in read-write mode (VERR_VD_VMDK_INVALID_HEADER).

Failed to attach driver below us! VMDK: Invalid image file header. (VERR_VD_VMDK_INVALID_HEADER).

AHCI: Failed to attach drive to Port0 (VERR_VD_VMDK_INVALID_HEADER).

Result Code: NS_ERROR_FAILURE (0x80004005)
Component: Console
Interface: IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}

Si creo una maquina virtual nueva e intento instalar Windows 7, la instalacion no se completa y la VM no se puede arrancar porque dice que el archivo winload.exe esta corrupto.


Windows Failed to start. a recenent hardware or software change may be the cause. to fix this problem: (boot from the cd and repair windows) (doesnt actually say that but thats what it tells you to do)

File: /windows/system32/winload.exe

Status: 0xc0000221

Info: the file is possibly corupt. its header checksum does not match the computed checksum.

Ni siquiera intentando una reparacion del bootloader con el disco original de Windows funciona. El error aparece al arrancar la VM con Windows y no deja seguir.

Soluciono el problema eliminando el controlador SATA/AHCI donde encuentra conectado el disco que contiene el sistema por un controlador IDE. Simplemente conecto el disco que contiene el sistema operativo invitado al controlador IDE donde normalmente se encuentra el CDROM/DVD. Un único controlador IDE contiene los dos dispositivos. Se puede ver el mismo procedimiento aquí.


No sé muy bien porque no funciona el controlador SATA ni el SCSI.