In questo articolo, discutiamo su come configurare tftpboot, inclusa l'installazione dei pacchetti necessari e le configurazioni di tftpboot.
Il servizio di avvio TFTP viene utilizzato principalmente per eseguire l'installazione del sistema operativo su una macchina remota per la quale non si dispone dell'accesso fisico. Per eseguire correttamente l'installazione del sistema operativo, dovrebbe esserci un modo per riavviare il server remoto, utilizzando wakeonlan o qualcuno che lo riavvii manualmente o in altri modi.
In questi scenari, è possibile configurare i servizi tftpboot di conseguenza e l'installazione del sistema operativo può essere eseguita in remoto (è necessario disporre del file di configurazione autoyast per automatizzare i passaggi di installazione del sistema operativo).
Viene presentata la procedura passo passo in questo articolo per SLES10-SP3 nell'architettura a 64 bit. Tuttavia, questi passaggi sono praticamente simili a qualsiasi altra distribuzione Linux.
Pacchetti richiesti
I seguenti pacchetti devono essere installati per la configurazione di tftpboot.
- Pacchetti di servizi DHCP:dhcp-3.0.7-7.5.20.x86_64.rpm e dhcp-server-3.0.7-7.5.20.x86_64.rpm
- pacchetto tftpboot:tftp-0.48-1.6.x86_64.rpm
- Pacchetto pxeboot:syslinux-3.11-20.14.26.x86_64.rpm
Installazione del pacchetto
Installa i pacchetti per i servizi del server DHCP:
$ rpm -ivh dhcp-3.0.7-7.5.20.x86_64.rpm Preparing... ########################################### [100%] 1:dhcp ########################################### [100%] $ rpm -ivh dhcp-server-3.0.7-7.5.20.x86_64.rpm Preparing... ########################################### [100%] 1:dhcp ########################################### [100%] $ rpm -ivh tftp-0.48-1.6.x86_64.rpm $ rpm -ivh syslinux-3.11-20.14.26.x86_64.rpm
Dopo aver installato il pacchetto syslinux, il file pxelinux.0 verrà creato nella directory /usr/share/pxelinux/. Questo è necessario per caricare il kernel di installazione e le immagini initrd sulla macchina client.
Verifica che i pacchetti siano installati correttamente.
$ rpm -qa | grep dhcp $ rpm -qa | grep tftp
Scarica il tftpserver appropriato dal repository della tua rispettiva distribuzione Linux.
Passaggi per configurare tftpboot
Fase 1:crea la directory /tftpboot
Crea la directory tftpboot nella directory principale ( / ) come mostrato di seguito.
# mkdir /tftpboot/
Fase 2:copia l'immagine pxelinux
L'immagine PXE Linux sarà disponibile dopo aver installato il pacchetto syslinux. Copialo nel percorso /tftpboot come mostrato di seguito.
# cp /usr/share/syslinux/pxelinux.0 /tftpboot
Fase 3:crea il punto di montaggio per ISO e monta l'immagine ISO
Supponiamo di installare la distribuzione Linux SLES10 SP3 su un server remoto. Se hai il DVD SUSE10-SP3 inseriscilo nell'unità o monta l'immagine ISO che hai. Qui, l'immagine iso è stata montata come segue:
# mkdir /tftpboot/sles10_sp3 # mount -o loop SLES-10-SP3-DVD-x86_64.iso /tftpboot/sles10_sp3
Fare riferimento al nostro precedente articolo su Come montare e visualizzare i file ISO.
Fase 4:copia le immagini vmlinuz e initrd in /tftpboot
Copia l'initrd nella directory tftpboot come mostrato di seguito.
# cd /tftpboot/sles10_sp3/boot/x86_64/loader # cp initrd linux /tftpboot/
Fase 5:crea la directory pxelinux.cfg
Crea la directory pxelinux.cfg in /tftpboot e definisci le definizioni di avvio pxe per il client.
# mkdir /tftpboot/pxelinux.cfg # cat >/tftpboot/pxelinux.cfg/default default linux label linux kernel linux append initrd=initrd showopts instmode=nfs install=nfs://192.168.1.101/tftpboot/sles10_sp3/
Le seguenti opzioni vengono utilizzate per,
- kernel:specifica dove trovare il kernel di installazione di Linux sul server TFTP.
- install – specifica gli argomenti di avvio da passare al kernel di installazione.
Come per le voci sopra, la modalità di installazione nfs viene utilizzata per servire gli RPM di installazione e i file di configurazione. Quindi, avere l'impostazione nfs in questa macchina con la directory /tftpboot nell'elenco esportato. È possibile aggiungere l'opzione "autoyast" con il file di configurazione di autoyast per automatizzare i passaggi di installazione del sistema operativo, altrimenti è necessario eseguire manualmente i passaggi di installazione.
Fase 6:cambia il proprietario e l'autorizzazione per la directory /tftpboot
Assegna nessuno:nessuno alla directory /tftpboot.
# chown nobody:nobody /tftpboot # chmod 777 /tftpboot
Passo 7:Modifica /etc/dhcpd.conf
Modificare /etc/dhcpd.conf come mostrato di seguito.
# cat /etc/dhcpd.conf ddns-update-style none; default-lease-time 14400; filename "pxelinux.0"; # IP address of the dhcp server nothing but this machine. next-server 192.168.1.101; subnet 192.168.1.0 netmask 255.255.255.0 { # ip distribution range between 192.168.1.1 to 192.168.1.100 range 192.168.1.1 192.168.1.100; default-lease-time 10; max-lease-time 10; }
Specificare l'interfaccia in /etc/syslinux/dhcpd per ascoltare le richieste DHCP provenienti dai client.
# cat /etc/syslinux/dhcpd | grep DHCPD_INTERFACE DHCPD_INTERFACE=”eth1”;
Qui, questa macchina ha l'indirizzo IP di 192.168.1.101 sul dispositivo eth1. Quindi, specifica eth1 per DHCPD_INTERFACE come mostrato sopra.
In una nota correlata, fare riferimento al nostro precedente articolo su 7 esempi per configurare l'interfaccia di rete usando ifconfig.
Passo 8:Modifica /etc/xinetd.d/tftp
Modificare il file /etc/xinetd.d/tftp per riflettere quanto segue. Per impostazione predefinita, il valore per il parametro disable è "yes", assicurati di modificarlo su "no" e devi cambiare la voce server_args in -s /tftpboot.
# cat /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }
Fase 9:nessuna modifica in /etc/xinetd.conf
Non è necessario modificare il file etc/xinetd.conf. Utilizzare i valori predefiniti specificati nel file xinetd.conf.
Fase 10:riavvia i servizi xinetd, dhcpd e nfs
Riavvia questi servizi come mostrato di seguito.
# /etc/init.d/xinetd restart # /etc/init.d/dhcpd restart # /etc/init.d/nfsserver restart
Dopo aver riavviato i servizi nfs, puoi visualizzare l'elenco delle directory esportate (/tftpboot) con il seguente comando,
# showmount -e
Infine, la configurazione di tftpboot è pronta e ora la macchina client può essere avviata dopo aver modificato il primo dispositivo di avvio come "rete" nelle impostazioni del BIOS.
Se riscontri un errore tftp, puoi eseguire la risoluzione dei problemi recuperando alcuni file tramite il servizio tftpd.
Recuperare alcuni file dal server tftp per assicurarsi che il servizio tftp funzioni correttamente utilizzando il client tftp. Supponiamo che il file sample.txt sia presente nella directory /tftpboot.
$ tftp -v 192.168.1.101 -c get sample.txt