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 di un 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.