Xen Setup · 5 min read · Feb 09, 2026

La Configuración Perfecta de Xen 3.0.3 Para Debian Sarge - Página 7

5.2 Crear Una Máquina Virtual (domU)

(¡Por favor nota: la creación de imágenes depende de si instalaste Xen desde las fuentes o desde los binarios. Si instalaste Xen desde las fuentes, por favor consulta el capítulo 4.4!)

A continuación, creamos una imagen de una máquina virtual. Será un sistema básico de Debian. Esta imagen será la plantilla para todas nuestras máquinas virtuales. Siempre que queramos crear una nueva máquina virtual, simplemente copiamos esta imagen, creamos un nuevo archivo de configuración de Xen y arrancamos la copia, y luego podemos continuar y configurar la copia según nuestras necesidades (por ejemplo, instalar un servidor de correo, servidor web, servidor DNS, etc. en ella). Todas nuestras imágenes estarán en la partición /vserver que debería ser la más grande que tengamos.

mkdir /vserver/vm_base  
mkdir /vserver/images

Ahora creamos un archivo de imagen de 1 GB y una imagen de swap de 500 MB. Al final, las máquinas virtuales tendrán 1 GB de espacio y 500 MB de swap. Estos son solo valores de ejemplo, en el mundo real podrías querer tener más espacio para tus máquinas virtuales (por ejemplo, entre 5 y 30 GB), así que simplemente aumenta el valor de count para crear imágenes más grandes.

dd if=/dev/zero of=/vserver/images/vm_base.img bs=1024k count=1000  
dd if=/dev/zero of=/vserver/images/vm_base-swap.img bs=1024k count=500

Luego formateamos /vserver/images/vm_base.img con ext3 y vm_base-swap.img con swap:

mkfs.ext3 /vserver/images/vm_base.img

Cuando veas lo siguiente, responde con y:

/vserver/images/mail.img no es un dispositivo especial de bloque.  
¿Proceder de todos modos? (y,n) <-- y
mkswap /vserver/images/vm_base-swap.img

5.2.1 Instalar Un Debian Básico En La Imagen

Para instalar un sistema básico de Debian en nuestra imagen, montamos la imagen, ejecutamos debootstrap y algunos otros comandos:

mount -o loop /vserver/images/vm_base.img /vserver/vm_base  
debootstrap --arch i386 sarge /vserver/vm_base/ http://ftp2.de.debian.org/debian
chroot /vserver/vm_base  
apt-setup

Se te hará la siguiente pregunta:

Método de acceso al archivo para apt: <– http

Luego selecciona un espejo cercano a ti.

Después, edita /etc/apt/sources.list y reemplaza testing con stable. Así es como se ve mi /etc/apt/sources.list:

vi /etc/apt/sources.list

| deb http://ftp2.de.debian.org/debian/ stable main deb-src http://ftp2.de.debian.org/debian/ stable main deb http://security.debian.org/ stable/updates main |

Luego ejecuta

apt-get update

Ahora configuramos nuestras locales. Si no hacemos esto ahora, veremos algunas advertencias feas durante la configuración base como estas:

| perl: advertencia: La configuración de la locale falló. perl: advertencia: Por favor verifica que tu configuración de locale: LANGUAGE = "en_DE:en_US:en_GB:en", LC_ALL = (no establecido), LANG = "en_US" son soportadas e instaladas en tu sistema. perl: advertencia: Volviendo a la locale estándar ("C"). locale: No se puede establecer LC_CTYPE a la locale predeterminada: No existe tal archivo o directorio locale: No se puede establecer LC_MESSAGES a la locale predeterminada: No existe tal archivo o directorio locale: No se puede establecer LC_ALL a la locale predeterminada: No existe tal archivo o directorio |

No son graves, pero son feas… Así que ejecutamos

apt-get install localeconf

Se te harán algunas preguntas:

Seleccionar locales a generar. <– en_US ISO-8859-1
¿Qué locale debería ser la predeterminada en el entorno del sistema? <– en_US
¿Gestionar archivos de configuración de locale con debconf? <– Sí
Configuraciones de entorno que deberían anular la locale predeterminada: <– no seleccionar nada
¿Reemplazar archivos de configuración de locale existentes? <– Sí
Locale predeterminada del sistema: <– por ejemplo, en_US ISO-8859-1

A continuación ejecuta

base-config

Verás un menú con opciones de instalación. Esto es lo que hacemos:

  1. Configurar zona horaria
  2. Configurar usuarios y contraseñas
  3. Seleccionar e instalar paquetes (cuando se trata de Elegir software para instalar:, puedes elegir lo que quieras; sin embargo, yo elijo nada porque quiero instalar un sistema básico.)
  4. Terminar de configurar el sistema base

No te ocupes de los otros elementos del menú, no los necesitas. Luego eliminamos nfs-common y borramos /etc/hostname:

apt-get remove nfs-common

Luego edita /etc/fstab. Debería verse así:

vi /etc/fstab

| /dev/hda1 / ext3 defaults 1 2 /dev/hda2 none swap sw 0 0 /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 |

Luego crea /etc/hosts:

vi /etc/hosts

| 127.0.0.1 localhost.localdomain localhost # Las siguientes líneas son deseables para hosts capaces de IPv6 ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts |

Luego haz esto:

mkdir /lib/modules/2.6.16.29-xen  
depmod 2.6.16.29-xen

A continuación editamos los scripts /etc/init.d/hwclock.sh y /etc/init.d/hwclockfirst.sh y añadimos la línea exit 0 justo al principio porque de lo contrario estos dos scripts realmente ralentizarán el arranque de nuestras máquinas virtuales:

vi /etc/init.d/hwclock.sh

| #!/bin/sh # hwclock.sh Establecer y ajustar el reloj CMOS, de acuerdo con la UTC # configuración en /etc/default/rcS (ver también rcS(5)). # # Versión: @(#)hwclock.sh 2.00 14-Dic-1998 [email protected] # # Parche: # 2000-01-30 Henrique M. Holschuh <[email protected]> # - Cambios cosméticos menores en un intento de ayudar a nuevos # usuarios a notar que algo ESTÁ cambiando sus relojes # durante el inicio/apagado. # - Comentarios añadidos para alertar a los usuarios sobre problemas de hwclock # y desincentivar la manipulación sin la lectura adecuada de documentos. # ADVERTENCIA: Por favor lee /usr/share/doc/util-linux/README.Debian.hwclock # antes de cambiar este archivo. Riesgas un comportamiento serio del reloj # de lo contrario. exit 0 [...] |

vi /etc/init.d/hwclockfirst.sh

| #!/bin/bash # hwclockfirst.sh Establecer el reloj del sistema al reloj de hardware, de acuerdo con la UTC # configuración en /etc/default/rcS (ver también rcS(5)). # # # ADVERTENCIA: Se ejecuta sin permiso de escritura en /etc, y antes # de montar todos los sistemas de archivos! Si necesitas permiso de escritura # para hacer algo, hazlo en hwclock.sh. # # ADVERTENCIA: Si tu reloj de hardware no está en UTC/GMT, este script # debe conocer la zona horaria local. Esta información está # almacenada en /etc/localtime. Esto podría ser un problema si # tu /etc/localtime es un enlace simbólico a algo en # /usr/share/zoneinfo Y /usr no está en la partición raíz! # La solución es definir TZ ya sea # en /etc/default/rcS, o en el lugar adecuado a continuación. # # ¡RECUERDA EDITAR hwclock.sh TAMBIÉN! # Establece esto a cualquier opción que puedas necesitar dar a hwclock, tales # como el tipo de reloj de hardware de la máquina para Alphas. exit 0 HWCLOCKPARS= [...] |

Ahora salimos del entorno chroot:

exit

Luego desmontamos la imagen:

mv /vserver/vm_base/lib/tls /vserver/vm_base/lib/tls.disabled  
fuser -k /vserver/vm_base  
umount /vserver/vm_base

¡Ahora nuestra plantilla de imagen de máquina virtual está lista!

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

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