4.5. 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.

[Megjegyzés] Megjegyzés

For a Debian GNU/Linux server we recommend tftpd-hpa. It's written by the same author as the syslinux bootloader and is therefore least likely to cause issues. A good alternative is atftpd.

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

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

4.5.1.1. PXE indítás bekapcsolása a DHCP beállításban

Itt egy másik, indítás-előtti futtatási környezet (PXE) TFTP módot használó dhcp.conf példa.

option domain-name "example.com";

default-lease-time 600;
max-lease-time 7200;

allow booting;
allow bootp;

# The next paragraph needs to be modified to fit your case
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option broadcast-address 192.168.1.255;
# the gateway address which can be different
# (access to the internet for instance)
  option routers 192.168.1.1;
# indicate the dns you want to use
  option domain-name-servers 192.168.1.3;
}

group {
 next-server 192.168.1.3;
 host tftpclient {
# tftp client hardware address
  hardware ethernet  00:10:DC:27:6C:15;
  filename "pxelinux.0";
 }
}

A PXE indítás számára a pxelinux.0 ügyfél fájl neve egy boot betöltő, nem egy kernel kép (lásd az alábbi 4.5.4. szakasz - TFTP képek helyükre tétele részt).

If your machine uses UEFI to boot, you will have to specify a boot loader appropriate for UEFI machines, for example

group {
  next-server 192.168.1.3;
  host tftpclient {
# tftp client hardware address
  hardware ethernet  00:10:DC:27:6C:15;
  filename "debian-installer/amd64/bootnetx64.efi";
 }
}

4.5.2. 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 isc-dhcp-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.5.4. szakasz - TFTP képek helyükre tétele több részletért.

By contrast, setting up BOOTP with ISC dhcpd is really easy, because it treats BOOTP clients as a moderately special case of DHCP clients. Some architectures require a complex configuration for booting clients via BOOTP. If yours is one of those, read the section 4.5.1. szakasz - Egy DHCP kiszolgáló beállítása. Otherwise you will probably be able to get away with simply adding the allow bootp directive to the configuration block for the subnet containing the client in /etc/dhcp/dhcpd.conf, and restart dhcpd with /etc/init.d/isc-dhcp-server restart.

4.5.3. TFTP kiszolgáló bekapcsolása

To get the TFTP server ready to go, you should first make sure that tftpd is enabled.

In the case of tftpd-hpa there are two ways the service can be run. It can be started on demand by the system's inetd daemon, or it can be set up to run as an independent daemon. Which of these methods is used is selected when the package is installed and can be changed by reconfiguring the package.

[Megjegyzés] 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 /srv/tftp könyvtárat használja. Állítsd be az e szakaszban adott beállító példákat így.

All in.tftpd alternatives available in Debian should log TFTP requests to the system logs by default. Some of them support a -v argument to increase verbosity. It is recommended to check these log messages in case of boot problems as they are a good starting point for diagnosing the cause of errors.

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

Most tedd a TFTP indító képet a 4.2.1. szakasz - Where to Find Installation Files 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.

For PXE booting, everything you should need is set up in the netboot/netboot.tar.gz tarball. Simply extract this tarball into the tftpd boot image directory. Make sure your dhcp server is configured to pass pxelinux.0 to tftpd as the filename to boot. For UEFI machines, you will need to pass an appropriate EFI boot image name (such as /debian-installer/amd64/bootnetx64.efi).