Cómo correr guests de 64 bit en VirtualBox

Valoración del Usuario:  / 2
MaloBueno 

Hoy tuve la necesidad de importar un guest corriendo en un host VMware ESXi a una máquina virtual VirtualBox en una workstation con Windows 7. El guest en cuestión se trataba de un servidor Debian 7 de 64 bit.

El host Windows 7 era la versión Home Premium de 64 bit, por lo que imaginé no habría problemas al intentar ejecutar una máquina virtual corriendo un sistema operativo guest de 64 bit. Instalé la última versión de VirtualBox, copié el disco VMDK (con la máquina virtual original apagada) desde el host corriendo VMware ESXi, y procedí a crear la máquina virtual.



En el paso donde se especifica el disco virtual para la nueva máquina virtual seleccioné la opción "Use an existing virtual hard drive file" e indiqué la ruta al archivo .vmdk.

Hasta allí todo bien: host de 64 bit, guest de 64 bit, hardware virtual totalmente diferente (VMware ESXi vs. VirtualBox) aunque supuse que Debian 7 iba a manejar el cambio de forma elegante. Pero al iniciar el kernel guest Linux, luego de cargar GRUB exitosamente, me topé con el error "This kernel requires an x86-64 CPU, but only detected an i686 CPU":

Loading /live/vmlinuz.....
Loading /live/initrd.img................ready.
This kernel requires an x86-64 CPU, but only detected an i686 CPU.
Unable to boot - please use a kernel appropriate for your CPU.

Si el host es de 64 bit ¿cómo puede ser que VirtualBox presente un procesador virtual de 32 bit (i686)? ¿Descargué el instalador de VirtualBox de 32 bit para Windows? No, porque existe un único instalador. Además, el binario de VirtualBox de 32 bit (i386) permite emular arquitecturas de 64 bits de todas formas. El problema radica en que el host no tiene habilitadas las características de soporte para virtualización a nivel CPU (VT-x en procesadores Intel y AMD-V en procesadores AMD). Para que VirtualBox permita emular arquitecturas de 64 bits es necesario habilitar el soporte para virtualización a nivel CPU, inclusive si el host es de 64 bit.

Para resolver este problema es necesario reiniciar el host, habilitar VT-x (si se trata de un procesador Intel) o AMD-V (si se trata de un procesador AMD) desde el BIOS del host, y luego borrar la máquina virtual. Por supuesto no se debe borrar el disco virtual, sólo la definición de la máquina virtual. Se debe hacer esto porque VirtualBox no permite modificar el tipo de sistema operativo una vez creada la máquina virtual.

Al definir nuevamente la máquina virtual, en el momento de seleccionar el tipo de sistema operativo, se observa que aparecen disponibles las versiones de 64 bit (que antes no).

La historia termina en que Debian 7 inicia perfectamente en VirtualBox utilizando un disco VMDK copiado de un host ESXi, detecta todo el nuevo hardware (virtual) de forma transparente y la migración es un éxito.



Suscribirse

    Registrate para recibir las novedades y artículos por correo electrónico.

Linuxito en G+