Ubuntu Netboot con PXE (o Instalar Ubuntu por red sin CD).

Esto aplica a la versión 9.10 que es la que estoy usando en este momento. El problema es simple: tengo un aula donde algunos CDROMs no terminan de funcionar ( o serán los CDs). En fin que he perdido la paciencia con esto y decidí montarla por red, la verdad es que es fácil… una vez que se sabe.

En un ordenador que ya tenga instalado ubuntu y con acceso a los repositorios instalamos dhcp, tftpf y el servidor apache.

sudo aptitude install tftpd-hpa
sudo aptitude install dhcp3-server
sudo aptitude install apache2

editamos el archivo /etc/default/tftpd-hpa y cambiamos la línea de RUN_DAEMON por yes, si queremos podemos cambiar el directorio de servicio de tftpd.

#Defaults for tftpd-hpa
RUN_DAEMON=”yes”
OPTIONS=”-l -s /tftpboot”

Hay un pequeño bug si cambias el directorio de destino, tendrás que quitar la linea que hace referencia al servicio por inet en /etc/inetd.conf.

Con el paso anterior esta listo el tftp luego necesitaremom dhcp. Editamos el archivo  /etc/dhcp3/dhcpd.conf. Y al final creamos una nueva subred… sé que esto se puede hacer mejor y espero estudiarlo con más detalle.

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
filename “pxelinux.0”;
next-server 192.168.1.1;
host laptop {
hardware ethernet 00:aa:00:aa:00:aa;
fixed-address 192.168.1.11;
}
}

Los servicios se levantan y bajan de /etc/rc.d/init.d/

sudo /etc/init.d/dhcp3-server stop
sudo /etc/init.d/dhcp3-server stop
sudo /etc/init.d/dhcp3-server stop
sudo /etc/init.d/dhcp3-server stop

Si existe algún problema se dará durante el inicio del servicio, para comprobar que el tftpd-hpa está arriba podemos hacer un “ps aux | grep tftp”. Si el servidor dhcp3 no se puede levantar pues se mira en el syslog como dirá el mensaje de error “tail /var/log/syslog”. Yo tuve un pequeño problema  ya que mi ordenador tiene varias tarjetas de red, tuve que editar el archivo /etc/default/dhcp3-server y decile que utilice el eth0 para el dhcp.

INTERFACES=”eth0″

Listo, ahora el proceso. Cuando se inicie el servidor en el/la BIOS casi siempre existe una opción de inicio por red, si le damos a esa opción busca un servidor DHCP que le diga que hacer, en este caso le pasamos la direccion física (MAC en hardware ethernet) y el dhcp se encarga de darnos del servidor ( next-server ) el archivo de netboot (pxelinux.0). Y ya está, solo falta poner el software de netboot y luego el cd disponible via web para que se pueda realizar la instalación en remoto.

Descargamos el CD de instalación alternativo de Ubuntu ( el Alternate Install CD no el Desktop ): http://releases.ubuntu.com/karmic

Creamos un directorio, montamos la descarga y copiamos los archivos tanto al directorio del tft como al apache.

sudo mkdir /tmp/910Alt
sudo mount -o loop ubuntu-9.10-alternate-i386.iso /tmp/910Alt
cd /tmp/910Alt
sudo cp -r /tmp/910Alt/install/netboot/* /tftpboot/
sudo mkdir /var/www/910Alt
sudo cp /tmp/910Alt/* /var/www/910Alt

Si todo va bien cuando lancemos la instalación por red se nos presentara una pantalla de instalación, seguimos todos los pasos hasta el final cuando nos pregunte por el mirror para descargar los paquetes escogemos la primera opción y le damos la direccion del servidor y luego la cadena 910Alt. Asi 192.168.1.1, directorio (quitamos ubuntu) y ponemos 910Alt. Como proxy lo dejamos en blanco.

Una vez finalizada la instalación es mejor quitar las referencias en el /etc/apt/sources.list al servidor porque solo da problemas y es mejor establecer la descarga desde internet, si no se dispone de mucho ancho de banda o son muchos ordenadores y se quiere optimar el uso del canal se puede utilizar apt-cacher que me ha dado muy buen resultado y su configuración es mínima.

Este metodo de instalación también me ha servido para darle nueva vida a un portátil con unos años encima, ahora tiene una instalación mínima y un web browser.

Saludos

FJA

Enlaces Utilizados:
http://javcasta.wordpress.com/2009/11/18/linux-ubuntu-9-10-instalacion-de-un-servidor-tftp/
http://linuxadministration.us/2009/11/16/ubuntu-9-10-pxe-boot/
https://wiki.koeln.ccc.de/index.php/Ubuntu_PXE_Install
http://syslinux.zytor.com/wiki/index.php/PXELINUX
https://help.ubuntu.com/community/Installation/Netboot
https://bugs.launchpad.net/ubuntu/+source/tftp-hpa/+bug/227881
http://ubuntuforums.org/archive/index.php/t-1112209.html