Preparazione dei file per l'avvio TFTP da rete
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 o un server
RARP o un server BOOTP.
Il RARP (Reverse Address Resolution
Protocol) è un metodo per comunicare ai client quale indirizzo IP usare.
In alternativa è possibile usare il protocollo BOOTP.
BOOTP è un protocollo IP che comunica a
un computer qual è il proprio indirizzo IP e dove può recuperare dalla rete
un'immagine per l'avvio.
Sui sistemi VMEbus esiste un'altra alternativa:
l'indirizzo IP può essere configurato manualmente nella ROM di
avvio.
Il DHCP (Dynamic Host Configuration
Protocol) è una estensione più flessibile ma compatibile all'indietro di
BOOTP. Alcuni sistemi possono essere configurati solo tramite DHCP.
Su PowerPC, se si possiede una macchina Power Macintosh NewWorld, è
consigliabile usare DHCP anziché BOOTP. Alcune delle macchine più recenti
non sono capaci di fare l'avvio usando BOOTP.
Diversamente dall'Open Firmware presente sulle macchine Sparc e PowerPC, la
console SRM non usa RARP per procurarsi l'indirizzo IP
e quindi si deve obbligatoriamente usare BOOTP per fare l'avvio da rete su
Alpha
I sistemi Alpha possono essere avviati dalla rete anche usando DECNet MOP
(Maintenance Operations Protocol) ma questo metodo non è trattato in questo
manuale. Presumibilmente l'operatore dell'assistenza OpenVMS sarà felice di
prestare il proprio aiuto per poter usare MOP per l'avvio di Linux su Alpha.
. È anche possibile inserire la configurazione IP per le
interfacce di rete direttamente dalla console SRM.
Alcune delle macchine HPPA più vecchie (p.e. 715/75) usano RBOOTD anziché
BOOTP, in Debian è disponibile il pacchetto rbootd.
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.
Per usare il metodo di avvio PXE (Pre-boot Execution Environment) di TFTP
è necessario un server TFTP con supporto per tsize.
Su &debian; questo tipo di server è contenuto nei pacchetti
atftpd e tftpd-hpa; si
consiglia l'uso di quest'ultimo.
&tftp-rarp.xml;
&tftp-bootp.xml;
&tftp-dhcp.xml;
Attivazione del server TFTP
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;
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
L'opzione -l attiva su alcune versioni di
in.tftpd la registrazione di tutte le richieste sul log
di sistema, è utile per la diagnosi degli errori durante l'avvio.
, 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.
Posizionamento delle immagini TFTP
Spostare le immagini TFTP di cui si ha bisogno (come descritto in
) 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 Power Machintosh NewWorld è necessario configurare il
bootloader yaboot come immagine di avvio TFTP. Sarà poi
yaboot a recuperare le immagini del kernel e del ramdisk
sempre tramite TFTP. Per l'avvio dalla rete usare
yaboot-netboot.conf, lo si deve copiare nella directory
TFTP e poi rinominarlo in yaboot.conf.
Per l'avvio PXE tutte le operazioni necessarie sono già state fatte in
netboot/netboot.tar.gz. Estrarre questo tarball nella
directory delle immagini di avvio tftpd, assicurarsi che
il server dhcp sia configurato per passare pxelinux.0
come file da avviare a tftpd.
Per l'avvio PXE tutte le operazioni necessarie sono già state fatte in
netboot/netboot.tar.gz. Estrarre questo tarball nella
directory delle immagini di avvio di tftpd, assicurarsi
che il server dhcp sia configurato per passare
/debian-installer/ia64/elilo.efi come file da avviare
a tftpd.
Immagini TFTP per DECstation
Per le DECstation esistono più file tftpimage, uno per ciascuna
sottoarchitettura, che contengono sia il kernel che l'installatore.
Il nome delle immagini segue questa convenzione:
sottoarchitettura/netboot-boot.img.
Se si usano le impostazioni di BOOTP/DHCP descritte in precedenza
copiare il file tftpimage che si vuole usare come
/tftpboot/tftpboot.img.
Il firmware DECstation fa l'avvio del sistema con TFTP usando il comando
boot #/tftp, dove
# è il numero del device TurboChannel da cui
avviare; sulla maggior parte delle Decstation è 3
. Se il
server BOOTP/DHCP non fornisce il nome del file o se si necessita di
passare altri parametri, si possono aggiungere usando questa sintassi:
boot #/tftp/nomefile param1=valore1 param2=valore2 ...
Parecchie versioni del firmware DECstation hanno un problema relativo
all'avvio da rete: il trasferimento inizia ma dopo un po' si ferma
restituendo a.out err. Questo problema
può avere varie cause:
Il firmware non risponde alle richieste ARP durante i trasferimenti TFTP.
Questo può comportare un timeout ARP e il blocco del trasferimento. La
soluzione è aggiungere staticamente l'indirizzo MAC della scheda Ethernet
della DECstation nella tabella ARP del server TFTP. Questa operazione può
essere fatta eseguendo arp -s
indirizzo-IP
indirizzo-MAC con l'utente root sulla
macchina che fa da server TFTP. L'indirizzo-MAC della DECstation può essere
letto inserendo cnfg al prompt del firmware DECstation.
Il firmware ha un limite sulla dimensione dei file che possono essere avviati
tramite TFTP.
Ci sono delle versioni del firmware che non possono essere assolutamente
avviate tramite TFTP. Una panoramica sulle varie versioni del firmware può
essere trovata nelle pagine web di NetBSD:
.
Avvio di macchine Alpha con TFTP
Su Alpha si deve specificare il nome del file (come percorso relativo alla
directory con l'immagine di avvio) usando l'opzione
-file del comando boot di SRM
oppure impostando la variabile d'ambiente BOOT_FILE.
In alternativa il nome del file può essere passato tramite BOOTP (con
dhcpd di ISC usare l'istruzione
filename). Diversamente da Open Firmware su SRM
non c'è un nome predefinito per il file quindi si
deve specificare il nome di un file con uno dei metodi
appena descritti.
Avvio di macchine SPARC con TFTP
Alcune architetture SPARC aggiungono il nome della sottoarchitettura al
nome del file, per esempio SUN4M
o SUN4C
.
Di conseguenza se la sottoarchitettura del proprio sistema è SUN4C e
il suo indirizzo IP è 192.168.1.3, il nome del file dovrebbe essere
C0A80103.SUN4C. Purtroppo ci sono anche altre
sottoarchitetture che usano file il cui nome è semplicemente
ip-del-client-in-hex. Un modo semplice per
determinare il codice in esadecimale dell'indirizzo IP è eseguire il
seguente comando nella shell (si suppone che l'IP della macchina sia
10.0.0.4).
$ printf '%.2x%.2x%.2x%.2x\n' 10 0 0 4
Per ottenere il corretto nome del file è necessario cambiare tutte le
lettere in maiuscole e, se necessario, aggiungere il nome della
sottoarchitettura.
Se tutti i passi sono stati eseguiti correttamente, usando il comando
boot net da OpenPROM dovrebbe iniziare il caricamento
dell'immagine. Se non è possibile trovare l'immagine, controllare nei log
del server tftp quale nome è stato usato per richiederla.
È anche possibile forzare alcuni sistemi sparc a cercare un particolare file
aggiungendone il nome alla fine del comando boot di OpenPROM, per esempio
boot net my-sparc.image. Questo file deve essere
nella directory in cui il server TFTP ricerca i file.
Avvio di macchine BVM/Motorola con TFTP
Per i sistemi BVM e Motorola VMEbus copiare i file &bvme6000-tftp-files;
in /tftpboot/.
Poi configurare le ROM d'avvio o il server BOOTP per caricare inizialmente i
file tftplilo.bvme o tftplilo.mvme
dal server TFTP. Si consulti il file tftplilo.txt della
propria sottoarchitettura per ulteriori informazioni sulla configurazione
specifica del sistema.
Avvio di macchine SGI con TFTP
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.
Avvio di Broadcom BCM91250A e BCM91480B con TFTP
Non è necessario fare una particolare configurazione di DHCP perché si deve
passare il percorso completo del file da caricare a CFE.