Cómo instalar un servidor PXE (arranque por red)

pxe boot

En los primeros tiempos de la vida de Linux la instalación se realizaba desde diskettes y con ello bastaba, luego pasamos a los CD y más tarde a los DVD y medios externos como pendrives, pero hay una forma muy interesante de instalación del gran sistema operativo libre y es a través de la red, aprovechando las muy buenas velocidades que en promedio hoy tenemos disponibles (al menos en las ciudades claro está).

Pero antes de comenzar necesitamos preparar algunas cosas, por ello en este post vamos a mostrar cómo instalar un servidor PXE en Ubuntu. Para quienes no estén demasiado en conocimiento de esto, decir que las siglas se refieren a un servidor de preboot execution environment -o en español ‘entorno de ejecución previo al inicio’- y lo que nos permite es iniciar un ordenador en forma remota a través de una interfaz de red.

Para esto, lo que hacemos es copiar la imagen ISO de instalación en el servidor PXE, pero para que ello funcione necesitaremos montar el servidor, que es lo que vamos a mostrar en este tutorial. Y partiremos de la base de que nuestro equipo tiene una dirección IP fija que es 192.168.1.100 y un hostname servidorpxe.com, pero además de esto vamos a necesitar un servidor DHCP en nuestro Ubuntu así que nos ponemos manos a la obra.

# apt-get update

#apt-get install isc-dhcp-server

Luego abrimos para edición el archivo del servidor:

nano /etc/default/isc-dhcp-server

Y añadimos la interfaz de red de nuestro equipo para que sea la que recibe las conexiones:

[…]

INTERFACES=”eth0″

Ahora hacemos lo propio con el archivo de configuración:

# nano /etc/dhcp/dhcpd/conf

[…]

option domain-name “servidorpxe.com”;

option domain-name-servers “server1.servidorpxe.com”;

subnet 192.168.1.100 netmask 255.255.255.0 {

range 192.168.1.10 192.168.1.30;

option routers 192.168.1.1;

option broadcast-address 192.168.1.255;

}

default-lease-time 600;

max-lease-time 7200

 

[…]

authoritative;

[…]

Una vez que finalizamos, tenemos que reiniciar el servicio DHCP:

service isc-dhcp-server restart

Ahora vamos a instalar el servidor PXE propiamente dicho, y luego abrimos para edición su archivo:

# apt-get install apache2 tftpd-hpa inetutils-inetd

# nano /etc/default/tftpd-hpa

Agregamos la opción que nos permite iniciar el demonio:

[…]

RUN_DAEMON=”yes”

OPTIONS=”-l -s /var/lib/tftpboot”

Guardamos y abrimos para edición el archivo de configuración del demonio inetd:

# nano /etc/inetd.conf

Añadimos lo siguiente:

[…]

tftp    dgram    udp    wait    root    /usr/sbin/in.tftpd /user/sbin/in.tftpd -s /var/lib/fttpboot

Guardamos, y ahora toca reiniciar el servicio:

service tftpd-hpa restart

Para finalizar la configuración de servicios, tenemos que hacer lo propio con el servidor PXE:

# nano /etc/dhcp/dhcp.conf

Añadimos lo siguiente, al final del archivo:

[…]

allow booting;

allow bootp;

option option-128 code 128 = string;

option option-129 code 129 = text;

next-server 192.168.1.100;

filename “pxelinux.0”;

Guardamos y reiniciamos el servicio:

# service isc-dhcp-server restart

Ya falta menos, y ahora tenemos que configurar las carpetas en las cuales vamos a montar las ISO a las cuales van a acceder los demás equipos.

# mount /dev/sr0 /mnt

cp -avr /mnt/install/netboot/* /var/lib/tftpboot/

mkdir -p /var/www/html/ubuntu14.10

cp -avr /mnt/* /var/www/html/ubuntu14.10/

Luego editamos el archivo de configuración pxelinux.cfg/default:

nano /var/lib/tftpboot/pxelinux.cfg/default

Añadimos:

[…]
label linux
kernel ubuntu-installer/amd64/linux
append ks=http://192.168.1.100/ks.cfg vga=normal initrd=ubuntu-installer/amd64/initrd.gz
ramdisk_size=16432 root=/dev/rd/0 rw —

Por último, añadimos compatibilidad con PXE al servidor DHCP:

nano /etc/dhcp/dhcpd.conf

Añadimos:

[…]
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 192.168.1.100;
filename “pxelinux.0”;

Eso es todo, ahora simplemente debemos configurar los otros equipos desde su BIOS para que puedan iniciarse desde la red, y al hacerlo solicitarán a nuestro servidor PXE la configuración y ya podremos comenzar con la instalación.


Categorías

Ubuntu

Willy Klew

Ingeniero en Informática, soy un fanático de Linux, Android, la programación, redes y todo lo que tenga que ver con las nuevas tecnologías. Ex atleta, y usuario de Linux desde 1997. Ah, y un total enfermo del fútbol (sin ganas de curarse).

5 comentarios

  1.   Erick dijo

    Ejemplo: y si yo quisiera que en vez de Ubuntu fuera Win7, ya que esto lo he hecho con Ubuntu pero nunca con Win7, Saludos

  2.   Persona dijo

    Buenas si la dirección ip de tu servidor es 192.168.1.100 la subred debería ser 192.168.1.0.
    Por otra parte al añadir el último paso me da error, ¿Va entre algún corchete o simplemente es así?

  3.   Nacho dijo

    Hola, segui todos los pasos y luego de particionar los discos, cuando va a instalar se frena y no continua. ¿Que puede ser?

  4.   fdsa dijo

    La proxima vez que hagas un articulo repásalo antes de publicarlo porque esto es una puta mierda joder

  5.   HIROKOSONOY dijo

    DESDE ESTAS LINEAS NO PUEDO AVANZAR TENGO UBUNTU 16.04 ALGUNA SUGERENCIA..

    Ya falta menos, y ahora tenemos que configurar las carpetas en las cuales vamos a montar las ISO a las cuales van a acceder los demás equipos.

    # mount /dev/sr0 /mnt

    cp -avr /mnt/install/netboot/* /var/lib/tftpboot/

    mkdir -p /var/www/html/ubuntu14.10

    cp -avr /mnt/* /var/www/html/ubuntu14.10/

    Luego editamos el archivo de configuración pxelinux.cfg/default:

    nano /var/lib/tftpboot/pxelinux.cfg/default

    Añadimos:

    […]
    label linux
    kernel ubuntu-installer/amd64/linux
    append ks=http://192.168.1.100/ks.cfg vga=normal initrd=ubuntu-installer/amd64/initrd.gz
    ramdisk_size=16432 root=/dev/rd/0 rw —

    Por último, añadimos compatibilidad con PXE al servidor DHCP:

    nano /etc/dhcp/dhcpd.conf

    Añadimos:

    […]
    allow booting;
    allow bootp;
    option option-128 code 128 = string;
    option option-129 code 129 = text;
    next-server 192.168.1.100;
    filename “pxelinux.0”;

    Eso es todo, ahora simplemente debemos configurar los otros equipos desde su BIOS para que puedan iniciarse desde la red, y al hacerlo solicitarán a nuestro servidor PXE la configuración y ya podremos comenzar con la instalación.

Escribe un comentario