PXE - Pre-Execution Environment
PXE est un chargeur de boot qui permet de charger une image via TFTP. La contrainte majeure de pouvoir booter la machine via PXE soit qu niveau de la ROM de sa carte réseau, soit au niveau du BIOS, voire même grâce à un outil de boot depuis une session lancé DOS.
On peut, via TFTP, télécharger une image de boot PXE; une fois en mémoire, cette image PXE permet se booter de manière sélective plusieurs images (locales, ou distantes), notamment celle présente sur le serveur TFTP.
Nota bene: les procédures illustrées ici ont été testées pour une distribution Debian Etch
- installer un serveur TFTP (eg. atftp) et syslinux pour un code de démarrage PXE
# apt-get install atftpd syslinux
vérifier l'existence du répertoire /tftpboot (le créer le cas échéant); y copier le fichier pxelinux.0 :
# cp -a /usr/lib/syslinux/pxelinux.0 /tftpboot/
éditer le fichier de configuration du serveur dhcp /etc/dhcp/dhcpd.conf :
default-lease-time 600; max-lease-time 7200; option domain-name "mon-domaine.com"; option domain-name-servers ns.mon-domaine.com; authoritative; subnet 192.168.1.0 netmask 255.255.255.0 { #ici, on déclare le nom du fichier à charger en mémoire par les clients via TFTP filename "pxelinux.0"; next-server 192.168.1.1; option domain-name "domain.net"; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option domain-name-servers ns.domain.net; option routers gw.domain.net; range 192.168.1.100 192.168.1.200; }
- redémarrer le serveur dhcp
#/etc/init.d/dhcp3-server restart
créer le répertoire de configuration de TFTP /tftpboot/pxelinux.cfg/
éditer le fichier de configuration /tftpboot/pxelinux.cfg/default :
default linux label linux kernel linux append load_ramdisk=1 initrd=initrd root=01:00 ipappend 1
documentation : http://syslinux.zytor.com/pxe.php