sábado, 15 de octubre de 2011

CAMBIAR EL TAMAÑO DE UN DISCO EXISTENTE EN VIRTUALBOX

[ Si piensas que este artículo es útil, por favor considera descargar mi juego "Just Survive XP" en el Appstore (gratis por tiempo limitado):

=> http://itunes.apple.com/app/just-survive-xp/id461876025 ]

Ayer estaba instalando una nueva máquina virtual en mi equipo de escritorio con VirtualBox y, no me pregunten porqué puesto que no lo se, pero cometí un error de principiante …

… cuando creé el archivo vdi para el disco duro virtual, olvidé asignar un tamaño personalizado por lo cual terminó con los 20GB que vienen por defecto. Ishhh!

Pronto noté mi error cuando me percaté que precisaría más espacio en dicho disco para instalar todo el conjunto de herramientas que quería usar, así que abrí VirtualBox a efectos de cambiar el tamaño de disco y adivinen qué … no encontré forma en la configuración de hacerlo directamente. Que macana …

Talvez estaba ahí en algún lugar pero no lo encontré así que temiendo lo pero –esto es, reinstalar todo en una nueva imagen desde el principio, busqué en Internet por una solución. Por qué no leer el archivo de ayuda de VirtualBox, cierto?

Bueno, para mi sorpresa encontré todo tipo de soluciones engorrosas como clonar el archivo .vdi y usar un gestor de particiones para blá, blá, blá. Cansado de estos callejones sin salida, finalmente hice lo que debí hacer desde un principio: leí el archivo de ayuda!

Sí; la solución estuvo siempre ahí: VirtualBox incluye una herramienta de línea de comando llamada “VBoxManage” con un conjunto interesante de opciones disponibles y una de ellas es “modifyhd”. Su sintaxis es la siguiente:

VBoxManage modifyhd <uuid><filename>
[—type normal | writethrough | immutable | shareable
readonlymultiattach]
[--autoreset onoff]
[—compact]
[--resize <megabytes>--resizebyte <bytes>]

Una vez abierto la terminal de línea de comandos en el Sistema Operativo anfitrión de nuestro equipo, una manera simple de usar este comando sería, digamos:

VBoxManage modifyhd
“<ruta_completa>/<nombre_de_archivo>”
--resize 30720

Es importante notar que no deberían usar una ruta relativa sino una ruta completa al archivo .vdi par resultados óptimos. Así que, si el archivo .vdi se ubica en “C:/mi_ruta/mi_archivo_vdi.vdi”, usen esta cadena de texto en el comando (en caso de Sistemas Operativos distintos a Windows, usen la ruta desde la raíz).

Si todo sale bien debería ver una nueva línea de texto mostrando el progreso:

0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%

Pero a veces, como en mi caso, las cosas no resultan ser tan simples. Pueden encontrarse frente a un mensaje de error como:

ERROR: Cannot register the hard disk 'C:/mypath/myvdifile.vdi' with UUID {someUUIDtext} because a hard disk 'C:/mypath/myvdifile.vdi' with UUID {someUUIDtext} already exists in the media registry ('…/VirtualBox.xml')
Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenHardDisk(Bstr(szFilenameAbs), AccessMode_ReadWrite, false, Bstr(""), false, Bstr(""), srcDisk.asOutParam())" at line XX of file VBoxManageDisk …

Si esto sucede no entren en pánico; una solución que funcionó para mí fue utilizar el UUID asignado al disco duro virtual, en vez de la ruta completa al archivo, por lo que si el UUID es “{13f2…-…-…342a}” entonces el comando debería lucir como:

VBoxManage modifyhd 13f2…-…-…342a
--resize 30720

Ahora bien, cuando el nuevo tamaño del archivo .vdi sea asignado, todo lo que deben hacer es abrir la máquina virtual, entrar al sistema operativo, y asignar el nuevo espacio libre al disco duro. Si el sistema huésped es Windows, entonces ejecuten la herramienta de gestión provista (pulsen botón derecho sobre el ícono del Equipo y selección “Administrar”), encuentren el disco virtual y extiendan su tamaño.

Bueno, eso es todo. Espero que encuentren estos consejos útiles.

Salud!
~Pete

> Vínculo a la versión en inglés.