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
vesamenu.c32

Vers /var/lib/tftpboot

cp /usr/lib/syslinux/chain.c32 /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 choix 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 "isalo.org";
        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/old-stable ou stable, testing, unstable...

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

Une option "reboot" et démarrage sur le disque dur

Pour démarrer sur le premier disque dur, ajoutez en début de menu :

label bootlocal
 MENU DEFAULT
 MENU LABEL Local Boot
 localboot 0

Pour avoir la possibilité de redémarrer, ajoutez en fin de menu :

label reboot
 menu label Reboot
 kernel reboot.c32


Knoppix 511 et 602

! ATTENTION, pas encore au point...

Pour utiliser les images ISO de Knoppix, nous allons avoir besoin d'un serveur NFS :

# apt-get install nfs-kernel-server

Pour autoriser notre réseau à utiliser le serveur NFS, ajoutons la ligne suivante au fichier /etc/hosts.allow

mountd: 192.168.0.

Créez les répertoires qui vont accueillir les CD

# mkdir /mnt/sdb1/knoppix511
# mkdir /mnt/sdb1/knoppix602

Montez les CD et copiez leur contenu dans les répertoires que vous venez de créer

Profitez-en pour copier les "amorces " dans votre tftp

# mkdir /var/lib/tftpboot/images/knoppix/
# mkdir /var/lib/tftpboot/images/knoppix/511

Copiez les fichiers linux et minirt.gz qui se trouvent dans le CD (répertoire /boot/isolinux) vers ce nouveau répertoire. Répétez l'opération pour Knoppix 602.

Ajoutez les partages NFS au fichier /etc/exports (en lecture seule...)

/mnt/sdb1/knoppix511 *(ro,no_subtree_check,no_root_squash)
/mnt/sdb1/knoppix602 *(ro,no_subtree_check,no_root_squash)

Redémarrez le serveur NFS

# /etc/init.d/nfs-kernel-server restart

Ajoutez les entrées dans votre menu "default" :

label Knoppix511
 MENU LABEL Knoppix 5.1.1
 kernel images/knoppix/511/linux
 append nfsdir=192.168.0.17:/mnt/sdb1/knoppix511 nodhcp lang=fr ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=normal initrd=images/knoppix/511/minirt.gz quiet BOOT_IMAGE=knoppix
label Knoppix602
 MENU LABEL Knoppix 6.0.2
 kernel images/knoppix/602/linux
 append nfsdir=192.168.0.17:/mnt/sdb1/knoppix602 nodhcp lang=fr ramdisk_size=100000 init=/etc/init apm=power-off nomce vga=normal initrd=images/knoppix/511/minirt.gz quiet BOOT_IMAGE=knoppix

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 !