Boot PXE

Date: 2014-11-02

Tags: PXE info réseau serveur vieilleries

Il est possible de booter une machine sans disque dur, ni lecteur cd (ni même de clé usb). Beaucoup de cartes réseaux (j’utilise des 3com 3C905CX) ont une EEPROM qui contient un chargeur de boot réseau. Il y a donc plusieurs parties:

Il faut d’abord configurer le serveur DHCP, pour qu’il donne les paramètres de boot à la machine qui va le lui demander. Pour l’instant, je n’ai pas réussi à configurer dnsmasq pour avoir un serveur tftp sur une autre machine que le serveur dhcp, alors j’ai adapté… Comme le bootloader embarqué dans la carte va charger un autre bootloader (undionly.kpxe), qui lui, va charger le noyau, on va interroger le serveur DHCP deux fois. Ces deux accès sont distingués par le flag “userclass”

dhcp-boot=undionly.kpxe
dhcp-userclass=gPXE-booted,"gPXE"
dhcp-boot=net:gPXE-booted,http://192.168.3.3/pxe/boot.gpxe

dnsmasq est tellement bien fait qu’il a aussi un serveur tftp embarqué. Il suffit de rajouter les lignes suivantes dans le fichier /etc/dnsmasq.conf

enable-tftp
tftp-root=/tmp

Comme le routeur a peu de flash, j’ai mis la raçine du serveur tftp dans /tmp (tmpfs) pour éviter les problèmes. Mais il faut rajouter un script qui télécharge l’image au boot de la machine. undionly.kpxe est une image de gPXE qui permet de booter sur n’importe quel protocole (même http).

Video du boot d’un PC depuis le réseau:

Electronics Électronique puissance semiconducteur semiconductors power Hardware CPE INSA Xavier Bourgeois

Xavier B.