utilisation de netboot.xyz (PXE) avec OpenWRT
Fri, 06 Sep 2024 18:35:50 +0200[update 09.24] :
J’ai acheté en 2018 un routeur Wifi LINKSYS WRT1200AC-EU. J’avais pris ce modèle car il était supporté par le projet OpenWRT ce qui permettait d’avoir un système Linux et un suivi des mises à jour à long terme ce qui est le cas depuis 6 ans 🙌.
Inutile de dire que conserver le système du constructeur est une énorme erreur sauf si l’on veut se faire trouer son Wifi et donc son réseau via des failles non corrigées.
Je suis tombé il y a quelques temps sur le projet netboot.xyz qui permet d’installer par le réseau un système Linux de son choix donc sans utiliser de clé USB. C’est génial, fini les galères de télécharger une ISO et faire sa clé USB, il suffit de booter son laptop en mode PXE, c’est à dire boot via le réseau pour que le serveur TFTP de netboot.xyz fournisse une image Linux bootable au PC.
J’ai commencé à faire conteneur Docker sur mon NUC mais pour des raisons techniques je ne peux pas me connecter en filaire sur le même réseau que le NUC. De plus cela nécessite d’installer et configurer également un serveur DHCP.
J’ai jeté un oeil à OpenWRT et bien oui le projet propose bien un serveur TFTP. Mon routeur fait déjà office de serveur DHCP, il m’a suffit d’activer le TFTP via l’interface web.
Ajouter le répertoire /tftp
et l’image de boot que l’on va télécharger.
La 2ème étape est de se connecter en ssh sur le routeur et de créer le répertoire /tftp
puis télécharger les fichiers de démarrage du projet netboot.xyz
opkg update
opkg install curl
mkdir /tftp
cd /tftp
curl http://boot.netboot.xyz/ipxe/netboot.xyz.kpxe -o netboot.xyz.kpxe
curl http://boot.netboot.xyz/ipxe/netboot.xyz.efi -o netboot.xyz.efi
A priori le fichier netboot.xyz.kpxe
sert pour les PC qui ne savent pas booter en mode UEFI.
Ensuite il faut désactiver le Local IPv6 DNS server
dans le paramétrage de l’interface lan (onglet DHCP Server / Onglet IPV6 settings). Un article que je donne plus bas indique qu’il faut modifier le fichier dnsmasq.conf
ce qui est inutile et ne fonctionne pas.
Plus qu’à brancher votre PC en ethernet sur le routeur et choisir de booter en réseau. Une interface console s’affichera et vous pemettra de choisir un Linux parmi une longue liste de choix. A noter que netboot.xyz va télécharger les images du Linux choisi sur le dépot Github du projet ce qui peut prendre un peu de temps selon votre débit et l’image choisie.
La liste des distributions proposées : What Operating Systems are currently available on netboot.xyz?
A vous les joies de tester en masse ! J’ai d’ailleurs été très impressionné par le bureau de elementary OS.
Pour finir j’ai voulu ajouter une ISO perso dans le menu via un fichier custom.ipxe qui contient
kernel https://boot.netboot.xyz/memdisk iso raw
initrd http://url/to/iso
boot
mais gros plantage lors de la mise en mémoire de l’image memdisk (exec format error). Dommage.
Grâce à ce système j’ai pu ressuciter un vieux Dell Latitude XT2 avec 3Go de RAM seulement 🤙. Évidement avec si peu de mémoire le boot sur des images Live ne marche pas, ça passe avec des images d’installation légère type Arch.
Le boot sur des ISO ne fonctionnant pas à ce jour avec Netboot.xyz j’ai trouvé le projet iVentoy qui propose cela. Je l’utilise dans un conteneur Docker via cette image. A savoir que le conteneur doit tourner en mode privilégié et qu’il faudra configurer une interface macvlan, voir ce tuto Comment installer un serveur PXE iVentoy dans un conteneur Docker.
(Ce texte a été écrit avec VNote)