User Tools

Site Tools


infra:pxe

PXE, Preboot eXecution Environment est le standard sur PC (marche pas sur Mac) pour le démarrage par le réseau. La plupart des cartes réseaux intègrent la fonctionnalité mais parfois il faut l'activer dans le BIOS ou l'UEFI. Ça permet de démarrer un PC sans disque dur, de démarrer une installation d'un Linux ou autre.

Sous le terme PXE se cache en fait :

  • PXE est une option des serveurs DHCP, donc on parle de réseau local ethernet ici.
  • PXE a ensuite besoin d'un serveur TFTP qui peut être différent du DHCP. On y installe en général un boot loader : pxelinux du projet syslinux. Les fichiers de configurations présents sur le serveur TFTP sont donc presque les mêmes que ceux sur un CD ou une clef USB d'installation Linux (isolinux)
  • Une fois l'OS téléchargé et démarré par le PC, l'installeur Debian/Ubuntu a besoin de télécharger son fichier de configuration. On l'héberge sur un serveur web, qui peut être n'importe où, sur internet si besoin.

Système UEFI et BIOS à menu installé au FUZ :

Paquets à installer sur une debian (stretch) :

sudo apt install isc-dhcp-server nfs-kernel-server tftpd-hpa pxelinux syslinux-efi syslinux-common

Configuration du serveur DHCP éditer /etc/dhcp/dhcpd.conf Ajouter aux options globales :

allow booting;
allow bootp;

et à la configuration du sous-réseau :

subnet 192.168.42.0 netmask 255.255.255.0 {
       	range 192.168.42.50 192.168.42.200;
       	option subnet-mask 255.255.255.0;
       	option broadcast-address 192.168.42.255;
       	option routers 192.168.42.1;

	option tftp-server-name "192.168.42.1";
	option root-path "/var/lib/tftp/";
	next-server 192.168.42.1;

	# Select which file to send depending on the architecture
        if option arch = 00:06 {
        	filename "efi32/syslinux.efi";
    	} else if option arch = 00:07 {
        	filename "efi64/syslinux.efi";
    	} else if option arch = 00:09 {
    	    filename "efi64/syslinux.efi";
    	} else {
    	    filename "bios/pxelinux.0";
    	}
}

L'arborescence doit être la suivante (par rapport à la racine du serveur PXE définie dans le serveur DHCP (root-path): Dossiers bios, efi32 et efi64 contenant tous les fichiers .c32 et le fichier pxelinux.0 Dossier boot contenant les OS à démarrer (tout était à la racine du PXE avant)

TODO: mettre une archive avec tous ces fichiers + le script qui génère les menus.

infra/pxe.txt · Last modified: 2023-02-02 22:06 by 127.0.0.1