Virtualización · 5 min read · Dec 01, 2025

VBoxHeadless - Ejecutando Máquinas Virtuales Con VirtualBox 4.1 En Un Servidor Fedora 17 Sin Interfaz Gráfica

VBoxHeadless - Ejecutando Máquinas Virtuales Con VirtualBox 4.1 En Un Servidor Fedora 17 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.1 en un servidor Fedora 17 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 doy ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

He probado esto en un servidor Fedora 17 (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.1 en nuestro servidor Fedora 17, necesitamos privilegios de root, por lo tanto, ejecutamos

$ su

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

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

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 Fedora en nuestro sistema:

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

Ahora simplemente podemos instalar VirtualBox 4.1 de la siguiente manera:

# yum install VirtualBox-4.1

A partir de la versión 4.0, VirtualBox ha introducido los llamados “paquetes de extensión” y ha externalizado algunas funcionalidades como el soporte de conexión de escritorio remoto (VRDP) que formaba parte de los paquetes de VirtualBox antes de la versión 4.0 en estos paquetes de extensión. Debido a que necesitamos conexiones de escritorio remoto para controlar nuestras máquinas virtuales, necesitamos instalar el paquete de extensión apropiado ahora. Ve a http://www.virtualbox.org/wiki/Downloads, y encontrarás un enlace al siguiente paquete de extensión:

VirtualBox 4.1.18 Oracle VM VirtualBox Extension Pack  
Soporte para dispositivos USB 2.0, VirtualBox RDP y arranque PXE para tarjetas Intel.

Descarga e instala el paquete de extensión de la siguiente manera:

# cd /tmp  
# wget http://download.virtualbox.org/virtualbox/4.1.18/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack  
# VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack

(Asegúrate de obtener la última versión del sitio web 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 convertirte en 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.

Antes de crear una máquina virtual, necesitamos averiguar cómo se llama el dispositivo de red principal en Fedora:

$ ifconfig
[admin@server1 ~]$ ifconfig  
lo: flags=73  mtu 16436  
        inet 127.0.0.1  netmask 255.0.0.0  
        inet6 ::1 prefixlen 128 scopeid 0x10  
        loop  txqueuelen 0  (Local Loopback)  
        RX packets 0 bytes 0 (0.0 B)  
        RX errors 0 dropped 0 overruns 0 frame 0  
        TX packets 0 bytes 0 (0.0 B)  
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0  
  
p3p1: flags=4163  mtu 1500  
        inet 192.168.0.100  netmask 255.255.255.0  broadcast 192.168.0.255  
        inet6 fe80::20c:29ff:fe58:4256 prefixlen 64 scopeid 0x20  
        ether 00:0c:29:58:42:56 txqueuelen 1000  (Ethernet)  
        RX packets 1133921 bytes 963213128 (918.5 MiB)  
        RX errors 0 dropped 6 overruns 0 frame 0  
        TX packets 478361 bytes 28634802 (27.3 MiB)  
        TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0  
  
[admin@server1 ~]$

Como puedes ver, se llama p3p1 en este caso - por favor ten esto en cuenta.

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

$ VBoxManage createvm --name "Ubuntu 12.04 Server" --register

En el siguiente comando debemos especificar la interfaz de red correcta (p3p1 en mi caso):

$ VBoxManage modifyvm "Ubuntu 12.04 Server" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 p3p1
$ VBoxManage createhd --filename Ubuntu_12_04_Server.vdi --size 10000  
$ VBoxManage storagectl "Ubuntu 12.04 Server" --name "IDE Controller" --add ide  
$ VBoxManage storageattach "Ubuntu 12.04 Server" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium Ubuntu_12_04_Server.vdi  
$ VBoxManage storageattach "Ubuntu 12.04 Server" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/ubuntu-12.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, esto 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 12.04 Server"

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

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

Para detener una VM, ejecuta

$ VBoxManage controlvm "Ubuntu 12.04 Server" poweroff

Para pausar una VM, ejecuta

$ VBoxManage controlvm "Ubuntu 12.04 Server" pause

Para reiniciar una VM, ejecuta

$ VBoxManage controlvm "Ubuntu 12.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.