Help changing from pxelinux.0 to undionly.kpxe (Boot Menu)



  • Hi,

    Since upgrading fog to version 1.1.2 we have had to change to boot options to undionly.kpxe from the previous pxelinux.0 as fog was not supporting this anymore. We had previously created a boot menu in which we had tools such as a bioseditor and recovery tools etc. along side the quick reg and full host reg task (stored within tftp>pxelinux.cfg). However now that this option has changed the menu has defaulted to ipxe boot menu and we have lost these options that had been created. I have a couple of questions around this:

    1. Is it possible to copy the old iso’s for bios editor etc that where used for pxelinux.0 to new tftp folder and use for undionly.kpxe ?

    2. Is the process for undionly.kpxe the same in which you still need to have a folder called pxelinux.cfg within the tftpboot folder or is now different?

    If any one could shed some light on this I would be grateful as I have read around the forum and other forums and am a bit confused to the process around this.

    Thank you
    Scott


  • Senior Developer

    I’ve now added the ability to add “individual” password login settings to menu items
    My current menu that is tested and working, although very minimal, is:
    [code]isset ${userID} && goto do_me || goto MENU
    :do_me
    kernel bzImage root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=10.10.10.1 web=10.10.10.118/fog/ consoleblank=0 loglevel=4 type=down img=win7actsysprep ftp=10.10.10.118 imgType=n osid=7 storage=10.10.10.118:/images capone=1 imgFormat=0
    imgfetch init.xz && boot || goto MENU
    :MENU
    menu
    item --gap Please Select one of the images below
    item fog.local Boot from hard disk
    item d101_64 D101 Base Image (64 bit load)
    item return Return to main menu
    choose --default fog.local target && goto ${target}
    :fog.local
    sanboot --no-describe --drive 0x80 || goto MENU
    :d101_64
    chain -ar ${boot-url}/service/ipxe/advanced.php?login=1 || goto MENU
    :return
    chain http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php?mac=${net0/mac} || goto MENU
    autoboot[/code]

    Notice the :d101_64 how it has the [B]chain -ar ${boot-url}/service/ipxe/advanced.php?login=1 || goto MENU[/B] ?That’s all that’s needed to have a “login” for your menu item. Notice the top where it says :do_me? This is important to note that it’s ABOVE the menu generation part of the advanced menu setup.

    As I stated, this is very basic, but a method to :sort: the different functions could be:
    [code]isset ${userID} && iseq ${bootnum} 1 && goto do_me ||
    isset ${userID} && iseq ${butnum} 2 && goto do_me2 ||
    goto MENU
    :do_me
    kernel bzImage root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=10.10.10.1 web=10.10.10.118/fog/ consoleblank=0 loglevel=4 type=down img=win7actsysprep ftp=10.10.10.118 imgType=n osid=7 storage=10.10.10.118:/images capone=1 imgFormat=0
    imgfetch init.xz && boot || goto MENU
    :do_me2
    kernel bzImage root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=10.10.10.1 web=10.10.10.118/fog/ consoleblank=0 loglevel=4 type=down img=blahblah ftp=10.10.10.118 imgType=n osid=7 storage=10.10.10.118:/images capone=1 imgFormat=0
    imgfetch init.xz && boot || goto MENU
    :MENU
    menu
    item --gap Please Select one of the images below
    item fog.local Boot from hard disk
    item d101_64 D101 Base Image (64 bit load)
    item return Return to main menu
    choose --default fog.local target && goto ${target}
    :fog.local
    sanboot --no-describe --drive 0x80 || goto MENU
    :d101_64
    set bootnum 1
    chain -ar ${boot-url}/service/ipxe/advanced.php?login=1 || goto MENU
    :d102_64
    set bootnum 2
    chain -ar ${boot-url}/service/ipxe/advanced.php?login=1 || goto MENU
    :return
    chain http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php?mac=${net0/mac} || goto MENU
    autoboot[/code]


  • Testers

    I missed the “hide menu” option as well first time round. It not only hides the display menu but when you hit “Esc” to get into the menu it prompts you for your fog username/password, protecting all of your menu items - including the advanced ones.



  • And I’ll also add… if you want to password protect your PXE tools from students, etc, then just select the ‘Hide Menu’ option in FOG PXE settings. I managed to totally missed that at first. Then you can press the hotkey and login with the normal FOG login :)



  • I too had my sites all setup with PXELINUX + FOG + WDS/WIM images + a stack of other bootdisks via pxe.

    The good news is it can all be linked back up by chain booting back to pxelinux or to WDS. This is what my advanced PXE menu config looks like:

    menu
    item --gap – ---------------- ICT SERVICES ----------------
    item winpe Windows PE Ghost, Dell BIOS (via TFTP)
    item icttools ICT Tools Menu
    item ipxedemo iPXE Online Boot Demo
    item shell iPXE Shell
    item hostinfo About This Computer
    item return Return to FOG Menu

    choose --default hostinfo --timeout 60000 target && goto ${target}

    :winpe
    chain tftp://fog.XXXXXXXXXXXXX.com.au/boot/pxeboot.0
    goto MENU

    :icttools
    chain tftp://fog.XXXXXXXXXXXXX.com.au/pxelinux.0
    goto MENU

    :ipxedemo
    chain http://boot.ipxe.org/demo/boot.php ||
    goto MENU

    :shell
    shell ||
    goto MENU

    :return
    chain http://${fog-ip}/${fog-webroot}/service/ipxe/boot.php?mac=${net0/mac} ||
    prompt
    goto MENU

    :hostinfo
    echo ABOUT THIS COMPUTER : ||
    echo ------------------------------||
    echo MAC address…${net0/mac} ||
    echo IP address…${ip} ||
    echo Netmask…${netmask} ||
    echo Serial…${serial} ||
    echo Asset number…${asset} ||
    echo Manufacturer…${manufacturer} ||
    echo Product…${product} ||
    echo BIOS platform…${platform} ||
    echo ||
    echo ||
    echo Press any key to return to Menu ||
    prompt
    goto MENU

    autoboot[/CODE]

    Note I’m running multiple sites/TFTP/Storage nodes, so fog.XXXXXXXXXXXXX.com.au is setup with netmask ordering DNS to resolve to the local sites TFTP server :)



  • Thanks for the reply - managed to get some clarity around this and have now been successful in setting up another advanced menu using the advanced boot menu configuration options. The last thing outstanding is that I would like to set a password on the advanced menu so that normal users cannot gain access - is there a way of writing this in to the code itself?

    Thanks again. :D


  • Developer

    1. sort of, there are a number of ways to do so. i recommend starting here [url]http://www.fogproject.org/wiki/index.php/Advanced_Boot_Menu_Configuration_options[/url]

    2. it is entirely different. the boot menu you now see is actually a php based web page being displayed as a boot menu. it dynamically changes with tasks that have been scheduled for hosts.


Log in to reply
 

375
Online

39198
Users

10850
Topics

103281
Posts

Looks like your connection to FOG Project was lost, please wait while we try to reconnect.