Skip to main content

PXE Server

Avant de suivre ce tutoriel, vous devez disposer d'un serveur ISC-DHCP fonctionnel sur le même serveur où vous souhaitez installer le PXE. Assurez-vous également d'avoir effectué une mise à jour du système avec la commande suivante :sudo apt update && sudo apt upgrade

Installation des utilitaires nécessaires

Installez les utilitaires Linux nécessaires ainsi qu'un serveur TFTP avec la commande suivante :sudo apt install syslinux-common syslinux-efi tftpd-hpa

Création du répertoire de configuration

Créez un répertoire pour stocker les fichiers de configuration :**sudo mkdir /tftpboot**Accédez au répertoire /usr/lib/syslinux/modules/efi64/ et copiez les fichiers suivants dans /tftpboot :**cp {ldlinux.e64,libutil.c32,menu.c32} /tftpboot**Copiez également le fichier suivant :**cp /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi /tftpboot**Accédez au répertoire /tftpboot et créez un sous-répertoire pxelinux.cfg :cd /tftpboot
mkdir pxelinux.cfg

Configuration du serveur TFTP

Modifiez le fichier de configuration TFTP avec la commande suivante :**vim /etc/default/tftpd-hpa**Assurez-vous que le contenu du fichier est conforme à ce qui suit :

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

N'oubliez pas de configurer votre pare-feu pour autoriser le port 69/UDP si nécessaire. Démarrez et activez le service TFTP :systemctl start tftpd-hpa
systemctl enable tftpd-hpa

Configuration du serveur DHCP

Ouvrez le fichier de configuration DHCP situé à l'adresse suivante : /etc/dhcp/dhcpd.conf. Ajoutez ces deux lignes à la configuration de votre sous-réseau DHCP :

next-server 192.168.1.5;
option bootfile-name "syslinux.efi";

Remplacez 192.168.1.5 par l'adresse IP de votre serveur PXE.

Exemple de configuration DHCP complète :

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.106 192.168.0.200;
    option routers 192.168.0.1;
    default-lease-time 3600;
    max-lease-time 86400;
    next-server 192.168.0.105;
    option bootfile-name "syslinux.efi";
}

Redémarrez le service DHCP pour appliquer les modifications :systemctl restart isc-dhcp-server

Ajout des fichiers d'installation Debian

Créez un répertoire pour l'ISO Debian dans /tftpboot :sudo mkdir /tftpboot/DebianMontez votre fichier ISO Debian et copiez son contenu dans le répertoire créé précédemment :sudo mount your_iso_file.iso /mnt
sudo cp -r /mnt/* /tftpboot/Debian

Cette commande peut prendre du temps en fonction de la taille de votre fichier ISO.

Configuration du menu PXE

Accédez au répertoire /tftpboot/pxelinux.cfg et créez un fichier nommé default :vim /tftpboot/pxelinux.cfg/defaultAjoutez la configuration suivante pour Debian Net Boot :

UI menu.c32

LABEL Debian Net Boot
MENU LABEL Debian
KERNEL debian/install.amd/vmlinuz
APPEND initrd=Debian/install.amd/initrd.gz
TEXT HELP
Installation minimale de Debian.
ENDTEXT

Les fichiers spécifiés (vmlinuz et initrd.gz) doivent être situés dans le répertoire /tftpboot/Debian/install.amd.

Exemple d'arborescence des fichiers dans /tftpboot (peuvent être différent selon les images) :

/tftpboot/
├── Debian/
│   ├── install.amd/
│   │   ├── vmlinuz
│   │   ├── initrd.gz
├── ldlinux.e64
├── libutil.c32
├── menu.c32
├── pxelinux.cfg/
│   ├── default
├── syslinux.efi

Ajout d'autres systèmes d'exploitation (exemple Ubuntu)

Pour ajouter un autre système, comme Ubuntu, utilisez une configuration similaire en modifiant les chemins et noms des fichiers correspondants.Exemple pour Ubuntu :

UI menu.c32

LABEL Ubuntu Net Boot
MENU LABEL Ubuntu
KERNEL ubuntu/install/amd64/linux
APPEND initrd=ubuntu/install/amd64/initrd.gz
TEXT HELP
Installation minimale d'Ubuntu.
ENDTEXT

Finalisation

Redémarrez votre service TFTP pour finaliser la configuration :systemctl restart tftpd-hpa

Votre serveur PXE est maintenant configuré et prêt à être utilisé !