Outils pour utilisateurs

Outils du site


user:pascal_cabaud:sysadmin:grub-netboot

GRUB en netboot par PXE

On ne veut plus se promener de bureau en salle de cours avec trois clefs USB et une pile de CD i. e. on veut disposer de nos outils favoris quel que soit le poste (x86…) et ce, sans trop se fatiguer. En tout cas, pas question de passer sur 300 machines pour installer quoi que soit.

Plusieurs solutions sont possibles mais pour faire facilement un menu pour choisir sur quoi amorcer, GRUB s'impose.

Renseignement pris, la version legacy est capable de PXE, pile-poil ce dont on a besoin : on n'aura ainsi rien à installer sur les clients. Nos clients sont des PC décents, capables de PXE justement.

Compilation et installation de GRUB

Récupérer une archive des sources récentes (0.97) et l'extraire. Avant de lancer le ./configure, aller sur :

  http://os.inf.tu-dresden.de/~adam/grub/ 

récupérer la dernière version du patch d'Adam Lackorzyski et l'appliquer.

Quand c'est fait, lancer :

$ ./configure --enable-diskless --enable-pxe

Pas besoin d'indiquer des drivers de cartes. Compiler (make(1)) ; le plus dur est fait :-)

Dans le répertoire stage2 on trouve un binaire pxegrub. C'est le seul fichier qui nous intéresse. Pour l'installer, on le copiera à la racine du serveur TFTP à la prochaine étape.

BOOTP / DHCP et TFTP

BOOTP / DHCP

On utilise ISC-DHCPd 3. Dans la configuration, pour les sous-réseaux qui nous intéressent ajoutons les lignes suivantes pour activer le lancement via PXE :

[...crouic...]
allow bootp;
allow booting;

[...crouic...]
option option-150 code 150 = text;
[...crouic...]

subnet 192.168.0.0 netmask 255.255.248.0 {
	[...crouic...]
	next-server 192.168.7.253;
	option option-150 "(nd)/menu.lst";
	filename "pxegrub";
}

[...crouic...]

La ligne next-server renseigne l'adresse du serveur TFTP. L'option 150 sera utilisée par GRUB pour savoir où il doit aller quérir le fichier de configuration (par défaut menu.lst) ; (nd) lui indique Net Disk.

TFTP

Configurer le daemon TFTP pour qu'il sache où est sa racine et y déposer pxegrub. À côté, déposer menu.lst contenant :

# Boot apres 5 secondes
timeout 5

# 1ere entree par defaut
default 0

# par defaut revient a la 1ere entree si le reste est HS
fallback 0

# mot de passe
password --md5 $1$G8GXZEpM$GMO5cioMUY5U3sb89rcuk.

# 1ere entree : on passe au disque local
title Demarrage normal
	root (hd0,0)
	chainloader +1

# 2eme entree : G4U
title [sysadmin@] Amorcage reseau : G4U
	dhcp
	lock
	kernel --type=netbsd (nd)/g4u

Dans cette configuration, on a deux entrées (on pourra en ajouter autant qu'on veut) :

  • la première renvoie à l'amorce sur le disque local,
  • la seconde lance G4U.

À noter :

  1. Si on veut amorcer sur la seconde entrée, il faudra connaître le mot de passe (option lock) qui a été déclaré et stocké en MD5.
  2. Le fichier g4u est déposé à côté de pxegrub et menu.lst sur le serveur TFTP.
  3. L'option dhcp indique à la machine de demander via BOOTP/DHCP où est le serveur TFTP (la machine n'en aura plus conscience dès que GRUB aura passé la main).

Pour générer la chaîne MD5, sur un NetBSD 2.0 ou plus récent, utiliser :

$ echo passwd |pwhash -m 

Plus qu'à ajouter Memtest, les outils de tests des constructeurs de disques, un mini-Unix, etc, la seule limite est votre imagination :-)

user/pascal_cabaud/sysadmin/grub-netboot.txt · Dernière modification: 2009/04/15 00:45 par Pascal Cabaud