====== PXE ====== * Objet : PXE * Niveau requis :{{tag>avisé}} * Commentaires : //Environnement d'exécution préalable au boot// * Suivi :{{tag>à-tester à-compléter}} * Création par [[user>smolski]] le 27/05/2010 * Testé par .... le .... * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=136193#p136193 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== EN COURS DE RÉDACTION - NON TESTÉ ===== Voir le forum DF ici : * http://debian-facile.org/forum/viewtopic.php?id=2629 ===== Définition de PXE : ===== **P**re-boot e**X**ecution **E**nvironment. Environnement d'exécution préalable au boot. ===== Préalable ===== L'environnement PXE permet de démarrer un ordinateur en récupérant une image d'un système d'exploitation qui se trouve sur un serveur. * Cela permet de démarrer un système sur une machine sans disque dur, ni de lecteur de CD/DVD ni de port USB. * Un serveur de boot PXE permet aussi d'installer un système dans un parc informatique par le réseau. ===== Serveur de boot PXE ===== Le serveur de boot est composé de trois parties: * Le serveur DHCP qui envoie une adresse IP dynamique au client. * Le serveur TFTP qui envoie les premiers fichiers de démarrage (gestionnaire d'amorçage et noyau) au client * Le serveur HTTP qui envoie les systèmes de fichiers racine (ce n'est plus obligatoirement http) Ces trois serveurs fonctionnent sur une seule machine ou peuvent être repartis sur plusieurs machines. \\ ===== Le processus de boot PXE ===== PC client = PC à démarrer par le réseau Voici les étapes importantes du processus : - Quand l'ordinateur ''PC client'' essaie de démarrer avec **PXE**, il commence par envoyer une ''demande d'adresse IP'' sur le réseau (DHCP request). - Le ''serveur DHCP'' lui répond en lui envoyant une ''adresse IP dynamique'' disponible avec d'autres informations (serveur DNS, route par défaut) ainsi que l'adresse du ''serveur TFTP'' nécessaire pour la suite. - Le ''PC client'' reçoit l'offre d'adresse DHCP et l'accepte. Il se connecte alors au ''serveur TFTP'' et charge les premiers fichiers de démarrage par ''TFTP''. - Le ''serveur TFTP'' lui envoie les ''fichiers du gestionnaire de démarrage'' (**pxelinux**) ainsi que les fichiers à afficher a l'écran par ''pxelinux'' - Le ''PC client'' affiche les fichiers reçus et __l'utilisateur peut choisir ses options de démarrage__. Le gestionnaire de démarrage charge alors le noyau et le fichier ''initramfs'' par ''TFTP''. - Le ''serveur TFTP'' envoie le noyau et le fichier ''initramfs'' demandés précédemment. - Le ''PC client'' démarre le noyau qu'il vient de recevoir et exécute le script de démarrage ''linuxrc'' qui est dans l'''initramfs''. - Pendant le démarrage du noyau une ''requête DHCP'' est envoyée par le ''PC client'' (option ip=dhcp) pour recevoir une ''adresse IP''. Cette nouvelle demande est nécessaire car le noyau n'a pas connaissance de l'''adresse IP'' précédemment reçue par **pxelinux**. - Le ''PC client'' se connecte ensuite au ''serveur HTTP'' par l'''adresse IP'' indiquée dans les options de démarrage du noyau fournies par **pxelinux**. Il télécharge les fichier du système choisi par ''HTTP'' sur ce serveur et le place en mémoire vive (RAM). Ce fichier est assez volumineux car il contient tout le système à l'exception du noyau. - Le PC client monte le fichier système pour pouvoir utiliser le contenu et poursuit le démarrage du système. - À cette étape le serveur de démarrage n'est plus nécessaire pour le ''PC client''. ===== Installation ===== Sur la machine serveur installer : aptitude install openbsd-inetd tftpd-hpa dhcp3-server lftp pxe syslinux ''dhcp3-server'' n'étant pas encore configuré, vous aurez certainement une erreur au démarrage. ===== Configuration ===== ==== Serveur tfptd-hpa ==== [[doc:editeurs:vim:vim|Editez le fichier]] ''/etc/default/tftpd-hpa'' et modifier le "no" en "yes" ainsi : vim /etc/default/tftpd-hpa #Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot" Démarrer le serveur tftp-hpa : /etc/init.d/tftp-hpa start Vérifiez si le serveur tftp tourne bien. La commande : \\ netstat -uap | grep tftp doit renvoyer : udp 0 0 *:tftp *:* 8308/inetd Si vous avez une erreur, inutile d'aller plus loin, le ''tftp'' ne tourne pas. ==== pxe ==== Sauvegarde : cp /etc/pxe.conf /etc/pxe.conf_sav Editez et modifiez le fichier ''/etc/pxe.conf''. \\ (//Voir la configuration d"un serveur dhcp//) \\ Par exemple : vim /etc/pxe.conf which interface to use interface=eth0 default_address=192.168.0.1 ==== dhcpd ==== Sauvegarde : cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_sav Editez et modifiez le fichier ''/etc/dhcp3/dhcpd.conf'' vim /etc/dhcp3/dhcpd.conf //à suivre...// ===== Références ===== * [[http://www.debian.org/releases/stable/i386/ch04s05.html.fr|Préparer les fichiers pour amorcer depuis le réseau avec TFTP]] * [[https://wiki.debian.org/PXEBootInstall|Installer Debian via PXEBOOT (anglais)]]