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
# Re: Menu lors d'un boot reseau
Posté par monsieurw . Évalué à 1.
Un simple menu, avant chargement de l'image reelle.
Pour le boot PXE, c'est pxelinux ( http://syslinux.zytor.com/pxe.php(...) ) qui est utilisé ? Dans ce cas, il suffit de configurer le fichier [racine tftp]/pxelinux.cfg/default (ou C0A8... selon l'adresse IP des stations diskless) avec plusieurs entrées, comme pour Syslinux.
[^] # Re: Menu lors d'un boot reseau
Posté par monsieurw . Évalué à 1.
Mmmh... j'y pense : le "menu", c'est la possibilité de choisir différentes options par le biais d'un prompt ou bien c'est un menu plus élaboré comme on peut avoir avec Grub (interface de type curse) ? Si c'est cette 2ème solution (à la Grub), j'ai répondu à côté de la plaque. Et il me semble que pour le moment, ce n'est pas possible avec Pxelinux.
Note : je n'ai jamais essayé, mais il est peut-être possible de faire quelque chose avec Grub ; je verrais ça comme ça :
1) Compiler Grub avec le support diskless (--enable-diskless) et la carte réseau appropriée du système diskless
2) utiliser "pxegrub" (cf. dans le répertoire stage2), que le client récupère par TFTP
3) configurer le serveur BOOTP/DHCP pour qu'il envoie le menu par TFTP (option T150)
Une recherche sur google avec les termes "pxe grub t150" doit retourner des résultats intéressants.
[^] # Re: Menu lors d'un boot reseau
Posté par kesako . Évalué à 1.
> recherche sur google avec les termes "pxe grub t150"
oui il y a bcp de chose , je vais regarder.
merci du conseil
[^] # Re: Menu lors d'un boot reseau
Posté par monsieurw . Évalué à 1.
[^] # Re: Menu lors d'un boot reseau
Posté par monsieurw . Évalué à 1.
[^] # Re: Menu lors d'un boot reseau
Posté par kesako . Évalué à 1.
[^] # Re: Menu lors d'un boot reseau
Posté par monsieurw . Évalué à 1.
[^] # Re: Menu lors d'un boot reseau
Posté par kesako . Évalué à 1.
la machine sur laquelle j'essayais a 2 cartes reseau : la carte mere et une carte additionnelle . c'est la carte mere qui va chercher pxegrub mais ensuite celui-ci utilise la carte reseau additionnelle pour se connecter... evidement ca marche pas : elle n'est pas sur le meme reseau !
J'ai viré la carte additionnelle, et evidement maintenant ca marche.
J'ai le menu , et je peux choisir de booter ce que je veux.
Impeccable .
Je n'ai pas encore trouvé comment forcer pxegrub a prendre la bonne carte reseau. en gros l'equivalent de "ether=10,0x300,eth0" sur la ligne de commande du kernel. Il va bien falloir que je trouve, car j'ai besoin de cette deuxieme carte
Merci bcp pour ton aide
[^] # Re: Menu lors d'un boot reseau
Posté par kesako . Évalué à 1.
http://www.mail-archive.com/bug-grub@gnu.org/msg06361.html(...)
je devrais pouvoir y arriver
# Re: Menu lors d'un boot reseau
Posté par rangzen (site web personnel) . Évalué à 1.
Merci :)
[^] # Re: Menu lors d'un boot reseau
Posté par kesako . Évalué à 1.
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
Posté par lukeg . Évalué à 1.
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
Posté par kesako . Évalué à 1.
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
Posté par lukeg . Évalué à 1.
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
Posté par kesako . Évalué à 1.
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
Posté par lukeg . Évalué à 1.
[^] # Re: Menu lors d'un boot reseau
Posté par kesako . Évalué à 1.
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
Posté par lukeg . Évalué à 1.
Essai de faire ca assez "simpliste" stp, je débute dans le monde linux
[^] # Re: Menu lors d'un boot reseau
Posté par kesako . Évalué à 1.
: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
Posté par lukeg . Évalué à 1.
Merci, et si tu fais de nouvelles decouvertes sympathiques, hesite pas à poster ici, ca m'interesse bcp :-)
# Re: Menu lors d'un boot reseau
Posté par Ph Husson (site web personnel) . Évalué à 1.
mgl ou un truc du genre
si tu veux je peux te le retrouver avec des fichiers d'exemple
mais la j'ai la flemme ;)
# Re: Menu lors d'un boot reseau
Posté par naibed . Évalué à 1.
J'utilise une carte 3Com 3c905C-TX qui à la possibilité de booter en réseau via en soft intègré qui s'appele MBA.
Ma config marche en bootp, je n'ai pas essayé en dhcp car il n'y a qu'un seul client.
Les tentatives avec nbgrub ne marchaient pas à cause d'un bug spécifique entre
grub et ma carte réseau sinon les options dans bootptab auraient été les suivantes:
bf=/boot/nbgrub:\
T150="/netboot/a/etc/menu.lst":
Pour contourner le problème j'ai utilisé syslinux d'un manière un peu particulière :
j'ai créé une ramdisk formatée en fat16, installé syslinux dessus et copié un kernel, après j'ai balancé la ramdisk dans un fichier
ensuite j'utilise l'utilitaire de 3Com qui s'appele imggen pour ajouter à ce fichier le "MBA BootWare support"
Ce qui est un peu particulier parce que normalement on envoie directement un kernel et pas un systeme de fichier, mais cela à marché.
exemple de ce qu'il y a dans le syslinux.cfg
label linux
kernel linuxnfs
append ip=:192.168.1.3:192.168.1.1:255.255.255.0::: nfsroot=192.168.1.2:/netboot/a
label linux2
kernel linux
append ip::::::autoconf nfsroot=192.168.1.2:/netboot/a
Donc ainsi on boot sur un espèce de file system virtuel au lieu de booter directement
avec un kernel, du coup en faisant un fs assez grand tu peu mettre plusieurs kernels
dessus dans mon cas y'a linux et linuxnfs.
j'ajoute mon bootptab en prime au cas ou :)
# /etc/bootptab: database for bootp server (/usr/sbin/bootpd)
a:\
ht=ethernet:\
ha=0001020FB243:\
ip=192.168.1.3:\
sm=255.255.255.0:\
gw=192.168.1.1:\
sa=192.168.1.2:\
rp=/netboot/a:\
hd=/netboot/a:\
to=3600:\
#bf=/boot/vmmulti:\ (l'image avec syslinux)
bf=/boot/vmlinuz:\ (un kernel normal)
#T129="root=/dev/nfs ip=::::::autoconf": (cette option est censé remplacé le "append" pour les paramètres du kernel mais ça marche pas)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.