
En mi ordenador "central" tenía instalado Fedora Core 7 desde hacía algún tiempo y lo tenía tan trasteado y "tuneado" que empezaba a ir mal, además de otros problemillas por culpa de una mala instalación en su momento., era hora pues de actualizar a Fedora 9 y así investigar entre otras cosas Glade3 a ver si consigo meterme en la cabeza este entorno de desarrollo.
El caso , es que además de problemas varios, la unidad de DVD decidió morirse hace un tiempo y no está la vida para grandes dispendios por lo que opté a realizar la actualización de mi sistema a través de un portatil en el que ya tenía Fedora 9 instalado y con un magnífico lector de DVD en perfecto estado.
Hace ya algún tiempo había estado jugando con el asunto de arranque remoto y sistemas diskless para poner en marcha terminales básicos que no requirieran disco duro, así que no me cogía del todo de nuevas. Para poder jugar con estas cosillas de los diskless y arranques remotos necesitas una tarjeta de red que sea capaz de soportar el estandar de Intel PXE, algo que desde hace tiempo casi todos los equipos con tarjetas de red incorporadas en la placa base soportan, es cosas de mirar en la BIOS y ver si puedes activar el "Remote Booting" o poner como unidad de arranque la tarjeta de red. Si puedes.. es que tienes y puedes serguir adelante
Para poder arrancar en remoto necesitas , además del servidor remoto y una red (risas, por favor) , cierto software instalado en el servidor, DHCP, TFTP, SYSLINUX (y también Apache si escoges esta opción) En Fedora los puedes encontrar sin problemas usando el yum u otro sistema de gestión de paquetes, hay que instalarlos y luego proceder a su configuración.
Configurando DHCPD
El DHCPD se usa para la entrega de IP's dinámicas a otras máquinas, el sistema que va a ser arrancado remotamente necesita una IP dinámica cuando comience el arranque, así pues ese software se va a encargar de los primeros pasos, un ejemplo de configuración sería:
ddns-update-style none;
ignore client-updates;
allow bootp;
allow booting;
subnet 172.26.0.0 netmask 255.255.255.0 {
interface eth0
range 172.26.0.150 172.26.0.220;
option subnet-mask 255.255.255.0;
default-lease-time 21600;
max-lease-time 43200;
}
host cliente {
hardware ehternet XX:XX:XX:XX:XX:XX;
fixed-address 172.26.0.201;
option subnet-mask 255.255.255.0:
filename "pxelinux.0":
next-server 172.26.0.6;
}
Lógicamente esta configuración no la puedes usar tal cual, hay algunos detalles que debes cubrir por ti mismo o modificar, veamos cuales:
Mi servidor tiene una ip fija 172.26.0.6 , importante para la línea next-server, que indica de dónde se van a tomar las imágenes del kernel para arrancar, tuve bastantes problemas con el TFTP por que no se enviaban los ficheros adecuados, y fue debido a mi olvido de poner esa línea, me emperré en que el problema venía por culpa del TFTP y era la configuración DHCPD. Sirva esto de aviso a navegantes.
Ahora, al cliente le doy el nombre de "cliente" (reamente le puse otro nombre, pero resguardo la intimidad de mis máquinas ) y le asigno una IP fija de 172.26.0.201, que está dentro del rango que defino arriba ( 172.26.0.50 172.26.0.220). Esta IP que le asigno al cliente sólo es a efectos de arranque, una vez comenzada la instalación podras asignarle la IP final que quieras.
Con respecto a la línea hardware ethernet XX:XX:XX.. . tienes que reemplazar esas X por la dirección MAC de la tarjeta de red que estés usando en el cliente, si no tuviste la prudencia de anotarla al principio y ya te has cargado todo sistema operativo (o no lo tiene) siempre puedes buscarla a través de la Bios. Es una secuencia de dígitos hexadecimales como (un ejemplo) 15:B3:A1:C0:34:23.
Una vez hecha la configuración reinicia el servidor DHCPD (/etc/rc.d/init.d/dhcpd restart)
Configurando el TFTP
Con el hpa-tftp que tiene Fedora, basta con ir a /etc/xinet.d/tftp y donde pone disable yes establecer disable no, reinicia el xinet.d y arreando ( /etc/rc.d/init.d/xinet.d restart). Ahora toca copiar los ficheros.
Copia el contenido de /tftpboot/linux-install en /tftpboot directamente y luego copia del DVD de instalación de Fedora los ficheros initrd.img y vmlinuz que encontrarás en el directorio de images de arranque para pxe, hazlo directamente sobre /tftpboot. También te los puedes descargar por internet, como prefieras. Hecho esto crea (si no está creado ya) el directorio pxelinux.cfg y dentro crea un fichero con el nombre default con estas líneas
prompt 1
default fedora
timeout 1000
label fedora
kernel vmlinuz
append initrd=initrd.img ramdisk_size=9216 noapic acpi=off
Procura, eso sí , que TODOS los ficheros dentro de /tftpboot tengan permisos de lectura para todo el mundo, es para evitarse ciertas inconveniencias.
Distrubución de los paquetes
Ya hemos hecho todo lo necesario para permitir el arranque remoto, el sistema sería capaz de arrancar usando el kernel que dispusimos en /tftpboot en el servidor pero falta establecer una forma de distribuir los paquetes de instalación. Una de las formas que podemos usar es vía Servidor Web, la que yo escogí. Tambíen podrías activar un servicio de NFS, pero veamos cómo lo hice yo. Instalé el Apache en el Servidor y añadí estas líneas en el httpd.conf
<Directory /tftpboot/DVD>
Options Indexes FollowSymLinks
AllowOverride none
</Directory>
Alias /fedora /tftpboot/DVD
Mete el DVD de Fedora en el servidor, y crear un enlace simbólico desde /tftpboot/DVD hasta el dvd "/media/Fedora 9 i386 DVD/" (ln -s "/media/Fedora 9 i386 DVD" /tftpboot/DVD) De este modo desde dentro del tftpboot se puede ver el contenido del DVD de instalación, y el alias "fedora" simplifica el Path. Así , cuando estés en el proceso de instalación en la máquina cliente y te pida que sistema quieres para el procedimiento de instalación escoges vía WEB y como URL le das http://172.26.0.6/fedora ... y ya el resto es cosa tuya.
Otros enlaces de interés
http://www.opensourcehowto.org/how-to/tftp/tftp--pxe--syslinux--fedora-install.html
http://www.telefonica.net/web2/clientesligeros/ClientesLigeros.pdf
http://osl.birzeit.edu:8080/wiki2/index.php/LTSP_guide_on_Fedora
http://www.estrellateyarde.es/discover/servidor-dhcp-en-linux