Instalar Windows en una VM Xen

A veces puede ser necesario disponer de una máquina Windows para realizar pruebas, como por ejemplo probar algún desarrollo web en distintos entornos, o porque nos es imprescindible ya que tenemos que usar algún software que no dispone de equivalente en GNU/Linux (como algún software propietario de gestión de algunas centralitas que cuestan varios miles de Euros). En este artículo veremos que instalar Windows en una máquina virtual en Xen no es nada complicado.

Configuración del servidor dom0
Lo primero que tenemos que tener es una máquina con el hipervisor Xen ya ejecutándose. No entraré en detalles sobre cómo hacerlo, porque existen varios tutoriales en Internet que lo explican. Una cosa que sí deberemos tener en cuenta es que el procesador de esa máquina debe disponer de tecnología de virtualización (Intel VT o AMD Pacífica). Podemos comprobarlo ejecutando:

# xm info | grep xen_caps
xen_caps : xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64

Si como en este caso, os salen opciones que empiezan por hvm significará que sí disponéis de este soporte. Si por el contrario obtenéis la siguiente salida:

# xm info | grep xen_caps
xen_caps : xen-3.0-x86_64

lo siento, pero no podréis instalar Windows bajo Xen, al menos en esta máquina.

Una vez hemos comprobado que nuestro procesador cumple los requisitos, instalaremos algunos programas extra para poder aprovecharlo. En el caso de Debian, esto es tan sencillo como ejecutar:

# apt-get install xen-ioemu-3.0.3-1

Configuración de la VM domU
Ahora que nuestro servidor dispone de todo lo necesario, procederemos a la instalación de la máquina virtual propiamente dicha. En primer lugar deberemos disponer de una imagen del CD-ROM de instalación de Windows (no he probado todavía a instalar directamente desde la unidad) con su correspondiente licencia de uso. Para crearla bastará con ejecutar:

# dd if=/dev/cdrom of=windows.iso

El siguiente paso será crear la partición necesaria para instalar el sistema. Como utilizo LVM en esa máquina, crear la partición es tan fácil como ejecutar el siguiente comando:

# lvcreate -L 8G -n windows-disk vg00

con lo que habré creado un volumen lógico llamado windows-disk de 8 Gb en el grupo de volúmenes vg00.

Por último, queda definir el archivo de configuración de la máquina virtual. En mi caso es el archivo /etc/xen/windows.cfg y éste es su contenido:

#
# Configuration file for the Xen instance windows, created on
# Tue Feb 12 13:15:39 2008.
#
#
# Kernel + memory size
#
kernel = '/usr/lib/xen-default/boot/hvmloader'
builder = 'hvm'
memory = '512'
#
# Disk device(s).
#
disk = [ 'phy:/dev/vg00/windows-disk,ioemu:hda,w', 'file:/root/windows.iso,hdc:cdrom,r' ]
#
# Hostname
#
name = 'windows'
#
# Networking
#
dhcp = 'dhcp'
vif = [ 'type=ioemu, mac=00:16:3e:74:74:a5' ]
#
# Behaviour
#
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
# New stuff
device_model = 'qemu-dm'
boot = 'd'
ne2000 = 1
acpi = 1
sdl = 0
vnc = 1
vncviewer = 0
nographic = 0

Resumiendo, se define la memoria y los discos que se usarán, nombre que le damos al domU, la definición de red, qué hacer cuando se apague o reinicie, y por último algunos parámetros necesarios, como que arranque desde la unidad d, el tipo de emulación de tarjeta de red, que active ACPI, y que permitamos la conexión mediante VNC al domU. De este modo, cuando arranquemos el domU, podremos conectarnos mediante VNC para completar la instalación.

Una cosa a tener en cuenta al respecto, es permitir las conexiones VNC desde otras máquinas que no sean localhost. Para ello deberemos editar el archivo /etc/xen/xend-config.sxp y cambiar la línea

(vnc-listen '127.0.0.1')

por

(vnc-listen '0.0.0.0')

Para que el cambio tenga efecto, deberemos reiniciar el hipervisor:

# /etc/init.d/xend restart

Debemos tener cuidado al habilitar el acceso VNC ya que no está protegido por contraseña, y cualquiera con acceso al servidor podría conectar.

Instalación del S.O.
El primer paso será arrancar la nueva máquina virtual:

# xm create windows.cfg

Ya desde nuestra máquina de trabajo, podremos conectarnos mediante VNC al servidor domU y continuar con la instalación de Windows. Por ejemplo, si nuestro servidor se llama xensrv y tenemos la aplicación vncviewer, podremos conectar mediante el comando siguiente:

vncviewer xensrv

A partir de aquí se continúa con el proceso normal de instalación de Windows como si lo estuviéramos instalando en nuestra máquina local. Una vez finalizada la instalación, podremos seguir conectando mediante VNC y habilitar la conexión remota mediante RDP y asegurarnos de que el usuario que vayamos a utilizar dispone de permisos para conectar remotamente.

Consideraciones finales
Una vez que ya tengamos activada la conexión remota mediante RDP, podemos cambiar las líneas del archivo de configuración:

vnc = 1
nographic = 0

por:

vnc = 0
nographic = 1

y volver a prohibir las conexiones VNC remotas, revertiendo el cambio en el archivo /etc/xen/xend-config.sxp y volviendo a reiniciar el hipervisor.

Anuncios

12 pensamientos en “Instalar Windows en una VM Xen

  1. ¿Has probado a instalar linux sobre hvm?, yo lo he instalado usando un “mini.iso” que suele haber en los repositorios Debian. El problema que tengo es que no puedo sacar una consola con “xm console “.

  2. Todo correcto hasta el punto en que intento conectar por VNC desde mi máquina al servidor para poder continuar con el proceso de la instalación de Windows, ya que con el vncviewer aparentemente se conecta pero sale toda la pantalla en negro y no se visualiza nada de nada.

    ¿alguna idea?

    He probado de cambiar varios parámetros del archivo .cfg y nada 😦

    gracias

  3. Me funciona todo, salvo la instalacion de Windows, al iniciar cunado sale lo de “Pulse F6” a los 2 segundos se reinicia.

    Ya no se que hacer, ¿A alguien le ha dado el mismo problema?

  4. A veces no funciona bien la detección de hardware y se reinicia el arranque. Puedes probar a cambiar

    acpi = 1

    por

    acpi = 0

    en el archivo de configuración de la máquina virtual.

  5. No sé por qué te da ese error de memoria, pero probaría un par de cosas que a mí me han pasado alguna vez:

    1.- que tienes memoria suficiente para ejecutar esa máquina virtual: la suma de todas las máquinas virtuales domU más la memoria que usa el servidor dom0 no puede superar la RAM instalada (no vale swap).

    2.- si has actualizado el kernel del dom0, reinicia el servidor para que los módulos coincidan con la versión del kernel en ejecución.

  6. Hola… muy buen tuto… io probe con .hvm pero me da el sgte error

    Error: Device 768 (vbd) could not be connected. Hotplug scripts not working.

    saben lo que pueda ser?… adios y gracias..

  7. Hola, al instalar cuando intento conectar al vnc me indica:

    tesla:/etc/xen# xm create winxp.cfg
    Using config file “winxp.cfg”.
    VNC= 1
    Started domain winxp
    tesla:/etc/xen# vncviewer winxp
    Error: Can’t open display:

    ¿Alguna idea o consejo?

  8. Veo que estás como root y en la máquina dom0. Lo primero probaría a ver si el siguiente comando te muestra algo:

    echo $DISPLAY

    Si no te muestra nada, es que no tienes accesible el entorno gráfico del usuario normal como root.

    Te recomendaría un par de cosas:
    1. No utilices el usuario root más que para lo imprescindible. ¿Estás en un entorno gráfico como root? No es muy recomendable, así que vuelve al usuario normal e intenta conectar de nuevo usando ese usuario, con el que debes haber iniciado la sesión gráfica.

    2. No es recomendable usar el servidor dom0 para nada más que para albergar las máquinas virtuales, así que no deberías tener ahí instalado el sistema gráfico X. Prueba a conectar mediante VNC desde tu estación de trabajo. Como pone en el artículo, no debes intentar conectar con la máquina virtual que has ejecutado, sino contra el servidor dom0, en tu caso tesla.

    A ver si te funciona alguna de estas cosas.

    • Hola, la verdad te felicito por el blog, estuve siguiendo los pasos q detallaste anteriormente, pero me es imposible conectarme por vnc al domU para instalar W2003… cuales son los pasos para configurar el servidor de vnc y desde el cliente como accedo? Gracias!

      Abrazo!

      Leo.-

  9. Wow…. qué viejo tutorial, pero que bien anda! En un xen sobre debian Lenny instalé un windows server 2008 sin problemas.
    Gracias!

  10. no he podido hacer q corra la vm me da el siguiente error:

    root@xenserver2:/opt# xm create /etc/xen/windows2.cfg
    Using config file “/etc/xen/windows2.cfg”.
    Error: Domain ‘windows’ does not exist.
    y he hecho todo tal cual.. 😦 help me please!!!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s