4.3. Fájlok előkészítése TFTP hálózati indításhoz

Ha géped egy helyi hálózatra kötött, alkalom nyílhat indítására a hálózaton át másik gépről TFTP használatával. Ha a telepítő rendszert másik gépről indítanád, az indító fájlokat adott helyre kell tenni azon és be kell állítani rajta, hogy támogassa az adott géped indítását.

Be kell állítanod egy TFTP kiszolgálót, és sok géphez egy DHCP kiszolgálót .

A BOOTP egy IP protokoll mely megmondja egy gép IP-címét és, hogy hol éri el a hálózaton az indító képet. A DHCP (Dinamikus gazda konfiguráló Protokoll) a BOOTP egy sokkal rugalmasabb, visszafelé-kompatibilis kiterjesztése. Egyes rendszerek csak DHCP módon állíthatók be.

A Triviális fájl átviteli protokoll (TFTP) arra jó, hogy átadja az indító képet az ügyfélnek. Elméletileg bármely kiszolgáló bármely platformon, mely megvalósítja e protokollokat használható. A példákban SunOS 4.x, SunOS 5.x (más nevén Solaris), és GNU/Linux parancsokat adunk.

4.3.1. BOOTP kiszolgáló beállítása

2 BOOTP kiszolgáló van GNU/Linux alatt. Az 1. a CMU bootpd. A másik egy DHCP kiszolgáló: az ISC dhcpd. A Debian GNU/Linux rendszerben ezek a bootp és dhcp3-server csomagokban vannak.

A CMU bootpd használatához a /etc/inetd.conf megfelelő sora kell. A Debian GNU/Linux rendszeren így érdemes: update-inetd --enable bootps, majd /etc/init.d/inetd reload. Csak arra az esetre mutatjuk, ha a BOOTP kiszolgáló nem Debian rendszert futtatna, a kérdéses sor így áll össze:

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

Most létre kell hozni a /etc/bootptab fájlt. A régi jó BSD printcap, termcap, és disktab fájlokban megszokott formájú. Lásd a bootptab kézikönyv oldalt több adatért. A CMU bootpd parancshoz tudni kell az ügyfél hardver (MAC) címét. Itt egy példa /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:

Legalább a „ha” opciót cserélni kell, mely megadja az ügyfél hardver címét. A „bf” lehetőség megadja az ügyfél által a TFTP-n elérendő fájlt; lásd ezt: 4.3.4. szakasz - TFTP képek helyükre tétele több részletért.

Az ISC dhcpd BOOTP beállítása még egyszerűbb, mert a BOOTP ügyfeleket mérsékelten különleges esetű DHCP ügyfeleknek tekinti. Néhány architektúra összetett beállítást igényel az ügyfelek BOOTP indításához. Ebben az esetben olvasd el a 4.3.2. szakasz - Egy DHCP kiszolgáló beállítása részt. Amúgy minden bizonnyal könnyen eljutsz az allow bootp beállításig az adott ügyfél gépet tartalmazó alhálózatot beállító szakaszban, majd indítsd újra a dhcpd-t így: /etc/init.d/dhcpd3-server restart.

4.3.2. Egy DHCP kiszolgáló beállítása

Egy szabad DHCP kiszolgáló az ISC dhcpd. A Debian GNU/Linux rendszerben a dhcp3-server csomagban van. Itt egy példa beállító fájl (lásd: /etc/dhcp3/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;
}

E példában a servername nevű kiszolgáló végzi a DHCP és TFTP kiszolgáló és hálózati átjáró munkáját. Természetesen be kell állítani a tartomány-név opciókat, a kiszolgáló nevét és az ügyfél hardver címét. A filename opció a TFTP-n át elérendő fájl neve.

A dhcpd beállító fájl szerkesztése után, indítsd újra így: /etc/init.d/dhcpd3-server restart.

4.3.3. TFTP kiszolgáló bekapcsolása

A TFTP kiszolgáló indításához először győződj meg a tftpd bekapcsolt voltáról. Ehhez a /etc/inetd.conf fájlban általában ilyen sor szerepel:

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

A Debian csomagok általában ezt helyesen beállítják telepítésükkor.

Megjegyzés

Régen a TFTP kiszolgálók a /tftpboot könyvtárat használták képek adására. De a Debian GNU/Linux csomagok képesek a Fájlrendszer Hierarchia Szabványnak megfelelő könyvtárak használatára. Például a tftpd-hpa alapban a /var/lib/tftpboot könyvtárat használja. Állítsd be az e szakaszban adott beállító példákat így.

Nézz a /etc/inetd.conf fájlba és jegyezd meg az in.tftpd argumentumában adott könyvtárat[3]; ez kell alább. A /etc/inetd.conf módosításakor értesíteni kell a futó inetd folyamatot, hogy a fájl változott. Egy Debian gépen ez ilyen egyszerű: /etc/init.d/inetd reload; más gépeken keresd meg az inetd PID-et, és futtasd ezt: kill -HUP inetd-pid.

4.3.4. TFTP képek helyükre tétele

Most tedd a TFTP indító képet a 4.2.1. szakasz - A telepítő képek fellelése szerint a tftpd indító kép könyvtárba. Innen egy láncot kell csinálni arra a fájlra, melyet a tftpd egy adott ügyfél indítására használ majd. Sajnos, a fájl nevét a TFTP ügyfél határozza meg és erre nincs erős szabvány.

4.3.4.1. DECstation TFTP Images

For DECstations, there are tftpimage files for each subarchitecture, which contain both kernel and installer in one file. The naming convention is subarchitecture/netboot-boot.img. Copy the tftpimage file you would like to use to /tftpboot/tftpboot.img if you work with the example BOOTP/DHCP setups described above.

The DECstation firmware boots by TFTP with the command boot #/tftp, where # is the number of the TurboChannel device from which to boot. On most DECstations this is „3”. If the BOOTP/DHCP server does not supply the filename or you need to pass additional parameters, they can optionally be appended with the following syntax:

boot #/tftp/filename param1=value1 param2=value2 ...

Several DECstation firmware revisions show a problem with regard to net booting: the transfer starts, but after some time it stops with an a.out err. This can have several reasons:

  1. The firmware does not respond to ARP requests during a TFTP transfer. This leads to an ARP timeout and the transfer stops. The solution is to add the MAC address of the Ethernet card in the DECstation statically to the ARP table of the TFTP server. This is done by running arp -s IP-address MAC-address as root on the machine acting as TFTP server. The MAC-address of the DECstation can be read out by entering cnfg at the DECstation firmware prompt.

  2. The firmware has a size limit on the files that can be booted by TFTP.

There are also firmware revisions that cannot boot via TFTP at all. An overview about the different firmware revisions can be found at the NetBSD web pages: http://www.netbsd.org/Ports/pmax/board-list.html#proms.



[3] A -l az in.tftpd egyes verzióiban az összes kérés rendszer-naplóba naplózását kapcsolja be; ez hasznos indítási hibák vizsgálatára.