No me considero un experto en redes, pero he aprendido algunas cosas con el tiempo. Hoy necesitaba instalar Ubuntu (quería, en realidad) en un notebook sin lector de CD. Primero intenté estas instrucciones para arrancar desde un drive USB, pero no funcionó, incluso intentando actualizar las instrucciones para funcionar con Ubuntu 7.10 (la versión estable actual).
Mi segunda opción fue instalar Ubuntu en el pendrive, pero era sólo de 1GB y no es suficiente para la instalación estándar. Finalmente, el último recurso era el arrancar desde la red, pero nunca lo había hecho. Afortunadamente, existen estas instrucciones, aunque para la versión de hace dos años.
Uno de los problemas que tuve es el servicio TFTP, que se instala para correr sobre inetd, el cual a su vez está deshabilitado por defecto en versiones recientes, siendo reemplazado por xinetd. Tomé como referencia estas instrucciones para generar la configuración de xinetd.
En resumen, aquí van los pasos actualizados:
1.- Instalar los paquetes necesarios
sudo apt-get install tftpd-hpa apache2 dhcp3-server xinetd
2.- Descargar la última versión del netboot
Esto es del mirror chileno. Para otros, se puede reemplazar cl.archive.ubuntu.com por us.archive.ubuntu.com por ejemplo.
cd /var/lib/tftpboot
sudo wget http://cl.archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/netboot/netboot.tar.gz
3.- Descomprimir
Esto creará un directorio ubuntu-installer y otros archivos necesarios para la instalación.
sudo tar xvfz netboot.tar.gz
4.- Configurar el servicio DHCP
Editamos el archivo /etc/dhcp3/dhcpd.conf:
sudo nano /etc/dhcp3/dhcpd.conf
Y dejamos esto dentro:
ping-check = 1;
filename = "pxelinux.0";
subnet 192.168.0.0
netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.254;
}
Los datos de red dependen de nuestra configuración acual. Hay que tener cuidado de que no exista otro servidor DHCP en la red (como un router para conexión de banda ancha, por ejemplo).
5.- Configurar el servicio xinetd
Editamos el archivo /etc/xinetd.d/tftp
sudo nano /etc/xinetd.d/tftp
Y dejamos esto dentro:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
}
6.- Agregar contenido a Apache
Para que apache tenga estos archivos dentro, basta con crear un link simbólico
cd /var/www
sudo ln -s /var/lib/tftpboot/pxelinux.0
sudo ln -s /var/lib/tftpboot/pxelinux.cfg
sudo ln -s /var/lib/tftpboot/ubuntu-installer
7.- Reiniciar xinet e iniciar dhcpd
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/dhcp3-server start
8.- Fin
Ya podemos iniciar el computador de destino, conectado a la red. Tuve un par de problemas porque originalmente estaba apuntando el archivo de configuración de DHCP a ubuntu-installer/i386/pxelinux.0, en vez de utilizar el enlace simbólico. Si el computador de destino reclama por algún archivo faltante, bastará con crear un enlace simbólico a él. Cuando arranque el instalador de ubuntu, podemos configurar manualmente el gateway y el servidor de nombres, los cuales yo no puse en el archivo de configuración DHCP.