Dans cet article, discutons de la configuration de tftpboot, y compris l'installation des packages nécessaires et des configurations de tftpboot.
Le service de démarrage TFTP est principalement utilisé pour effectuer l'installation du système d'exploitation sur une machine distante pour laquelle vous n'avez pas l'accès physique. Afin d'effectuer l'installation du système d'exploitation avec succès, il devrait y avoir un moyen de redémarrer le serveur distant - soit en utilisant wakeonlan ou quelqu'un le redémarrant manuellement ou d'une autre manière.
Dans ces scénarios, vous pouvez configurer les services tftpboot en conséquence et l'installation du système d'exploitation peut être effectuée à distance (vous devez disposer du fichier de configuration autoyast pour automatiser les étapes d'installation du système d'exploitation).
La procédure étape par étape est présentée dans cet article pour le SLES10-SP3 en architecture 64 bits. Cependant, ces étapes sont à peu près similaires à toutes les autres distributions Linux.
Packages requis
Les packages suivants doivent être installés pour la configuration de tftpboot.
- Packages de services DHCP :dhcp-3.0.7-7.5.20.x86_64.rpm et dhcp-server-3.0.7-7.5.20.x86_64.rpm
- Paquet tftpboot :tftp-0.48-1.6.x86_64.rpm
- Paquet pxeboot :syslinux-3.11-20.14.26.x86_64.rpm
Installation du paquet
Installez les packages pour les services du serveur 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
Après avoir installé le package syslinux, le fichier pxelinux.0 sera créé sous le répertoire /usr/share/pxelinux/. Ceci est nécessaire pour charger le noyau d'installation et les images initrd sur la machine cliente.
Vérifiez que les packages sont installés avec succès.
$ rpm -qa | grep dhcp $ rpm -qa | grep tftp
Téléchargez le serveur tftp approprié à partir du référentiel de votre distribution Linux respective.
Étapes pour configurer tftpboot
Étape 1 :Créer le répertoire /tftpboot
Créez le répertoire tftpboot sous le répertoire racine ( / ) comme indiqué ci-dessous.
# mkdir /tftpboot/
Étape 2 :Copiez l'image pxelinux
L'image PXE Linux sera disponible une fois que vous aurez installé le package syslinux. Copiez ceci dans le chemin /tftpboot comme indiqué ci-dessous.
# cp /usr/share/syslinux/pxelinux.0 /tftpboot
Étape 3 :Créez le point de montage pour l'ISO et montez l'image ISO
Supposons que nous allons installer la distribution Linux SLES10 SP3 sur un serveur distant. Si vous avez le DVD SUSE10-SP3, insérez-le dans le lecteur ou montez l'image ISO que vous avez. Ici, l'image iso a été montée comme suit :
# mkdir /tftpboot/sles10_sp3 # mount -o loop SLES-10-SP3-DVD-x86_64.iso /tftpboot/sles10_sp3
Reportez-vous à notre article précédent sur Comment monter et afficher des fichiers ISO.
Étape 4 :Copiez les images vmlinuz et initrd dans /tftpboot
Copiez l'initrd dans le répertoire tftpboot comme indiqué ci-dessous.
# cd /tftpboot/sles10_sp3/boot/x86_64/loader # cp initrd linux /tftpboot/
Étape 5 :Créer le répertoire pxelinux.cfg
Créez le répertoire pxelinux.cfg sous /tftpboot et définissez les définitions de démarrage pxe pour le 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/
Les options suivantes sont utilisées pour,
- kernel - spécifie où trouver le noyau d'installation Linux sur le serveur TFTP.
- install - spécifie les arguments de démarrage à transmettre au noyau d'installation.
Conformément aux entrées ci-dessus, le mode d'installation nfs est utilisé pour servir les RPM d'installation et les fichiers de configuration. Donc, configurez le nfs sur cette machine avec le répertoire /tftpboot dans la liste exportée. Vous pouvez ajouter l'option "autoyast" avec le fichier de configuration autoyast pour automatiser les étapes d'installation du système d'exploitation, sinon vous devrez exécuter les étapes d'installation manuellement.
Étape 6 :Modifiez le propriétaire et l'autorisation pour le répertoire /tftpboot
Affectez personne :personne au répertoire /tftpboot.
# chown nobody:nobody /tftpboot # chmod 777 /tftpboot
Étape 7 :Modifier /etc/dhcpd.conf
Modifiez le fichier /etc/dhcpd.conf comme indiqué ci-dessous.
# 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; }
Spécifiez l'interface dans /etc/syslinux/dhcpd pour écouter les requêtes DHCP provenant des clients.
# cat /etc/syslinux/dhcpd | grep DHCPD_INTERFACE DHCPD_INTERFACE=”eth1”;
Ici, cette machine a l'adresse IP 192.168.1.101 sur le périphérique eth1. Donc, spécifiez eth1 pour DHCPD_INTERFACE comme indiqué ci-dessus.
Sur une note connexe, reportez-vous à notre article précédent sur 7 exemples pour configurer l'interface réseau à l'aide d'ifconfig.
Étape 8 :Modifier /etc/xinetd.d/tftp
Modifiez le fichier /etc/xinetd.d/tftp pour refléter ce qui suit. Par défaut, la valeur du paramètre de désactivation est "oui", assurez-vous de le modifier en "non" et vous devez changer l'entrée server_args en -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 }
Étape 9 :Aucune modification dans /etc/xinetd.conf
Il n'est pas nécessaire de modifier le fichier etc/xinetd.conf. Utilisez les valeurs par défaut spécifiées dans le fichier xinetd.conf.
Étape 10 :Redémarrez les services xinetd, dhcpd et nfs
Redémarrez ces services comme indiqué ci-dessous.
# /etc/init.d/xinetd restart # /etc/init.d/dhcpd restart # /etc/init.d/nfsserver restart
Après avoir redémarré les services nfs, vous pouvez afficher la liste des répertoires exportés (/tftpboot) par la commande suivante,
# showmount -e
Enfin, la configuration de tftpboot est prête et la machine cliente peut maintenant être démarrée après avoir changé le premier périphérique de démarrage en tant que "réseau" dans les paramètres du BIOS.
Si vous rencontrez une erreur tftp, vous pouvez effectuer le dépannage en récupérant certains fichiers via le service tftpd.
Récupérez un fichier du serveur tftp pour vous assurer que le service tftp fonctionne correctement à l'aide du client tftp. Supposons que le fichier sample.txt soit présent dans le répertoire /tftpboot.
$ tftp -v 192.168.1.101 -c get sample.txt