4.3. Preparació dels fitxers per a l'arrencada en xarxa TFTP

Si teniu una màquina connectada a una xarxa d'àrea local, podeu arrencar-la des d'una altra màquina de la xarxa fent servir TFTP. Si voleu arrencar el sistema d'instal·lació des d'una altra màquina, els fitxers d'arrencada hauran de col·locar-se a llocs específics d'aquesta, la qual ha de configurar-se a fi de permetre l'arrencada de la vostra.

Heu d'instal·lar un servidor TFTP, i en nombroses màquines, cal també un servidor DHCP , o un servidor BOOTP.

BOOTP és un protocol IP que indica a l'ordinador la seua pròpia adreça IP i el lloc de la xarxa on obtenir la imatge d'arrencada. El DHCP (Protocol de configuració dinàmica d'ordinadors centrals) és una extensió més flexible, i compatible, del BOOTP. Alguns sistemes sols es poden configurar fent servir el DHCP.

A diferència de l'Open Firmware de màquines Sparc i PowerPC, la consola SRM no fa servir el RARP per obtenir les adreces IP, i per tant heu d'emprar el BOOTP per arrencar en xarxa l'Alpha[2]. També podeu introduir la configuració IP de les interfícies de xarxa directament en la consola SRM.

El protocol de transferència trivial de fitxers (TFTP) s'empra per posar a disposició del client la imatge d'arrencada. En teoria, es pot usar qualsevol servidor de qualsevol plataforma que implemente aquests protocols. Els exemples d'aquesta secció ofereixen instruccions per al SunOS 4.x, el SunOS 5.x (i.e. Solaris), i el GNU/Linux.

4.3.1. Configurar un servidor BOOTP

Hi ha dos servidors de BOOTP a GNU/Linux. El primér és el bootpd de CMU. L'altre és també un servidor de DHCP, el dhcpd de ISC. A Debian GNU/Linux són als paquets bootp i dhcp3-server de Debian GNU/Linux respectivament.

Per fer servir el bootpd de CMU, elimineu el comentari (o bé afegiu) la línia important al /etc/inetd.conf. A Debian GNU/Linux, podeu executar update-inetd --enable bootps, i després /etc/init.d/inetd reload per aconseguir-ho. En el cas que el servidor BOOTP no utilitze Debian, la línia en qüestió seria com aquesta:

bootps  dgram  udp  wait  root  /usr/sbin/bootpd  bootpd -i -t 120

Ara, podeu crear un fitxer /etc/bootptab. Aquest té el mateix tipus de format críptic i familiar com els antics fitxers de BSD printcap, termcap, i disktab . Vegeu la pàgina de manual del bootptab per obtenir més informació. Pel bootpd de CMU, necessitareu saber l'adreça màquina (MAC) del client. Un exemple de /etc/bootptab:

client:\
  hd=/tftpboot:\
  bf=tftpboot.img:\
  ip=192.168.1.90:\
  sm=255.255.255.0:\
  sa=192.168.1.1:\
  ha=0123456789AB:

Necessitareu canviar al menys l'opció “ha”, que especifica la adreça màquina del client. L'opció “bf” especifica quin fitxer hauria de descarregar un client via TFTP; per més detalls, vegeu Secció 4.3.4, “Posar les imatges del TFTP al seu lloc”.

Per altra banda, configurar el BOOTP amb el dhcpd d'ISC és molt fàcil, ja que considera els clients BOOTP com un cas un poc especial de clients de DHCP. A algunes arquitectures necessitareu d'una configuració complexa per arrencar els clients via BOOTP. Si aquest és el vostre cas, llegiu la secció Secció 4.3.2, “Configurar un servidor DHCP”. En aquest cas, ho aconseguireu de forma senzilla afegint la directiva allow bootp al bloc de configuració per la xarxa que conté el client, i reiniciar el dhcpd amb /etc/init.d/dhcpd3-server restart.

4.3.2. Configurar un servidor DHCP

Un servidor que es programari gratuït de DHCP és el dhcpd d'ISC. A Debian GNU/Linux, es recomana utilitzar el paquet dhcp3-server. Hi ha un fitxer d'exemple de configuració per utilitzar-lo (normalment /etc/dhcpd3/dhcpd.conf):

option domain-name "example.com";
option domain-name-servers ns1.example.com;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
server-name "servername";

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option routers 192.168.1.1;
}

host clientname {
  filename "/tftpboot/tftpboot.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

En aquest exemple, hi ha un servidor servername que fa tota la feina del servidor DHCP, servidor de TFTP, i passarel·la de xarxa. És casi segur que necessitareu canviar les opcions nom-de-domini, i també el nom del servidor i l'adreça màquina del client. L'opció filename hauria de ser el nom del fitxer que es descarregarà per TFTP.

Després d'editar el fitxer de configuració del dhcpd, reengegueu-lo amb /etc/init.d/dhcpd3-server restart.

4.3.3. Habilitació del servidor TFTP

Per a posar en marxa el servidor TFTP, assegureu-vos primer que teniu activat el tftpd. Per fer-ho, el fitxer /etc/inetd.conf ha de tenir quelcom semblant a la línia següent:

tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot

Els paquets Debian solen configurar-ho per defecte correctament.

Nota

Històricament, els servidors TFTP utilitzen el directori /tftpboot per servir les imatges. Per altra banda, els paquets de Debian GNU/Linux poden utilitzar altres directoris per complir amb l'Estàndard de la Jerarquia del Sistema de Fitxers. Per exemple, el tftpd-hpa utilitza per defecte /var/lib/tftpboot. Es possible que hagueu d'ajustar els exemples de configuració d'aquesta secció en conseqüència.

Vegeu el fitxer /etc/inetd.conf i recordeu el directori que s'utilitza com a paràmetre del in.tftpd[3]; ho necessitareu després. Si heu canviat /etc/inetd.conf, haureu de notificar-ho al procés inetd que s'està executant. En màquines Debian, executeu /etc/init.d/inetd reload; en d'altres, esbrineu la identitat (ID) del procés inetd i executeu kill -HUP pid-d'inetd.

4.3.4. Posar les imatges del TFTP al seu lloc

Després, col·loqueu la imatge d'arrencada TFTP que us calga, i que figura a Secció 4.2.1, “On trobar imatges d'instal·lació”, al directori d'imatges d'arrencada del tftpd. Haureu de fer un enllaç des d'aquest fitxer al fitxer que emprarà el tftpd per arrencar un client determinat. Malauradament, el nom del fitxer el determina el client TFTP, i no hi existeix cap norma ben establerta.

4.3.4.1. Arrencada TFTP dels Alpha

En els Alpha, heu d'especificar el nom del fitxer (com un camí relatiu al directori de la imatge d'arrencada) amb l'argument -file de l'ordre boot a l'SRM, o bé ajustant la variable d'entorn BOOT_FILE. També es pot proporcionar el nom del fitxer a través del BOOTP (en ISC dhcpd, feu servir la directriu filename). A diferència de l'Open Firmware, en SRM no hi ha nom del fitxer per defecte, per tant heu d'especificar un nom de fitxer amb algun d'aquests mètodes.



[2] Els sistemes Alpha també es poden arrencar en xarxa amb el DECNet MOP (Protocol d'operacions de manteniment), però això no s'explica aquí. Probablement el vostre operador OpenVMS local estarà disposat a ajudar-vos en cas que realment tingueu necessitat d'emprar el MOP per arrencar Linux al vostre Alpha.

[3] El paràmetre -l fa que algunes versions del in.tftpd registrin totes les peticions als registres del sistema, útil per diagnosticar els errors d'arrencada.