Xen Installation · 7 min read · Oct 08, 2025

Instalando Xen en un servidor Ubuntu 8.04 (Hardy Heron) desde los repositorios de Ubuntu

Instalando Xen en un servidor Ubuntu 8.04 (Hardy Heron) desde los repositorios de Ubuntu

Versión 1.0
Autor: Falko Timme

Este tutorial proporciona instrucciones paso a paso sobre cómo instalar Xen en un sistema de servidor Ubuntu Hardy Heron (Ubuntu 8.04) (i386). Puedes encontrar todo el software utilizado aquí en los repositorios de Ubuntu, por lo que no se necesitan archivos externos (aparte de un núcleo de Ubuntu Xen fijo para habilitar la red para las máquinas virtuales) ni compilación.

Xen te permite crear sistemas operativos invitados (sistemas operativos *nix como Linux y FreeBSD), llamadas “máquinas virtuales” o domUs, bajo un sistema operativo anfitrión (dom0). Usando Xen, puedes separar tus aplicaciones en diferentes máquinas virtuales que son totalmente independientes entre sí (por ejemplo, una máquina virtual para un servidor de correo, una máquina virtual para un sitio web de alto tráfico, otra máquina virtual que sirve los sitios web de tus clientes, una máquina virtual para DNS, etc.), pero aún así usar el mismo hardware. Esto ahorra dinero, y lo que es aún más importante, es más seguro. Si la máquina virtual de tu servidor DNS es hackeada, no tiene efecto en tus otras máquinas virtuales. Además, puedes mover máquinas virtuales de un servidor Xen a otro.

Usaré Ubuntu Hardy Heron (i386) para el sistema operativo anfitrión (dom0) y Ubuntu Hardy Heron y Ubuntu Gutsy Gibbon (7.10) para los sistemas operativos invitados (domU). Otras distribuciones basadas en Debian que se pueden instalar usando xen-tools son Debian Etch, Debian Lenny, Debian Sid y Debian Sarge, así como Ubuntu Dapper Drake, Ubuntu Edgy Eft y Ubuntu Feisty Fawn.

Este howto está destinado como una guía práctica; no cubre los antecedentes teóricos. Estos se tratan en muchos otros documentos en la web.

¡Este documento viene sin garantía de ningún tipo! Quiero decir que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero este es el camino que tomo. No emito ninguna garantía de que esto funcione para ti!

1 Instalar el sistema anfitrión Ubuntu Hardy Heron (dom0)

Puedes instalar el sistema anfitrión (dom0) como se muestra en los capítulos uno a diez de este tutorial: https://www.howtoforge.com/perfect-server-ubuntu8.04-lts (por supuesto, no tienes que hacer esto si ya tienes un sistema anfitrión Ubuntu 8.04 que deseas usar).

Asegúrate de que estás conectado como root (escribe

sudo su

para convertirte en root), porque debemos ejecutar todos los pasos de este tutorial como usuario root. Además, si deseas usar vi como tu editor de texto (como sugiere este tutorial), debes ejecutar

apt-get install vim-full

El paquete vim-full asegura que el editor de texto vi se comporte como se espera (sin vim-full, podrías experimentar un comportamiento extraño en el editor de texto vi).

Es una buena idea deshabilitar AppArmor:

/etc/init.d/apparmor stop  
update-rc.d -f apparmor remove

El FQDN de dom0 en este ejemplo será server1.example.com. La dirección IP de server1.example.com será 192.168.0.100 en este tutorial, y la puerta de enlace que uso es 192.168.0.1, así que las máquinas virtuales también tendrán que usar esa.

2 Instalar Xen

Para instalar Xen y todas las dependencias necesarias, todo lo que tenemos que hacer es ejecutar el siguiente comando:

apt-get install ubuntu-xen-server

Esto también instalará el paquete xen-tools que utilizaremos más adelante para crear máquinas virtuales.

El paquete ubuntu-xen-server instala el núcleo de Ubuntu 2.6.24-16-xen; desafortunadamente, hay un error desagradable en este núcleo que causa que la red no funcione para las máquinas virtuales (ver https://bugs.launchpad.net/ubuntu/+source/xen-3.2/+bug/204010 y https://bugs.launchpad.net/ubuntu/+source/linux/+bug/218126). Afortunadamente, Hirano Takahito ha parcheado este núcleo y ha hecho que las versiones parcheadas (para i386 y amd64) estén disponibles en http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/ (he creado un espejo de estos paquetes en http://downloads.howtoforge.com/ubuntu_8.04_server_xen_from_repositories/ en caso de que el enlace original deje de funcionar algún día). Descarga el paquete linux-image correcto para tu arquitectura (i386 o amd64), por ejemplo:

wget http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb

Luego reemplaza el núcleo Ubuntu 2.6.24-16-xen con él así:

dpkg -i linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb

A continuación, haz esto:

mv /lib/tls /lib/tls.disabled

También necesitamos agregar el módulo loop al núcleo cada vez que iniciamos nuestro sistema, así que editamos /etc/modules. Si ya tienes una línea loop allí, haz que se vea así, de lo contrario, agrégala:

vi /etc/modules

| [...] loop max_loop=64 [...] |

Ahora echa un vistazo al directorio /boot para ver qué núcleos y ramdisks están instalados:

ls -l /boot/
root@server1:~# ls -l /boot/  
total 34380  
-rw-r--r-- 1 root root  426444 2008-04-10 18:55 abi-2.6.24-16-server  
-rw-r--r-- 1 root root   80203 2008-04-10 18:55 config-2.6.24-16-server  
-rw-r--r-- 1 root root   85149 2008-04-19 23:17 config-2.6.24-16-xen  
drwxr-xr-x 2 root root    4096 2008-05-06 15:19 grub  
-rw-r--r-- 1 root root 7323503 2008-04-24 11:47 initrd.img-2.6.24-16-server  
-rw-r--r-- 1 root root 7047843 2008-04-24 11:45 initrd.img-2.6.24-16-server.bak  
-rw-r--r-- 1 root root 7056979 2008-05-06 15:19 initrd.img-2.6.24-16-xen  
-rw-r--r-- 1 root root 7062168 2008-05-06 15:09 initrd.img-2.6.24-16-xen.bak  
-rw-r--r-- 1 root root  103204 2007-09-28 12:06 memtest86+.bin  
-rw-r--r-- 1 root root  933296 2008-04-10 18:55 System.map-2.6.24-16-server  
-rw-r--r-- 1 root root  883544 2008-04-19 23:17 System.map-2.6.24-16-xen  
-rw-r--r-- 1 root root 1987288 2008-04-10 18:55 vmlinuz-2.6.24-16-server  
-rw-r--r-- 1 root root 1730344 2008-04-19 23:17 vmlinuz-2.6.24-16-xen  
-rw-r--r-- 1 root root  370610 2008-04-11 03:16 xen-3.2.gz  
root@server1:~#

El núcleo /boot/vmlinuz-2.6.24-16-xen es el nuevo núcleo Xen parcheado, y /boot/initrd.img-2.6.24-16-xen es su ramdisk. Necesitaremos estos pronto.

Ahora también puedes echar un vistazo al directorio /usr/lib/xen-tools porque revela qué distribuciones se pueden instalar en una máquina virtual con xen-tools:

ls -l /usr/lib/xen-tools
root@server1:~# ls -l /usr/lib/xen-tools  
total 36  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-4.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-5.d  
-rwxr-xr-x 1 root root 4409 2008-04-06 03:12 common.sh  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 dapper.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 debian.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 edgy.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 etch.d -> debian.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-4.d -> fedora-core-6.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-5.d -> fedora-core-6.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 fedora-core-6.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-7.d -> fedora-core-6.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 feisty.d -> edgy.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 gentoo.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 gutsy.d -> edgy.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 hardy.d -> edgy.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 lenny.d -> debian.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 sarge.d -> debian.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 sid.d -> debian.d  
root@server1:~#

Como ves, podemos instalar las siguientes distribuciones:

  • Debian: Etch, Lenny (testing), Sid (inestable), Sarge
  • Ubuntu: Dapper Drake, Edgy Eft, Feisty Fawn, Gutsy Gibbon, Hardy Heron
  • CentOS 4, CentOS 5
  • Fedora Core 4, 5, 6, Fedora 7
  • Gentoo

(No he intentado instalar CentOS, Fedora y Gentoo con xen-tools aún, así que no puedo decir qué tan bien funciona.)

Quiero almacenar mis máquinas virtuales en el directorio /home/xen, por lo tanto, lo creo ahora:

mkdir /home/xen

Usaremos xen-tools para crear máquinas virtuales. xen-tools facilita mucho la creación de máquinas virtuales - por favor, lee este tutorial para aprender más: https://www.howtoforge.com/xen_tools_xen_shell_argo. Como se mencionó antes, el paquete xen-tools se instaló junto con el paquete ubuntu-xen-server.

Ahora editamos /etc/xen-tools/xen-tools.conf. Este archivo contiene los valores predeterminados que se utilizan por el script xen-create-image a menos que especifiques otros valores en la línea de comandos. Cambié los siguientes valores y dejé el resto sin tocar:

vi /etc/xen-tools/xen-tools.conf

| [...] dir = /home/xen [...] dist = hardy # Distribución predeterminada a instalar. [...] gateway = 192.168.0.1 netmask = 255.255.255.0 broadcast = 192.168.0.255 [...] passwd = 1 [...] mirror = http://archive.ubuntu.com/ubuntu/ [...] |

La línea dist contiene la distribución predeterminada que deseas instalar en una máquina virtual. El contenido del directorio /usr/lib/xen-tools revela qué distribuciones están disponibles (ver arriba).

La línea kernel debe contener nuestro núcleo Xen, y la línea initrd su ramdisk. El archivo predeterminado /etc/xen-tools/xen-tools.conf tiene los valores kernel = /boot/vmlinuz-uname -r e initrd = /boot/initrd.img-uname -r que se traducen automáticamente al núcleo y ramdisk correctos, por lo que no tenemos que modificar estas líneas.

La línea passwd = 1 hace que puedas especificar una contraseña de root cuando creas un nuevo dominio invitado. En la línea mirror especifica un espejo de Ubuntu cercano a ti.

Asegúrate de especificar una puerta de enlace y una máscara de red. Si no lo haces, y no especificas una puerta de enlace y una máscara de red en la línea de comandos al usar xen-create-image, tus dominios invitados no tendrán red incluso si especificaste una dirección IP.

Ahora reinicia el sistema:

reboot

Si tu sistema se reinicia sin problemas, ¡entonces todo está bien!

Ejecuta

uname -r

y tu nuevo núcleo Xen debería aparecer:

root@server1:~# uname -r  
2.6.24-16-xen  
root@server1:~#
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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