Esta sección no cubre el procedimiento de configuración de los servicios, que debe haberse visto durante la lectura de la anterior. Aquí se trata la necesidad de aportar al cliente ciertos paquetes de información -en forma de roms- para que sea capaz de cumplir con su parte en el diálogo de comunicación que finalizará con su arranque. Cabe insistir una vez más que el cliente en ningún momento se percata de que no tiene un sistema operativo instalado en un disco local, la transparencia a este nivel la otorga el propio linux.
Haciendo memoria. El cliente -como cualquier otra computadora- arrancará su BIOS
al ser alimentado. Tras la detección de memoria y también su tarjeta de
red se producirá la interrupción de BIOS INT 19H que dirigirá su
esfuerzo en encontrar información que le permita arrancar a través del
nic instalado. En este momento es cuando el servidor debe estar atento para prestar la
primera rom, correspondiente al servicio RPL7.12.
La segunda rom es necesaria durante la puesta en marcha del tercer servcio, el TFTP. Se utilizará este protocolo para descargar y arrancar un kernel desdel servidor, pero este kernel debe estar modificado -no sirve directamente un fichero bzImage, resultado de una compilación con make bzImage-.
Lo que tiene que entenderse en el tercer punto es que la rom contiene diferencias para cada tarjeta, o mejor dicho, para cada chipset de tarjeta de red. Así pues es aconsejable realizar pruebas con esta misma imagen grabada en un disquete, para no tener que sustituir diversas veces el contenido de nuestro chip (algo sin duda más engorroso que borrar y grabar un disquete).
En efecto, cabe elogiar el trabajo de la gente del proyecto Etherboot por poner a nuestro alcance un sistema tan práctico para hacer nuestras primeras configuraciones: poner la imagen en un disquete.
La ventaja que esto aporta es básicamente que es un proceso realizable en la mayoría de las computadoras, siempre que dispongan de conexión a internet y de disquetera. Con este sistema podemos:
La opción más elegante es sin duda la primera, puesto que si realmente el cometido que nos ha hecho llegar aquí han sido los nodos minimalistas, ¿qué menos que prescindir de las disqueteras, su cable de alimentación y el de datos?
Existen dos propuestas, ambas se encuentran en SourceForge:
Explicaremos con más detalle cada una de estas propuestas, analizando también el benecifio que en cada caso puedan aportar a nuestro sistema.
I - ETHERBOOT
El proyecto Etherboot dispone de un apartado sobre
documentación (en inglés, como es de suponer). Los procedimientos
explicados a continuación pueden ampliarse en su web, aunque en esencia
puede resumirse todo ello de la forma que sigue.
¿Cómo puedo obtener una imagen ROM?
El mecanismo que genera la imagen es el mismo, es decir, romomatic simplemente llama a la aplicación etherboot, con las opciones marcadas, a través de un script. Por esa razón -y pensando en simplificar siempre las cosas- aquí se aboradrá el caso desde romomatic. En caso de querer hacer las cosas por propia cuenta habrá que enterarse bien de los parámetros de la aplicación7.17.
En rom-o-matic.net existen varias versiones, es recomendable utilizar la versión estable -production release-. Un hiperenlace lleva a la página donde hay que introducir:
Finalmente pulsar Get ROM para terminar bajando la imagen. Las imágenes preparadas para disquete hay que copiarlas con el comando
cat eb-5.0.8-tu_nic.lzdsk > /dev/fd0
donde /dev/fd0 refiere a nuestra disquetera y eb-5.0.8-tu_nic.lzdsk es la eom.
En este proceso pueden surgirte las siguiente dudas, que como no, tienen su respuesta.
El modelo de chipset viene especificado por un número que puede conseguirse de diferentes maneras. Si no aciertas a conseguirlo con la documentación que la tarjeta pueda llevar sería adecuado hacer uso de los comandos, como superusuario (root):
lspci
cat /proc/bus/pci/devices
Puedes encontrar un ejemplo de su salida en el apéndice referente a Salidas de comandos y ficheros.
Sobre si está soportado, y para conseguir siempre resultados acorde con la
versión vigente de Etherboot, debe consultarse el hiperenlace de la página
de generación de imagenes de ROM-o-matic sobre los PCI IDs soportados.
II- NETBOOT
¿Quieres redactar este apartado? ¡Envíamelo!
mikel@akamc2.net . GRACIAS
Así pues el resultado de aplicar las modificaciones de mknbi-linux al fichero bzImage resultado de la compilación de las fuentes de linux en el nodo que queramos arrancar por red, se llama tagged image. A efectos de usuario no supone ninguna diferencia con una imagen sin modificar.
Los paquetes necesarios para proceder de esta manera contienen unas
aplicaciones llamadasmknbi-so donde so refiere al sistema
operativo que queramos arrancar. Nos centraremos en la utilidad mknbi-linux.
¿Qué necesita mknbi para funcionar? Evidentemente los parámetros obligados son el nombre de la imagen a modificar y el nombre de la iamgen de salida. Una posible llamada podría ser
mknbi-linux -format=nbi -ip=rom -output=/tftpboot/vmlinuz-metrakilate
-rootdir=/tftpboot/metrakilate /usr/src/linux/arch/i386/boot/bzImage
Una vez más se enfatiza en el hecho que para un pleno conocimiento de la
herramientas será más útil consultar los manuales que incorpora, o la
documentación que se dispone en su web.
Como se ve es sencillo de utilizar. Con un poco de soltura también se pueden hacer menús que gestionen la carga de uno u otro kernel con pantallas de menús tipo ncurses mediante mknbi-mgl y un lenguaje de programación semejante a Pascal, lo que es una opción bastante profesional para entornos de producción.
Sobre la aplicación cabe decir que es necesario pasarle la ruta nfsroot -correspondiente al parámetro rootdir- que indica de donde importar la raíz /. En el caso de no pasarse este parámetro existe una cosntante dentro de /usr/src/linux/fs/nfs/nfsroot.c que indica de donde será cargado el raíz. Por defecto es /tftpboot/direccion_IP.