4.5. Pregătirea fișierelor pentru pornirea prin rețea utilizînd TFTP

Dacă mașina dvs. este conectată la o rețea locală, este posibil s-o puteți porni prin rețea de pe o altă mașină, utilizând TFTP. Dacă intenționați să porniți sistemul de instalare de pe o altă mașină, fișierele de pornire vor trebui să fie plasate în anumite locații de pe acea mașină, iar mașina să fie configurată să accepte pornirea mașinii dvs. specifice.

Trebuie să configurați un server TFTP și, pentru multe mașini, un server DHCP sau un server BOOTP, de asemenea.

BOOTP este un protocol IP care informează un calculator despre adresa sa IP și de unde poate obține o imagine de pornire din rețea. Protocolul de configurare dinamică a gazdei („Dynamic Host Configuration Protocol”: DHCP) este o extensie mai flexibilă, compatibilă cu versiunea inversă a BOOTP. Unele sisteme pot fi configurate numai prin DHCP.

Protocolul de transfer de fișiere trivial („Trivial File Transfer Protocol”: TFTP) este utilizat pentru a transfera imaginea de pornire către client. Teoretic, poate fi folosit orice server, pe orice platformă, care implementează aceste protocoale. În exemplele din această secțiune, vom furniza comenzi pentru SunOS 4.x, SunOS 5.x (alias Solaris) și GNU/Linux.

[Notă] Notă

Pentru un server Debian GNU/Linux vă recomandăm tftpd-hpa. Este scris de același autor ca încărcătorul de pornire syslinux și, prin urmare, este mult mai puțin probabil să provoace probleme. O alternativă bună este atftpd.

4.5.1. Configurarea unui server DHCP

Un server DHCP cu software liber este ISC dhcpd. Pentru Debian GNU/Linux, este recomandat pachetul isc-dhcp-server. Iată un exemplu de fișier de configurare pentru acesta (consultați „/etc/dhcp/dhcpd.conf”):

option domain-name "exemplu.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 "numele-serverului";

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 "numele-serverului";
  next-server numele-serverului;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

În acest exemplu, există un server numele-serverului care realizează toată munca serverului DHCP, serverului TFTP și a pasarelei de rețea (porții de acces la rețea). Aproape sigur va trebui să schimbați opțiunile de nume de domeniu, precum și numele serverului și adresa plăcii Ethernet a clientului. Opțiunea nume fișier trebuie să fie numele fișierului care va fi preluat prin TFTP.

După ce ați editat fișierul de configurare al demonului dhcp „dhcpd”, reporniți-l cu comanda: /etc/init.d/isc-dhcp-server restart.

4.5.1.1. Activarea pornirii PXE în configurația DHCP

Iată un alt exemplu pentru un fișier dhcp.conf folosind metoda „Mediul de executare de pre-pornire” („Pre-boot Execution Environment”: PXE) a TFTP.

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
# --- Următorul paragraf trebuie modificat pentru a se potrivi cu cazul dvs: ---
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)
# --- adresa pasarelei/porții de acces care poate fi diferită în cazul dvs. ---
# --- (accesul la internet, de exemplu) ---
  option routers 192.168.1.1;
# indicate the dns you want to use
# --- indicați DNS-ul pe care doriți să-l utilizați ---
  option domain-name-servers 192.168.1.3;
}

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

N.T.: am lăsat intacte comentariile în limba engleză, pentru ca utilizatorului să-i fie mai ușor de găsit blocurile care trebuiesc modificate; oferind dedesubtul acestor comentarii, traducerea lor în limba română. Rețineți că pentru pornirea PXE, numele de fișier al clientului pxelinux.0 este un încărcător de pornire, nu o imagine de nucleu (a se vedea Secțiune 4.5.4, „Mutați Imaginile TFTP la locul lor” mai jos).

Dacă mașina dvs. utilizează UEFI pentru a porni, va trebui să specificați un încărcător de pornire adecvat pentru mașinile UEFI, de exemplu:

group {
  next-server 192.168.1.3;
  host tftpclient {
# tftp client hardware address
# --- adresa plăcii Ethernet a clientului tftp (adresa ce apare mai jos, e una fictivă)  ;) ---
  hardware ethernet  00:10:DC:27:6C:15;
  filename "debian-installer/amd64/bootnetx64.efi";
 }
}

4.5.2. Configurarea unui server BOOTP

Există două servere BOOTP disponibile pentru GNU/Linux. Primul este CMU bootpd. Celălalt este de fapt un server DHCP: ISC dhcpd. În Debian GNU/Linux acestea sunt conținute în pachetele bootp și, respectiv, isc-dhcp-server.

Pentru a utiliza CMU bootpd, trebuie mai întâi să decomentați (sau să adăugați) linia relevantă în fișierul /etc/inetd.conf. În Debian GNU/Linux, puteți rula: update-inetd --enable bootps, și apoi /etc/init.d/inetd reload, pentru a face acest lucru. În cazul în care serverul dvs. BOOTP nu rulează Debian, linia în cauză ar trebui să arate astfel:

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

Acum, trebuie să creați un fișier /etc/bootptab. Acesta are același tip de format familiar și criptic ca vechile fișiere BSD printcap, termcap și disktab. Consultați pagina de manual bootptab pentru mai multe informații. Pentru CMU bootpd, va trebui să știți adresa plăcii Ethernet (MAC) a clientului. Iată un fișier /etc/bootptab de exemplu:

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

Va trebui să schimbați cel puțin opțiunea ha, care specifică adresa plăcii Ethernet a clientului. Opțiunea bf specifică fișierul pe care un client ar trebui să îl recupereze prin TFTP; consultați Secțiune 4.5.4, „Mutați Imaginile TFTP la locul lor” pentru mai multe detalii.

Prin contrast, configurarea BOOTP cu ISC dhcpd este foarte ușoară, deoarece tratează clienții BOOTP ca pe un caz moderat special de clienți DHCP. Unele arhitecturi necesită o configurație complexă pentru pornirea clienților prin BOOTP. Dacă cea a dvs. este una dintre acestea, citiți secțiunea Secțiune 4.5.1, „Configurarea unui server DHCP”. În caz contrar, probabil că veți putea scăpa adăugând pur și simplu directiva allow bootp la blocul de configurare pentru subrețeaua care conține clientul în fișierul /etc/dhcp/dhcpd.conf, și să reporniți dhcpd cu comanda /etc/init.d/isc-dhcp-server restart.

4.5.3. Activarea serverului TFTP

Pentru a pregăti serverul TFTP, mai întâi trebuie să vă asigurați că tftpd este activat.

În cazul tftpd-hpa există două moduri în care serviciul poate fi rulat. Poate fi pornit la cerere de demonul inetd al sistemului sau poate fi configurat să ruleze ca un demon independent. Care dintre aceste metode este utilizată este selectată atunci când pachetul este instalat și poate fi schimbată prin reconfigurarea pachetului.

[Notă] Notă

Din punct de vedere istoric, serverele TFTP foloseau /tftpboot ca director din care să servească imagini. Cu toate acestea, pachetele Debian GNU/Linux pot folosi alte directoare pentru a se conforma cu Standardul de ierarhie a sistemului de fișiere („Filesystem Hierarchy Standard”: FHS). De exemplu, tftpd-hpa utilizează în mod implicit directorul /srv/tftp. Poate fi necesar să ajustați exemplele de configurare din această secțiune în consecință.

Toate alternativele in.tftpd disponibile în Debian ar trebui să înregistreze cererile TFTP în jurnalele de sistem în mod implicit. Unele dintre ele acceptă un argument -v pentru a crește nivelul de detalii al informațiilor. Este recomandat să verificați aceste mesaje de jurnal în cazul unor probleme de pornire deoarece sunt un bun punct de plecare pentru diagnosticarea cauzei erorilor.

4.5.4. Mutați Imaginile TFTP la locul lor

După aceea, plasați imaginea de pornire TFTP de care aveți nevoie, așa cum se găsește în Secțiune 4.2.1, „Unde găsiți fișierele de instalare”, în directorul de imagini de pornire tftpd. Poate fi necesar să faceți o legătură de la acel fișier către fișierul pe care tftpd îl va folosi pentru pornirea unui anumit client. Din păcate, numele fișierului este determinat de clientul TFTP și nu există standarde stabilite.

Pentru pornirea PXE, tot ceea ce aveți nevoie este configurat în fișierul de arhivă comprimată netboot/netboot.tar.gz. Pur și simplu extrageți această arhivă comprimată în directorul de imagini de pornire al tftpd. Asigurați-vă că serverul dvs. dhcp este configurat să paseze pxelinux.0 la tftpd ca nume de fișier pentru pornire. Pentru mașinile UEFI, va trebui să plasați un nume de imagine de pornire EFI adecvat (cum ar fi /debian-installer/amd64/bootnetx64.efi).