PXE y un cable de red bastan para arrancar tu ordenador sin disquetera, CD ni USB


En esto del reciclaje tecnológico hay veces que cae en tus manos un ordenador que es como un niño sordo y ciego con el que te tienes que comunicar, un ordenador sin lector de CD y sin disquetera en el que quieres arrancar un sistema operativo e incluso instalárselo. Por otro lado, hay veces que necesitas instalar el mismo sistema operativo masivamente por la razón que sea, en nuestro caso para preparar los equipos con los que damos los talleres. En este caso, aunque los equipos tengan lector de CD, el método tradicional se revela lento e incómodo: preparar tantas copias del instalador en CD como equipos quieras instalar, copias que al cabo de unos meses se quedan desactualizadas por lo que son, prácticamente, de un solo uso.
Si te enfrentas a uno de estos dos casos puedes intentar comunicarte con el ordenador víaLAN, desde otro equipo de la red local, independientemente del sistema operativo que tenga instalado o de que no tenga ninguno. Mediante la red local puedes iniciar un ordenador e instalar un sistema operativo completo después. Para ello necesitamos un equipo que actúe como servidor PXE, al que se conectará el cliente cuando lo encendamos y del que obtendrá los archivos necesarios para arrancar e instalar el sistema operativo completo.

¿Está claro, no?

¿Está claro, no?
Bueno, si el gráfico no ha sido suficiente para ti, sigue leyendo, que en realidad es más fácil de lo que parece.

Cuestiones previas

  • En este caso, asumiremos que el servidor está corriendo sobre un Debian GNU/Linuxuna distribución basada en Debian, y que en los clientes queremos instalar Debian Lenny.
  • Asumiremos también que estamos trabajando con una red local del tipo 192.168.1.0, que son la mayoría de ellas.
  • Por último decir, que la instalación, configuración y demás operaciones las haremos desde una consola con permisos de usuario administrador. En las líneas de este pequeño manual indicamos esto con la notación root@server:~#, antes de cada orden que hay que ejecutar como administrador o root.

Requisitos y configuración del equipo cliente

Para poder realizar este tipo de instalación el cliente deberá disponer de la opción de arranque mediante LAN en la BIOS (Basic Input/Output System), y tenerla activada. La BIOS es un software que viene instalado en la placa base de cualquier ordenador y que controla el arranque y detecta todo el hardware de la máquina. Normalmente se accede a él nada más encender el ordenador pulsando la tecla adecuada, “Supr” en casi todos los casos. En la secuencia de arranque (Boot sequence) de la BIOS se listan en orden de prioridad los dispositivos desde los que se puede iniciar un sistema operativo: unidades de CD, disquetes, discos duros… Además, algunas BIOS dan la posibilidad de iniciar el ordenador desde un dispositivo alojado en otro ordenador, a través de una red local. Esta opción es la que activaremos y vamos a usar para arrancar nuestro equipo cliente.

Requisitos y configuración del equipo servidor

Este equipo le proporcionará al ciente una dirección en la red local, y posteriormente los archivos necesarios para arrancar. Estos archivos pueden ser un programa para instalar un sistema operativo completo, o directamente un sistema operativo tipo live. Para proporcionar estos dos servicios nuestro servidor tendrá que tener instalado un Pre-boot eXecution Enviroment (PXE) que se compone de un servidor DHCP, para integrar en la red local al cliente, respondiendo a su solicitud dándole una dirección IP; y un servidor TFTP, que pone a disposición de los clientes un sistema mínimo de arranque, un kernel para descargar en definitiva.
Para poner en funcionamiento ambos servicios, DHCP y TFTP los pasos a seguir son tres: instalar los paquetes necesarios, configurar el servicio e iniciarlo.

Servidor DHCP

Hay varios paquetes para que un ordenador actúe como servidor DHCP. Nosotros utilizaremos dnsmasq.
Instalación.
root@server:~# apt-get install dnsmasq
Configuración. El archivo de configuración (/etc/dnsmasq.conf) trae toda la documentación incrustada en forma de comentarios antes de cada orden. Por defecto todas las órdenes vienen comentadas también, para activarlas borraremos la almohadilla de principio de línea. Las líneas que deben estar activas son las siguientes:
dhcp-range=192.168.1.223,192.168.1.254,12h
dhcp-no-override
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/lib/tftpboot
dhcp-range indica a dnsmasq el rango de IPs que podrán ser asignadas a clientes por nuestro servidor DHCP, y el tiempo que estas direcciones tardan en renovarse. A la hora de elegir un rango hay que tener en cuenta cuántos equipos van a obtener una dirección del servidor, para que no se acaben, y que el máximo es de 1 a 254.
dhcp-no-override es una medida de seguridad para el PXE. Para los curiosos, hay más información en la wiki de etherboot.
dhcp-boot indica el archivo que contendrá la información de arranque. Por convenio se suele llamar simepre pxelinux.0.
enable-tftp le dice a dnsmasq que active sus funciones relacionadas con el servidor TFTP.
tftp-root por último establece la ubicación accesible para los clientes vía TFTP. Por tanto, es aquí donde tendremos que alojar los archivos que necesiten los clientes para arrancar o iniciar un sistema operativo. Podemos designar cualquier ruta, pero de nuevo por convenio se suele indicar /var/lib/tftpboot.
Puesta en marcha.
root@server:~# /etc/init.d/dnsmasq restart

Servidor TFTP

Instalación.
root@server:~# apt-get install tftpd-hpa
Configuración. El fichero de configuración (/etc/default/tftpd-hpa) sólo tiene dos líneas:
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"
RUN_DAEMON viene con la opción “no”, por defecto; la cambiamos a “yes”. En OPTIONStenemos que asegurarnos que la ruta que figura sea la misma que en el archivo de configuración de dnsmasq.
Puesta en marcha.
root@server:~# /etc/init.d/tftp-hpa start

Servidor PXE

Pues ya deberías tener listo un servidor PXE para tu red local. Ahora solo te queda descargarte un instalador de la distribución que prefieras, en su versión net-install y colocarla en la ubicación del servidor que hemos definido como accesible a los clientes. En nuestro caso, Debian Lenny. Debian ofrece una versión para instalar por red completamente preparada en un archivo comprimido, así que lo único que hay que hacer es descargarla y descomprimirla:
root@server:~# cd /var/lib/tftpboot
root@server:/var/lib/tftpboot# wget http://ftp.es.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz
root@server:
/var/lib/tftpboot# tar -zxvf netboot.tar.gz
Ya está. Si ahora encendemos nuestro ordenador cliente, tras hacer el recuento de memoria y las demás comprobaciones de hardware, se conectará al servidor PXE e iniciará el instalador de Debian Lenny.

Más sobre el tema

Setting up a server for PXE network booting, en Debian Administrator.
Manual para configurar un servidor PXE, muy completo. Explica la organización que tienen que tener los archivos del servidor a trasferir mediante TFTP, y un resumen de la sintaxis para generar menús para mostrar opciones en el arranque.
Dnsmasq Setup, en la Página oficial de dnsmasq.
Aquí se puede encontrar la manera de configurar dnsmasq no sólo como servidor DHCP, también como servidor DNS.
Ejemplo de archivo de configuración de dnsmasq (/etc/dnsmasq.conf): http://edoceo.com/liber/network-dhcp
PXELinux, en The Syslinux Project. Información exhaustiva para configurar un PXE, incluyendo la puesta en marcha de un servidor DHCP y TFTP.

Comentarios

Entradas populares de este blog

tips y truqucos NIC Teaming en Windows Server 2012.

Instalar un Servicio de Implementación de Windows (WDS) en Windows Server 2008 y 2008 R2 para implementar Windows 7