This is an old revision of the document!
Table of Contents
Installation d'un serveur de boot PXE
Un serveur de boot PXE est un serveur permettant à d'autres machines de démarrer depuis le réseau. Le serveur de boot PXE offre un service DHCP et un TFTP. Le DHCP permet aux clients de récupérer une adresse IP alors que le TFTP est chargé d'envoyer les fichiers de boot. On peut voir là dedans plusieurs intérêts dont le fait de pouvoir se passer de clé USB ou CD/DVD pour installer les systèmes d'exploitation.
Installation
La première étape est d'installer un serveur DHCP si ce n'est pas déjà fait. On ne détaillera pas cette manipulation ici puisqu'elle est disponible sur cette page. On apporte tout de même une légère modification au fichier /etc/dhcp/dhcpd.conf en ajoutant avant la déclaration du sous-réseau les deux lignes suivantes.
filename "pxelinux.0" next-server 192.168.0.252
La première ligne donne le fichier contenant l'amorce réseau, la seconde donne l'adresse du serveur où se trouve le fichier.
Une fois le serveur DHCP en place, on peut installer les paquets permettant d'offrir la seconde partie du serveur PXE à savoir le serveur TFTP.
aptitude install tftpd-hpa pxe syslinux
Configuration TFTP
Un serveur TFTP se comporte plus ou moins comme un serveur FTP mais est basé sur le protocole TFTP qui est plus basique et moins sûr que FTP. Cependant, pour un réseau local le serveur TFTP est tout de même efficace et à l'avantage de nécessité très peu de configuration.
Ici nous allons simplement dire au serveur où se trouvent les fichiers à servir sur le réseau. On édite pour cela le fichier /etc/default/tftpd-hpa. On affecte à la variable TFTP_DIRECTORY la valeur /srv/tftp et on crée bien entendu ce répertoire.
mkdir /srv/tftp
Maintenant, il faut mettre à disposition les fichiers de base du boot PXE. Ceux-ci se trouvent dans le répertoire /usr/lib/syslinux. On copie alors plusieurs fichiers qui sont nécessaires au bon fonctionnement du serveur.
cd /usr/lib/syslinux for i in chain.c32 mboot.c32 menu.c32 pxelinux.0 \ reboot.c32 gpxelinux.0 memdisk vesamenu.c32 do cp ${i} /srv/tftp done
Enfin on configure le démon PXE en lui donnant les informations concernant l'interface et l'adresse réseau à utiliser, le répertoire de base du serveur TFTP et éventuellement le nom de domaine du réseau. On édite le fichier /etc/pxe.conf et on change ou édite quelques lignes.
interface=eth0 default_address=192.168.0.252 ... tftpdbase=/srv/tftp domain=chezmoi.me
Menu de boot minimal
Dans un premier temps, et pour pouvoir tester le boot PXE, on va mettre en place un menu très simple. Il contiendra 2 choix possibles : démarrer sur le disque local ou redémarrer la machine.
On commence par créer un répertoire qui contiendra tous les fichiers de configuration permettant de définir le ou les menus à afficher.
mkdir /srv/tftp/pxelinux.cfg/
Pour se faciliter la vie, on peut commencer par télécharger un fichier qui permettra d'utiliser le clavier en AZERTY french.kdb. On place ce fichier dans le répertoire /srv/tftp/pxelinux.cfg. Maintenant, on édite le fichier /srv/tftp/pxelinux.cfg/default et on y met le contenu suivant.
default vesamenu.c32 prompt 0 kdbmap french.kdb noescape 1 timeout 300 label bootlocal menu label ^Local Boot localboot 0 label reboot menu label ^Reboot kernel reboot.c32
Une fois le menu créé, on donne les droits d'accès qui vont bien pour que le serveur PXE fonctionne.
chown -R tftp:root /srv/tftp chmod -R 744 /srv/tftp
Puis on peut démarrer une machine pour tester que le boot PXE fonctionne. On doit normalement avoir un menu avec les 2 entrées et un délai de 30 secondes.
Menu de boot d'un OS : l'exemple de Debian
PLACEHOLDER