PXE Obsolete

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Cet article est une ébauche. N'hésitez pas à contribuer ou à en discuter.

! Ceci est un brouillon, merci de ne pas apporter de modification tant que cet avertissement n'est pas enlevé...


Installation par le réseau - Boot PXE

Installation

# aptitude install openbsd-inetd tftpd-hpa dhcp3-server lftp pxe syslinux

Vous aurez certainement une erreur au démarrage de dhcp3-server. C'est normal, il n'est pas encore configuré !

Le serveur dhcp est obligatoire, même si vous prévoyez d'utiliser un autre dhcp déjà présent sur votre réseau. Auquel cas il faudra l'enlever immédiatement - ce serait bête d'avoir deux dhcp sur votre réseau ;-)

# aptitude remove --purge dhcp3-server

Pensez à activer le daemon de tftpd-hpa. Le fichier /etc/default/tftpd-hpa doit ressembler à ceci :

#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

Après l'installation, une petite vérification... tftp tourne-t-il bien ?

# netstat -uap | grep tftp 
udp        0      0 *:tftp                  *:*                                 8308/inetd

Si vous avez une erreur (ou pas de réponse) à la commande ci-dessus (à lancer en root !) inutile d'aller plus loin, le "tftp" ne tourne pas...

Configuration

PXE

Copie des fichiers dont nous aurons besoin pour le PXE :

Du répertoire /var/lib/syslinux chain.c32 mboot.c32 menu.c32 pxelinux.0 reboot.c32 gpxelinux.0 memdisk pxeboot vesamenu.c32

Vers /var/lib/tftpboot

cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
etc...

Un seul fichier de configuration pour pxe : /etc/pxe.conf Modifiez l'interface et l'adresse IP pour que ça colle à votre configuration. Je n'ai pas touché au reste

# which interface to use
interface=eth0
default_address=192.168.0.1

DHCP

DHCP est un protocole qui permet d'attribuer dynamiquement une adresse IP à un système informatique qui se connecte au réseau.

Je ne vous expliquerais pas ici comment configurer un serveur dhcp ce n'est pas le but... Quelques paramètres importants : L'adresse réseau avec le netmask approprié; Un intervalle d'adresses disponibles; La durée des "baux".

Sauvegarde préalable à toute modification :

# cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_orig[/code]

Pour un serveur déja configuré, il suffit d'ajouter les 2 lignes suivantes :

filename "gpxelinux.0";
next-server 192.168.0.1;

Vous avez le chois entre deux amorces : pxelinux.0 ou gpxelinux.0 J'ai choisi gpxelinux.0 qui est plus complète et offre la possibilité d'entrer quelques commandes avant le menu du PXE. A vous de choisir.

Le premier fichier "gpxelinux.0" est l'amorce réseau. "next-server" est l'adresse ou la machine qui demande à booter va chercher le pxelinux.O; Rine ne vous empêche de mettre le serveur PXE sur une machine différente de votre DHCP, il suffit de le préciser.

# nano /etc/dhcp3/dhcpd.conf
# Private Network
subnet 192.168.0.0 netmask 255.255.255.0 {
        filename "gpxelinux.0";
        next-server 192.168.0.1;
        deny unknown-clients;
        option ntp-servers 192.168.0.1;
        option time-servers 192.168.0.1;
        option domain-name-servers 195.99.65.220 , 195.99.66.220;
        option domain-name "beronono.com";
        option broadcast-address 192.168.0.255;
        option subnet-mask 255.255.255.0;
        option routers 192.168.0.1;
pool {
                deny unknown-clients;
                range 192.168.0.2 192.168.0.104;
                }
[...]
bla-bla

Vous remarquerez l'option "deny unknown-clients;". Supprimez pour commencer si vous n'avez pas déclaré vos clients "connus" comme ceci :

# debianne
host debianne.beronono.com {
hardware ethernet 00:0d:61:94:43:f0;
fixed-address 192.168.0.5;
}

Netboot Debian

Vous trouverez toutes les images nécessaires ICI

Récupérez les "netboot" des distributions qui vous intéressent :

wget http://ftp.fr.debian.org/debian/dists/oldstable/main/installer-i386/current/images/netboot/netboot.tar.gz
wget http://ftp.fr.debian.org/debian/dists/oldstable/main/installer-amd64/current/images/netboot/netboot.tar.gz
etc...

Le répertoire par défaut de tftp (créé à l'installation) est /var/lib/tftpboot c'est là que doivent aller tous les fichiers concernant vos images réseau et le menu de démarrage.

Créer les répertoires et sous-répertoires qui vont accueillir vos images netboot

# mkdir /var/lib/tftpboot/images
# mkdir /var/lib/tftpboot/images/debian
# mkdir /var/lib/tftpboot/images/debian/old-stable
# mkdir /var/lib/tftpboot/images/debian/old-stable/i386
# mkdir /var/lib/tftpboot/images/debian/old-stable/amd64[/code]

etc...

Décompressez les répertoires amd64 ou i386 qui se trouvent dans les archives netboot.tar.gz vers /var/lib/tftpboot/images/debian/

Créez et configurez le fichier "/pxelinux.cfg/default"

# mkdir /var/lib/tftpboot/pxelinux.cfg/

Création du fichier default (c'est lui qui contient les information sur vos différentes netboot)

# nano /var/lib/tftpboot/pxelinux.cfg/default
prompt 1
timeout 300
NOESCAPE 1
display f1.msg
F1 f1.msg
F2 f2.msg

  1. Sous-menu Debian netboot

LABEL DebianNetboot

MENU LABEL Debian Netboot --->
kernel menu.c32
append images/debian/debian.conf
# nano /var/lib/tftpboot/images/debian/debian.conf
MENU TITLE --== Debian Netboot ==--

# Retour au menu principal
LABEL rootmenu
        MENU LABEL <---- Menu principal
        kernel vesamenu.c32
        append /pxelinux.cfg/default

label 1
        MENU LABEL Etch i386
        kernel images/debian/old-stable/i386/linux
        append vga=normal initrd=images/debian/old-stable/i386/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall r$
label 2
        MENU LABEL Etch amd64
        kernel images/debian/old-stable/amd64/linux
        append vga=normal initrd=images/debian/old-stable/amd64/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall $

label 3
        MENU LABEL Lenny i386
        kernel images/debian/stable/i386/linux
        append vga=normal initrd=images/debian/stable/i386/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall rw  --

label 4
        MENU LABEL Lenny amd64
        kernel images/debian/stable/amd64/linux
        append vga=normal initrd=images/debian/stable/amd64/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall rw  $

label 5
        MENU LABEL Squeeze i386
        kernel images/debian/testing/i386/linux
        append vga=normal initrd=images/debian/testing/i386/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall rw  $

label 7
        MENU LABEL Unstable i386
        kernel images/debian/unstable/i386/linux
        append vga=normal initrd=images/debian/unstable/i386/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall rw $

label 8
        MENU LABEL Unstable amd64
        kernel images/debian/unstable/amd64/linux
        append vga=normal initrd=images/debian/unstable/amd64/initrd.gz ramdisk_size=9424 root=/dev/rd/0 devfs=mount,dall rw$


RescueSystemCd

  1. Obtenir la dernière image iso ici : http://sourceforge.net/projects/systemr ... x86/1.3.1/
  2. Monter l'image iso
  3. Créer le répertoire qui va recevoir les fichiers nécessaires

mkdir /var/lib/tftpboot/images/systemrescue

4) Copier les fichiers nécessaires (initram.igz, rescuecd, sysrcd.dat, sysrcd.md5)

/var/lib/tftpboot/images/systemrescue vdir total 214072 -r-xr-xr-x 1 laurent root 13392987 oct 4 15:58 initram.igz -r-xr-xr-x 1 laurent root 3842224 oct 4 15:47 rescuecd -r-xr-xr-x 1 laurent root 201736192 oct 4 15:57 sysrcd.dat -r-xr-xr-x 1 laurent root 45 oct 4 15:58 sysrcd.md5

5) Ajouter au menu de démarrage les lignes suivantes (nano /var/lib/tftpboot/pxelinux.cfg) - En changeant l'IP en fonction de votre configuration évidemment...

label systemrescue

 menu label System Rescue
 kernel images/systemrescue/isolinux/rescuecd
 append setkmap=us netboot=tftp://192.168.0.17/images/systemrescue/sysrcd.dat
 initrd images/systemrescue/isolinux/initram.igz

pxeknife

Petit utilitaire très complet, à télécharger ici : http://pxeknife.erebor.org/

La dernière version (ce 2 août 2010) http://pxeknife.erebor.org/releases/pxeknife-0.0.2.tar.gz

Décompréssez l'archive dans /var/lib/tftpboot/images/pxeknife

Editez /var/lib/tftpboot/images/pxeknife/pxeknife.conf pour qu'il reflète votre configuration (changement des chemins si nécessaire)

Ajoutez cette entrée à /var/lib/tftpboot/pxelinux.cfg/default

#load pxe knife
LABEL pxeknife
 MENU LABEL PXE Knife --->
 kernel menu.c32
 append images/pxeknife/pxeknife.conf

hdt

Un autre utilitaire très intéressant : http://www.hdt-project.org/wiki.

HDT (Hardware Detection Tool) est un utilitaire de détection du matériel

Téléchargement de la dernière image

$ wget http://www.hdt-project.org/raw-attachment/wiki/hdt-0.3.6/hdt-0.3.6.img

Il suffit de copier l'image dans le répertoire /var/lib/tftpboot/images Et d'ajouter les lignes suivantes à notre menu (default)

label hdt

 menu label Hardware Detection Tool Floppy
 kernel memdisk
 initrd images/hdt-0.3.6.img

Un menu avec un clavier Français

http://thefredsite.free.fr/linux.php?id=56

Le fichier french.kbd provient de Knoppix

Ajouter cette entrés dans défault

KBDMAP french.kbd

D'autres entrées...

Test...

Activez le démarrage à partir du réseau dans le bios (pensez à le désactiver une fois l'installation terminée...)

Tout ceci (les menus, les images amorçables...) sont paramétrables à l'infini, à vous de jouer !