Journal : Menu lors d'un boot reseau
Posté par kesako () le 16 avril 2004
Hello,
J'ai configuré des machines diskless pour qu'elles puissent booter a partir d'un serveur (contenant par exemple une image de knoppix). Pxe + Dhcp + tftp + nfsboot ... tout ca tout ca
C'est impec ca marche.
Ce que je voudrais c'est que les clients au boot puissent choisir entre plusieurs images disponibles sur le tftpboot.
Un simple menu, avant chargement de l'image reelle.
any hint ?
merci d'avance
J'ai configuré des machines diskless pour qu'elles puissent booter a partir d'un serveur (contenant par exemple une image de knoppix). Pxe + Dhcp + tftp + nfsboot ... tout ca tout ca
C'est impec ca marche.
Ce que je voudrais c'est que les clients au boot puissent choisir entre plusieurs images disponibles sur le tftpboot.
Un simple menu, avant chargement de l'image reelle.
any hint ?
merci d'avance
> Lire le journal (22 commentaires, moyenne: 1).
Vous avez demandé le commentaire #392975.



Re: Menu lors d'un boot reseau
Tu peux donner des adresses, des docs ?
Merci :)
[^]Re: Menu lors d'un boot reseau
pas de doc
juste la reproduction au propre et en dur du knoppix terminal server en particulier sa version openmosix.
j'ai le cd copié sur le serveur, monté en -o loop. l'image initrd et vmlinux copies dans /tftpboot
Et hop je boote les machines et j'ai un cluster...
maintenant je voudrais generaliser pour pouvoir choisir une image donnée quand je boote les clients sans devoir trifouiller dans /tftpboot ou dhcpd a chaque fois.
j'ai bien vu
pxelinux (syslinux)
bpbatch
Ka
bpbatch est le plus riche mais j'ai du mal , je ne trouve pas d'exemples simples . Plusieurs de ces systemes demande pxe2.0 alors que mes machines sont presque toutes pxe 0.9
[^]Re: Menu lors d'un boot reseau
Hello
Je suis en stage de fin de DUT, et j'ai un projet où je dois faire la meme chose que toi
J'ai déjà commencé, et j'utilise BpBatch, mais mon tuteur m'a dis de regarder aussi autre chose pour voir si kelke chose de mieux existe
Tu pourrai me faire un topo de ce que tu a utilisé et de ce ke tu as fais stp?
(j'ai deja un menu assez sommaire de boot d'images de diskettes si ca t'interesse)
[^]Re: Menu lors d'un boot reseau
Pour l'instant je n'ai rien fait du tout. En particulier parceque je n'arrive pas a passer l'option "-i" a BpBatch. a cause de pxe 0.9 je pense.
Bref les logs du tftpd m'indiquent que BpBatch cherche a recuperer "bpbatch.bpb" mais je n'arrive pas a ecrire ce fichier. Tous les exemples donnés sur le site sont bcp trop compliqués. C'est souvent pour le chargement de tout un os sur le disque du client. Alors que je veux juste charger des choses tres simples totalement diskless comme :
- knoppix openmosix
- les differentes morphix
- mandrake move
- un simple os+ serveur X pour faire terminal
- ... etc
si tu pouvais me montrer ton .bpb ca m'aiderait bcp .
sinon je vais regarder du cote de grub comme me le conseille unk
BTW : au fait qu'est ce qu'il reproche a BpBatch ton tuteur ?
[^]Re: Menu lors d'un boot reseau
a toi aussi tu a le pb de l'option "-i". En effet j'essayais de l'utiliser mais je n'optenais pas de prompt, il chargeai directement le fichier bpbatch.bpb.
Donc me suis pas fais chier, g modifié directement ce fichier.
Mon bpb est vraiment pas bien fais(mea culpa) et il ne permet que de charger des images de disquettes(ici une diskette de boot windows 98 car d'autres images de diskettes merdent, il met "unable to open remote file", je comprend tjs pas pk mais bon, a voir...)
Set CacheNever="ON" <- ca c'est car il veut pas mettre en cache, je c pas pk
#Changer ici le mot de passe
Set MDP="jojo"
#Pour passer approximativement de qwerty en azerty
Remapkeys "aAqQwWzZ;:mM" "qQaAzZwWmM;:"
#Crypte le mot de passe
MD5 "$MDP" mdp_crypt
:again
DrawWindow 150 200 400 160 "Menu"
TextAttr Black LightGray
At 15,20 Print "1- Windows 98"
At 17,20 Print "2- Entrer le mot de passe"
At 20,20 GetKey(touche)
if "$touche" == "1" goto win98
if "$touche" == "2" goto password
goto again
:win98
LoadRamDisk "images/awin98.img"
FloppyBoot
goto fin
:password
Clear
DrawWindow 150 200 350 160 "Mot de passe"
TextAttr Black LightGray
At 17,20 Print "Mot de passe : "
GetPasswd userpass
MD5 "$userpass" mdp_user
if "$mdp_crypt" == "$mdp_user" goto ok
goto again
:ok
Clear
DrawWindow 150 200 400 160 "Menu protege par mot de passe"
TextAttr Black LightGray
At 15,20 Print "1- Windows 98"
At 17,20 Print "2- Windows 98"
At 20,20 GetKey(touche_user)
if "$touche_user" == "1" goto win98
if "$touche_user" == "2" goto win98
goto ok
:fin
CloseGraph
#interact
Désolé du nombre de goto, mais g pas trouvé mieux, et la doc de bpbatch est pas super bien détaillée sur les if.
Quand a mon tuteur, en fait c pas k'il aime aps, c k'il veut ke je regarde si autre chose existe pour voir si y'a pas un truc mieux(si t'a des essai concluant avec grub, fait le moi savoir et dis moi tt ce que t'a fais :-p)
TODO: booter sur des images de disque dur(y'a pas kelku'un ki pourait en envoyer ou m'indiquer où en trouver facilement sur internet pour faire des tests concluants?) windows ou de kernel linux
[^]Re: Menu lors d'un boot reseau
grand merci
cela m'a permis de demarer le travail.
Mais je suis tombé sur un pb un peu plus loin a cause du fait que je cherche a charger un pxelinux (car c'est une installation qui marche deja) :
si je fais un tftpboot "toto/tata/pxelinux.0"
il n'y a pas de "cd toto/tata" et donc pxelinux.0 s'attend a trouver "pxelinux.cfg/default" a la racine où a ete chargé bpbatch.bpb ...
Si je met tout a la racine, c'est ok ca demare , mais je perd la possibilité de faire un choix (car j'ai plusieurs installations qui demarent grace a pxelinux.0 et des noms de fichiers identiques mais dans des repertoires differents)
J'ai rapidement fouillé la doc de pxelinux mais je n'ai pour l'instant rien trouvé.
J'ai essayé LinuxBoot mais ca marche tres mal
[^]Re: Menu lors d'un boot reseau
As-tu reussi a creer ton menu? pour chaque option de ton menu, tu pourrai faire un "tftpboot mon_image" et avoir plein d'images avec des noms differents genre pxelinux.0 pxelinux2.0 (bon pour s'y retrouver c galere). Enfin je dis peut etre une connerie, pxelinux a peut etre besoin du fichier pxelinux.0 obligatoirement(je suis aps allé voir). Je suis pas très familier avec pxelinux, tu pourrai détailler un peu tt ce que t'a fais stp?
[^]Re: Menu lors d'un boot reseau
> As-tu reussi a creer ton menu?
oui oui impeccable. merci
> tftpboot mon_image" et avoir plein d'images avec des noms differents genre pxelinux.0
c'est le pb : si je fais :
TFTPBoot "knoppix-openmosix/pxelinux.0";
pxelinux veut absolument trouver sa configuration dans "<repertoire de bpbatch>/pxelinux.cfg/" et non pas dans "knoppix-openmosix/pxelinux.cfg/"
Pas moyen de changer ca. pxelinux est en assembleur. et non en c , je n'ai donc pas pu lui coller un trick du genre le renommer et faire "if argv[0] != "pxelinux.0" alors chercher "argv[0]/pxelinux.cfg/default" sinon valeurs habituelles"
un autre truc aurait ete de changer le parametre dhcp "option pxelinux.pathprefix ..." en fonction du choix mais impossible de le modifier dans bpbatch.bpb
bref pour l'instant je laisse tomber et me concentre sur pxegrub qui marche (a peu pres) cf. posts plus haut.
[^]Re: Menu lors d'un boot reseau
Tu pourrai quand meme me donner ton .bpb que je vois ce ke tu avais fais(g pa envi d'abandonner l'idée tt de suite) et tes fichiers de config de pxegrub(que ej vois a koi ca ressemble) pour voir ce que ca peut donner.
Essai de faire ca assez "simpliste" stp, je débute dans le monde linux
[^]Re: Menu lors d'un boot reseau
comme je l'ai dit , j'ai juste remplacé :
:win98
LoadRamDisk "images/awin98.img"
FloppyBoot
goto fin
par
:win98
TFTPBoot "knoppix-openmosix/pxelinux.0";
goto fin
pour tester une installation en dur de knoppix terminalserver. Rien de plus. mais ca ne marche pas.
le reperoire tftp : cd tftpboot && tree
.
|-- bpb
| |-- INSTALL
| |-- LICENSE
| |-- bpbatch
| |-- bpbatch.bpb
| |-- bpbatch.hlp
| |-- bpbatch.ovl
| |-- mrbatch
| |-- mrbatch.exe
| |-- mrzip
| |-- mrzip.exe
| |-- readme
| `-- whatsnew
`-- knoppix-openmosix
|-- boot.msg
|-- etherboot.nbi
|-- german.kbd
|-- logo.16
|-- miniroot.gz
|-- pxelinux.0
|-- pxelinux.cfg
| `-- default
`-- vmlinuz
pour le grub c'est comme indiqué plus haut :
il faut que pxegrub soit compilé pour les carte reseau qu'on va utiliser.
repretoire tftpboot :
|-- grub
| |-- menu.lst
| |-- pxegrub
dhcp.conf :
option option-150 code 150 = text;
subnet 192.168.0.0 netmask 255.255.255.0 {
(...)
filename "grub/pxegrub";
option option-150 "(nd)/grub/menu.lst";
(..)
}
menu.lst est comme un menu classique :
color white/blue black/light-gray
timeout 10
default 0
# 0. station diskless NFS-Root
title knoppix-openmosix
root (nd)
kernel (nd)/knoppix-openmosix/vmlinuz textmode nfsdir=192.168.0.5:/cdrom nodhcp lang=fr ramdisk_size=100000 init=/etc/init apm=power-off nomce noeject noprompt vga=791 quiet BOOT_IMAGE=knoppix
initrd= (nd)/knoppix-openmosix/miniroot.gz
le (nd) c'est pour "network device"
[^]Re: Menu lors d'un boot reseau
Bon ba je crois ke je v aller jeter un coup d'oeil à pxegrub lundi matin serieusement (et surtt à la doc paske g jms utilisé grub, seulement lilo)
Merci, et si tu fais de nouvelles decouvertes sympathiques, hesite pas à poster ici, ca m'interesse bcp :-)