Changing the standard PXE boot fog 1.20

  • I have searched on the wiki and in the forum, but cannot find this info, maybe someone can… !?

    Ok, so I used to change the default PXE menu, where is that located now ??

    I know how to do an advanced menu using the FOG web gui, like I said want to change the default fog menu
    also how do you password protect certain menu options ?

  • Wow, these upgrades have been awesome. Thank you, I like the simplicity of the advanced menu configuration now. I am having trouble loading a different kernel though. In the old pxe, I used the following code to load Clonezilla:

    [CODE]MENU LABEL Clonezilla Live
    KERNEL vmlinuz
    APPEND initrd=initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run=“ocs-live-general” ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch=“no” ocs_lang="" vga=788 nosplash noprompt fetch=tftp://IP_ADDRESS_OF_FOG_SERVER/filesystem.squashfs[/CODE]

    I also had a clonezilla folder in my old tftpboot folder with vmlinuz, initrd.img, filesystem.squashfs The initrd.img was my Clonezilla image. So, any help in loading vmlinuz kernel with those would be rather helpful. If I have to edit the php code I will, but I am just not sure where I should be putting these options or their syntax (if they are available).

    The regular Clonezilla live ISO file is a bit too large I think, or something with it isn’t compatible with memdisk. Any help or pointing in a good direction is vastly appreciated.

  • Ah the persistence maybe the attraction 🙂

  • Developer

  • Developer

    i’d like to add that, when you create custom menu’s using the advanced menu setting, it persists through upgrades. it is stored in the database instead of in a file that can be overwritten

  • Thanks for the attention Tom, I have been looking in ixpe menu’s and found it as clear as mud (not clear)

  • I understand what you want ed, but the simplest approach I can give you is to use the “Hide menu” feature.

    If you want alternate menu’s on the “main” menu system there is no implementation of this addition yet. I haven’t been able to figure out how to add hooks to allow customization of this for people yet. It’s not an easy feat for me and I don’t expect it would be any easier for any one else. That’s why we recommend the use of the Advanced Menu for “custom” menu’s. Responses of “I don’t want it that way” are perfectly reasonable, but I ask that you delve into correcting this yourself and post your code if you can figure out a way that upgrades won’t break this functionality for you either.

    Just my two cents.

    Understand, we are [b]NOT[/b] using pxelinux.0 anymore. For this reason, the “old” methods are no longer available. You can re-add this if you deem it necessary but our tasking are not generated in /tftpboot/pxelinux.cfg anymore. Our “simplest” approach is to use the hide menu and when I get it working, I’ll add the ability to hook into the menu system so you can have all of these functions.

  • Developer

    if you don’t want to use a second menu that you can edit just by pasting code into your browser, then have fun editing php code in the bootmenu.class.php file

  • I set a password for the advanced screen, in the olden days, I could password -simple- every entry in the default menu
    Still not clear on how to change the default menu, I don’t want a second “advanced” menu

  • Developer

    the fog boot menu is php generated text in ipxe script format loaded by the ipxe network boot kernel
    options to secure the menu and menu hiding can be done by the settings in the pxe boot menu
    some options for scripting passwords on entries in the advanced boot menu have been made available as well

  • And I am lost looking at ipxe 😞 I’m thinking it’s somewhere in the undionly.pxe <sigh>

  • aha, doing is learning. Here’s the file on the webserver:


    which leads me to: /var/www/service/ipxe/

    However looking at boot.php I see :

    header(“Content-type: text/plain”);
    if ($_REQUEST[‘mac0’] && !$_REQUEST[‘mac1’] && !$_REQUEST[‘mac2’])
    $_REQUEST[‘mac’] = $_REQUEST[‘mac0’];
    else if ($_REQUEST[‘mac0’] && $_REQUEST[‘mac1’] && !$_REQUEST[‘mac2’])
    $_REQUEST[‘mac’] = $_REQUEST[‘mac0’].’|’.$_REQUEST[‘mac1’];
    else if ($_REQUEST[‘mac0’] && !$_REQUEST[‘mac1’] && $_REQUEST[‘mac2’])
    $_REQUEST[‘mac’] = $_REQUEST[‘mac0’].’|’.$_REQUEST[‘mac2’];
    else if ($_REQUEST[‘mac0’] && $_REQUEST[‘mac1’] && $_REQUEST[‘mac2’])
    $_REQUEST[‘mac’] = $_REQUEST[‘mac0’].’|’.$_REQUEST[‘mac1’].’|’.$_REQUEST[‘mac2’];
    $MACs = HostManager: arseMacList($_REQUEST[‘mac’]);
    $Host = $FOGCore->getClass(‘HostManager’)->getHostByMacAddresses($MACs);
    new BootMenu($Host);

    So a dead end… help