Se la propria macchina è connessa a una rete locale allora è possibile avviarla tramite TFTP da un'altra macchina. Se si vuole avviare il sistema d'installazione da un'altra macchina è necessario che i file d'avvio siano contenuti in particolari directory di questa macchina e che sia configurata per gestire l'avvio della propria macchina.
È necessario attivare un server TFTP e, per più macchine un server DHCP.
Il DHCP (Dynamic Host Configuration Protocol) è una estensione più flessibile ma compatibile all'indietro di BOOTP. Alcuni sistemi possono essere configurati solo tramite DHCP.
Il TFTP (Trivial File Transfer Protocol) è usato per fornire l'immagine di avvio al client. Teoricamente si può usare un qualsiasi server, su qualsiasi architettura che implementi questo protocollo. Negli esempi di questa sezione sono presentati i comandi per SunOS 4.x, SunOS 5.x (noti come Solaris) e GNU/Linux.
Un server DHCP libero è dhcpd di ISC. In Debian GNU/Linux
si raccomanda il pacchetto dhcp3-server
. Segue
un esempio del file di configurazione per questo server (di solito
/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; }
In questo esempio c'è una macchina servername
che fa da server DHCP, da server TFTP e da gateway di rete. Sicuramente è
necessario cambiare le opzioni domain-name, il nome del server e anche
l'indirizzo hardware del client. Il valore dell'opzione
filename
deve essere il nome del file che
verrà recuperato tramite TFTP.
Dopo aver modificato il file di configurazione di dhcpd
riavviarlo con /etc/init.d/dhcpd3-server restart
.
Per avere un server TFTP pronto all'uso è necessario assicurarsi che
tftpd sia attivo. Di solito viene attivato da una riga
simile a questa in /etc/inetd.conf
:
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot
Solitamente i pacchetti Debian impostano correttamente il server durante l'installazione.
Storicamente i server TFTP hanno usato /tftpboot
come
directory dalla quale servire le immagini. Invece, i pacchetti Debian GNU/Linux
potrebbero usare una directory diversa in modo da essere conformi al
Filesystem Hierarchy Standard. Per esempio
tftpd-hpa
usa /var/lib/tftpboot
;
potrebbe essere necessario modificare gli esempi presenti in questa sezione
in base alla propria configurazione.
Cercare all'interno del file /etc/inetd.conf
la
directory usata come argomento di in.tftpd e prenderne
nota[2], sarà necessaria in seguito.
Se è stato necessario modificare /etc/inetd.conf
si deve
passare la nuova configurazione al processo inetd in
esecuzione, su una macchina Debian eseguire /etc/init.d/inetd
reload
; su macchine diverse si deve scoprire qual è l'ID del
processo inetd ed eseguire kill -HUP
.
pid-di-inetd
Se si intende installare Debian su una macchina SGI e il server TFTP è su una macchina GNU/Linux con Linux 2.4 è necessario eseguire comando seguente sul server:
# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
per disattivare il Path MTU discovery, in caso contrario la PROM delle SGI non può scaricare il kernel. Inoltre, assicurarsi che i pacchetti TFTP siano inviati da una porta inferiore alla 32767 altrimenti il trasferimento si interromperà dopo il primo pacchetto. Anche questo bug della PROM può essere aggirato con Linux 2.4.X eseguendo il comando seguente
# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
per regolare l'intervallo delle porte sorgente usate sul server TFTP Linux.
Spostare le immagini TFTP di cui si ha bisogno (come descritto in Sezione 4.2.1, «Dove trovare le immagini per l'installazione») nella directory delle immagini di avvio per TFTP. Potrebbe essere necessario fare un link da questa directory al file che tftpd dovrà utilizzare per l'avvio di un particolare client. Sfortunatamente il nome del file è stabilito dal client TFTP e non esiste uno standard.
Sulle macchine SGI si può fare affidamento su bootpd
per avere il nome del file TFTP; infatti può essere fornito con l'opzione
bf=
in /etc/bootptab
oppure
con l'opzione filename=
in
/etc/dhcpd.conf
.
[2]
Tutte le versioni di in.tftpd disponibili in Debian
registrano le richieste TFTP sul log di sistema e alcune versioni supportano
l'opzione -v
per aumentare la verbosità. In caso di
problemi d'avvio, si raccomanda di verificare i messaggi nel log poiché sono
un ottimo punto di partenza per la diagnosi della causa degli errori.