Virtualización · 6 min read · Dec 31, 2025

VBoxHeadless - Ejecutando Máquinas Virtuales Con VirtualBox 4.0 En Un Servidor CentOS 5.6 Sin Interfaz Gráfica

VBoxHeadless - Ejecutando Máquinas Virtuales Con VirtualBox 4.0 En Un Servidor CentOS 5.6 Sin Interfaz Gráfica

Versión 1.0
Autor: Falko Timme
Sígueme en Twitter

Esta guía explica cómo puedes ejecutar máquinas virtuales con VirtualBox 4.0 en un servidor CentOS 5.6 sin interfaz gráfica. Normalmente usas la GUI de VirtualBox para gestionar tus máquinas virtuales, pero un servidor no tiene un entorno de escritorio. Afortunadamente, VirtualBox viene con una herramienta llamada VBoxHeadless que te permite conectarte a las máquinas virtuales a través de una conexión de escritorio remoto, por lo que no hay necesidad de la GUI de VirtualBox.

¡No emito ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

He probado esto en un servidor CentOS 5.6 (sistema host) con la dirección IP 192.168.0.100 donde estoy conectado como un usuario normal (nombre de usuario admin en este ejemplo) en lugar de como root.

Si solo tienes una cuenta de root, pero no una cuenta de usuario normal, crea una de la siguiente manera (usuario admin, grupo admin)…

# groupadd admin  
# useradd -d /home/admin -m -g admin -s /bin/bash admin

… crea una contraseña para el nuevo usuario…

# passwd admin

… y conéctate como ese usuario.

2 Instalando VirtualBox

Para instalar VirtualBox 4.0 en nuestro servidor CentOS 5.6, necesitamos privilegios de root, por lo tanto, ejecutamos

$ su

Ahora habilitamos el repositorio RPMforge en nuestro sistema CentOS ya que el paquete dkms ( Dynamic Kernel Module Support Framework - este paquete es necesario para construir el módulo del kernel de VirtualBox) que vamos a instalar no está disponible en los repositorios oficiales de CentOS 5.6:

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# cd /tmp  
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm  
# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm

(Si el enlace anterior ya no funciona, puedes encontrar la versión actual de rpmforge-release aquí: http://packages.sw.be/rpmforge-release/)

Luego instalamos las dependencias para VirtualBox 4.0 de la siguiente manera:

# yum groupinstall 'Development Tools'
# yum groupinstall 'Development Libraries'
# yum install SDL kernel-devel kernel-headers dkms

Con el último comando hemos instalado los encabezados del kernel de nuestro kernel actualmente utilizado. Los encabezados se encuentran en el directorio /usr/src/kernels/, pero es probable que su directorio no esté nombrado -, sino que tenga un nombre diferente, de modo que el módulo del kernel de VirtualBox no pueda ser construido más tarde porque no se puede encontrar el directorio de encabezados del kernel esperado. Vamos a corregir eso ahora:

Verifica tu versión del kernel…

# uname -r
[root@server1 kernels]# uname -r  
2.6.18-238.el5  
[root@server1 kernels]#

… y arquitectura:

# uname -m
[root@server1 2.6.18-238.el5]# uname -m  
x86_64  
[root@server1 2.6.18-238.el5]#

Esto significa que debería haber un directorio llamado 2.6.18-238.el5-x86_64 en el directorio /usr/src/kernels/. Podemos verificar esto ahora:

# cd /usr/src/kernels/  
# ls -l
[root@server1 kernels]# ls -l  
total 4  
drwxr-xr-x 19 root root 4096 May 19 14:26 2.6.18-238.9.1.el5-x86_64  
[root@server1 kernels]#

Como ves, tengo el directorio 2.6.18-238.9.1.el5-x86_64, pero no 2.6.18-238.el5-x86_64. Por lo tanto, creamos un enlace simbólico llamado 2.6.18-238.el5-x86_64 que apunta a 2.6.18-238.9.1.el5-x86_64:

# ln -s 2.6.18-238.9.1.el5-x86_64 `uname -r`-`uname -m`

A continuación, descarga y registra la clave pública rpm de VirtualBox:

# wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc  
# rpm --import oracle_vbox.asc  
# rm -f oracle_vbox.asc

Ahora habilitamos el repositorio de VirtualBox en nuestro sistema:

# cd /etc/yum.repos.d/  
# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Ahora podemos simplemente instalar VirtualBox 4.0 de la siguiente manera:

# yum install VirtualBox-4.0

Si la instalación es exitosa, la salida debería terminar de la siguiente manera:

[...]  
Ejecutando Transacción  
  Instalando     :  VirtualBox-4.0                        1/1  
  
Creando grupo 'vboxusers'. Los usuarios de VM deben ser miembros de ese grupo!  
  
No se encontró ningún módulo precompilado para este kernel -- intentando construir uno. Mensajes  
emitidos durante la compilación del módulo se registrarán en /var/log/vbox-install.log.  
  
Deteniendo módulos del kernel de VirtualBox [  OK  ]  
Desinstalando antiguos módulos del kernel de VirtualBox DKMS [  OK  ]  
Intentando registrar los módulos del kernel de VirtualBox usando DKMS [  OK  ]  
Iniciando módulos del kernel de VirtualBox [  OK  ]  
  
Instalado:  
  VirtualBox-4.0.x86_64 0:4.0.8_71778_rhel5-1  
  
¡Completo!  
[root@server1 kernels]#

(Si la instalación falla porque no se puede encontrar el directorio de encabezados del kernel correcto, la salida terminará de la siguiente manera:

[...]  
Creando grupo 'vboxusers'. Los usuarios de VM deben ser miembros de ese grupo!  
  
No se encontró ningún módulo precompilado para este kernel -- intentando construir uno. Mensajes  
emitidos durante la compilación del módulo se registrarán en /var/log/vbox-install.log.  
  
Deteniendo módulos del kernel de VirtualBox [  OK  ]  
Desinstalando antiguos módulos del kernel de VirtualBox DKMS [  OK  ]  
Intentando registrar los módulos del kernel de VirtualBox usando DKMS  
Error! No se pueden encontrar los encabezados de tu kernel para el kernel 2.6.18-238.el5 en  
/lib/modules/2.6.18-238.el5/build o /lib/modules/2.6.18-238.el5/source.  
  [FALLIDO]  
  (Fallido, intentando sin DKMS)  
Recompilando módulos del kernel de VirtualBox [FALLIDO]  
  (Mira /var/log/vbox-install.log para averiguar qué salió mal)  
  
Instalado:  
  VirtualBox-4.0.x86_64 0:4.0.8_71778_rhel5-1  
  
¡Completo!  
[root@server1 yum.repos.d]#

En este caso, intenta crear el enlace simbólico del kernel correcto (como se mostró antes) y luego ejecuta

# /etc/init.d/vboxdrv setup

para crear el módulo del kernel de VirtualBox.)

Ahora debemos agregar al usuario que ejecutará VirtualBox (admin en este ejemplo) al grupo vboxusers:

# /usr/sbin/usermod -G vboxusers admin

VirtualBox ahora está instalado y listo para ser utilizado.

Escribe

# exit

para salir de la cuenta de root y volver a ser un usuario normal (admin) nuevamente.

3 Usando VirtualBox En La Línea De Comandos

3.1 Creando Una VM

Para crear una VM en la línea de comandos, podemos usar el comando VBoxManage. Consulta

$ VBoxManage --help

para una lista de opciones disponibles y (¡muy recomendado!) echa un vistazo a http://www.virtualbox.org/manual/ch08.html.

Ahora crearé una VM de Ubuntu 11.04 Server con 512MB de memoria y un disco duro de 10GB a partir de la imagen iso de Ubuntu 11.04 Server (que he almacenado en /home/ubuntu-11.04-server-amd64.iso):

$ VBoxManage createvm --name "Ubuntu 11.04 Server" --register  
$ VBoxManage modifyvm "Ubuntu 11.04 Server" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0  
$ VBoxManage createhd --filename Ubuntu_11_04_Server.vdi --size 10000  
$ VBoxManage storagectl "Ubuntu 11.04 Server" --name "IDE Controller" --add ide  
$ VBoxManage storageattach "Ubuntu 11.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_11_04_Server.vdi  
$ VBoxManage storageattach "Ubuntu 11.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-11.04-server-amd64.iso

3.2 Importando Una VM Existente

Supongamos que tienes una VM llamada examplevm que deseas reutilizar en este host. En el antiguo host, deberías tener un directorio Machines/examplevm en el directorio de VirtualBox; Machines/examplevm debería contener el archivo examplevm.xml. Copia el directorio examplevm (incluyendo el archivo examplevm.xml) a tu nuevo directorio Machines (si tu nombre de usuario es admin, este es /home/admin/.VirtualBox/Machines - el resultado debería ser /home/admin/.VirtualBox/Machines/examplevm/examplevm.xml).

Además de eso, copia el archivo examplevm.vdi del antiguo directorio VDI al nuevo (por ejemplo, /home/admin/.VirtualBox/VDI/examplevm.vdi).

Después, debes registrar la VM importada:

$ VBoxManage registervm Machines/examplevm/examplevm.xml

3.3 Iniciando Una VM Con VBoxHeadless

Independientemente de si creas una nueva VM o importas una antigua, puedes iniciarla con el comando:

$ VBoxHeadless --startvm "Ubuntu 11.04 Server"

(Reemplaza Ubuntu 11.04 Server con el nombre de tu VM.)

VBoxHeadless iniciará la VM y un servidor VRDP ( VirtualBox Remote Desktop Protocol) que te permite ver la salida de la VM de forma remota en otra máquina.

Para detener una VM, ejecuta

$ VBoxManage controlvm "Ubuntu 11.04 Server" poweroff

Para pausar una VM, ejecuta

$ VBoxManage controlvm "Ubuntu 11.04 Server" pause

Para reiniciar una VM, ejecuta

$ VBoxManage controlvm "Ubuntu 11.04 Server" reset

Para aprender más sobre VBoxHeadless, echa un vistazo a

$ VBoxHeadless --help

y a http://www.virtualbox.org/manual/ch07.html#vboxheadless.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.