Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

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

> Lire le journal (22 commentaires, moyenne: 1).  

Vous avez demandé le commentaire #393118.

Re: Menu lors d'un boot reseau

Posté par unk () le 16/04/2004 à 07:44. (lien). Évalué à 1.

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.


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 unk () le 16/04/2004 à 08:44. (lien). Évalué à 1.

    Un simple menu

    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 () le 16/04/2004 à 08:54. (lien). Évalué à 1.

      he oui c'est bien le "menu" qui pose probleme

      > 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 unk () le 16/04/2004 à 14:00. (lien). Évalué à 1.

        Plutôt que de glander en attendant le week-end, je viens d'essayer pxegrub ; j'en aurais probablement eu besoin un jour ou l'autre.

        Et bien ça marche, on peut avoir un menu Grub classique.
        
        Cette solution a un inconvénient quand on travaille avec différentes type cartes réseau, puisque -d'après la doc de Grub-, il est préférable de n'activer qu'un seul driver à la fois, ce qui fait qu'on doit avoir plusieurs versions de pxegrub. Bon, sur un réseau local avec du matériel clairement identifié, ça n'est pas forcément un problème. Bref...
         Si ça peut aider, v'là en gros ma configuration :
          - serveur TFTP/DHCP/NFS (Slackware 9.1) : cain, ip=192.168.1.1
          - client diskless : eden, mac=00:a1:b2:c3:d4:e5, ip=par dhcp (192.168.1.20)
        
        
        ------- /etc/dhcpd.conf (extrait) -------
        allow booting;
        allow bootp;
        
        # Option pour grub
        # Cette option doit etre hors d'un bloc semble-t-il, sinon ISC DHCPd rale...
        option option-150 code 150 = text;
        
        host eden {
                  hardware ethernet 00:a1:b2:c3:d4:e5;
                  fixed-address 192.168.1.20;
                  server-name "192.168.1.1";
                  # Le serveur TFTP fait un "chroot" dans le répertoire /tftpboot
                  # donc c'est bien "/grub/pxegrub" et non pas "/tftpboot/grub/pxegrub"
                  # idem pour "/tftpboot/grub/menu.lst"
                  filename "/grub/pxegrub";
                  option option-150 "(nd)/grub/menu.lst";
        }
        -------
        
        ------- /tftpboot/grub/menu.lst -------
        # Menu grub on ne peut plus classique
        color white/blue black/light-gray
        timeout 10
        default 0
        
        # 0. station diskless NFS-Root
        # Ne pas oublier "ip=dhcp" dans les parametres du noyau
        title nfs
           root (nd)
           kernel (nd)/boot/bz-2.4.25-grsec-dl ip=dhcp root=/dev/nfs nfsroot=192.168.1.1:/tftpboot/SLACK
        
        # 1. station diskless avec un ramdisk
        title secours
           root (nd)
           kernel (nd)/boot/bzsecours root=/dev/ram0 host=eden keymap=fr-latin1
           initrd (nd)/boot/secours.img.gz
        -------
        

        • [^]Re: Menu lors d'un boot reseau

          Posté par unk () le 16/04/2004 à 17:05. (lien). Évalué à 1.

          Juste une précision : la machine est une plate-forme VIA Eden ; le driver réseau est le via-rhine.

          [^]Re: Menu lors d'un boot reseau

          Posté par kesako () le 16/04/2004 à 22:17. (lien). Évalué à 1.

          Qu'est ce qu'il y a dans ton repertoire /tftpboot/grub a part pxegrub et menu.lst ?

          • [^]Re: Menu lors d'un boot reseau

            Posté par unk () le 17/04/2004 à 04:29. (lien). Évalué à 1.

            Qu'est ce qu'il y a dans ton repertoire /tftpboot/grub a part pxegrub et menu.lst ?

            
            Rien d'autre...
            
            
            J'ai mis les images et autres initrd dans le répertoire "/tftpboot/boot" ; comme le serveur TFTP (tftp-hpa 0.36) effectue un changement de racine (cf config inetd.conf*), tous les fichiers qui sont téléchargés par TFTP le sont relativement au répertoire "chrooté" ici, j'utilise "/tftpboot", mais rien n'empêche d'utiliser un autre répertoire racine. C'est pour ça que dans mes fichiers de conf (dhcpd.conf, menu.lst) il n'y a aucune référence au répertoire "/tftpboot".
            
            
            Remarque : toutes les distributions GNU/Linux n'ont pas le même serveur TFTP et donc les switchs de configuration peuvent être différents, voire ne pas être disponibles.
            
            
            ~# cd /tftpboot && tree .
            .
            |-- boot/
            |   |--bz-2.4.25-grsec-dl
            |   |--bzsecours
            |   |--bztest-2.6.3
            |   |--initrd.img
            |   `--secours.img.gz
            `-- grub/
                |-- menu.lst
                `-- pxegrub
            
            
            (*) ----- /etc/inetd.conf -----
            # "-s [répertoire]" : permet au serveur TFTP de changer de racine (chroot)
            # "-u [user] : le serveur TFTP prend l'identité de l'utilisateur [user]
            tftp   dgram   udp   wait    root    /usr/sbin/tcpd  in.tftpd -p -t 30 -v -u tftp -s /tftpboot
            

            • [^]Re: Menu lors d'un boot reseau

              Posté par kesako () le 17/04/2004 à 13:28. (lien). Évalué à 1.

              ok ca marche , en fait mon pb etait :

              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