<> = PXE : Pre-Execution Environment = PXE est un système de boot réseau, disponible sur quasiment toutes les machines modernes possédant une carte réseau Ethernet. Son fonctionnement est simple : * requête DHCP pour obtenir une adresse IP et un nom de fichier à charger * téléchargement d'une image PXE par TFTP (en général ''pxelinux.0'') * lancement de cette image L'image ''pxelinux.0'', fournie par le paquet `syslinux` permet de booter de manière sélective plusieurs systèmes (locales, ou distantes), notamment celles présentes sur le serveur TFTP. La configuration se situe dans le répertoire ''pxelinux.cfg/'' du serveur TFTP. = Mise en place sur Debian Lenny = Installer un serveur TFTP (`atftp`) et `syslinux` qui contient un code de démarrage PXE : {{{ # aptitude install atftpd syslinux }}} Vérifier l'existence du répertoire `/var/lib/tftpboot` (le créer au besoin) ; y copier le fichier `pxelinux.0` : {{{ # cp -a /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/ }}} Editer le fichier de configuration du serveur dhcp `/etc/dhcp/dhcpd.conf` en y ajoutant les options '''next-server''' et '''filename''', comme ici : {{{ # extrait de /etc/dhcp/dhcpd.conf, pour exemple : authoritative; default-lease-time 600; max-lease-time 7200; option domain-name "xx.auf.org"; option domain-name-servers ns.xx.auf.org; subnet 192.168.1.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers gw.domain.net; range 192.168.1.100 192.168.1.200; # serveur TFTP qui propose l'image PXE next-server 192.168.1.1; # nom du fichier à charger en mémoire par les clients via TFTP filename "pxelinux.0"; } }}} Créer la configuration par défaut de pxelinux.0 dans l'arborescence TFTP, `/var/lib/tftpboot/pxelinux.cfg/default` (si besoin, créer le répertoire `/var/lib/tftpboot/pxelinux.cfg/`) : {{{ # exemple de configuation de pxelinux.0 par défaut # extrait du fichier /var/lib/tftpboot/pxelinux.cfg/default # Documentation complète dans /usr/share/doc/syslinux/pxelinux.txt.gz DEFAULT disque PROMPT 1 TIMEOUT 0 # boot disque local label disque localboot 0 append - # boot UDPcast label udpcast kernel linux-udpcast append load_ramdisk=1 initrd=initrd-udpcast root=/dev/ram0 auto=yes lang=FR kbmap=FR netmodule=AUTO dhcp=yes enableDiskmodule=no diskmodparm= disk=/dev/sda compr=none netmodparm= port=9000 udpcparam= # boot installateur Jaunty label jaunty kernel ubuntu-installer-jaunty/i386/linux append vga=normal initrd=ubuntu-installer-jaunty/i386/initrd.gz -- }}} Il faut évidemment disposer des fichiers correspondant aux kernel et initrd dans `/var/lib/tfptboot`. C'est tout... = Applications classiques = == Installateur réseau Debian/Ubuntu (netboot) == Le principe général est de récupérer le '''noyau''' (fichier en général appelé "linux") et le logiciel d'installation compris dans un disque d'initialisation '''initrd''' (init ram disk). Ces deux fichiers sont présents dans des archives nommées `netboot.tar.gz` : Par exemple : * Pour Debian Lenny i386 : http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz * Pour Ubuntu Jaunty i386 : http://archive.ubuntu.com/ubuntu/dists/jaunty/main/installer-i386/current/images/netboot/netboot.tar.gz On prend ce qu'il faut dans le `netboot.tar.gz` et on le copie dans le `/var/lib/tftpboot`. Par exemple pour Debian Lenny i386 : {{{ # cd /tmp # wget http://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/netboot.tar.gz # tar zxf netboot.tar.gz # mkdir /var/lib/tftpboot/debian-installer-lenny # mv /tmp/debian-installer/i386 /var/lib/tftpboot/debian-installer-lenny/ }}} Puis on indique les chemins au niveau de `pxelinux.cfg/default` : {{{ # extrait de /var/lib/tftpboot/pxelinux.cfg/default pour installeur Debian label lenny kernel debian-installer-lenny/i386/linux append vga=normal initrd=debian-installer-lenny/i386/initrd.gz -- }}} Il faut alors démarrer la machine en mode PXE (boot réseau, voir dans le BIOS), et taper "lenny" lorsque PXE demande l'image de démarrage. {i} Pour des détails sur l'utilisation de ce boot PXE avec Ubuntu, notamment pour une installation 100% automatisée, voir la page [[Ubuntu/PXE]]. {i} L'installation par réseau est encore plus efficace quand vous disposez d'un miroir local, voir la page [[Miroir]] == Parted Magic == http://partedmagic.com/ permet de sortir rapidement d'un problème de partitionnement. Il offre les outils faciles pour faire une restauration depuis un backuppc. == Lancement de UDPCast (duplication de machines) == Voir la page [[UDPCast]] == Booter MSDOS en PXE (objectif : flasher un BIOS) == Copier l'image de la disquette dans `/var/lib/tftpboot`. Vous trouverez de nombreuses images sur http://www.veder.com/nwdsk/ (l'image la plus classique est `msubcd.img`). Pour démarrage une disquette, utiliser le système `memdisk` fourni avec `syslinux` : {{{ # mkdir /var/lib/tftpboot/memdisk # cp /usr/lib/syslinux/memdisk /var/lib/tftpboot/memdisk/ }}} Ajouter une section dans le fichier `pxelinux.cfg/default` suivant cet exemple : {{{ # extrait de /var/lib/tftpboot/pxelinux.cfg/default pour démarrage d'une disque MSDOS label dos kernel memdisk/memdisk append initrd=memdisk/msubcd.img }}}