• So i’ve seen people post switching their servers over to gpxelinux for faster boot times, and using http instead of tftp. I now am running into a situation where we might need to use a tftp server at work for other programs, and our FOG server might be going away. From what i’ve read, you can use gpxelinux to boot over http instead of tftp. However, from when i’ve played with it, i’ve never actually been able to boot anything with gpxelinux. I get either vesamenu.32 errors, or that a URL syntax has been detected, and just fails. So i’m here to see if someone could write up a how to on how to switch FOG over to gpxe completely instead of regular pxe. I know people say it’s as easy as replacing pxelinux with gpxelinux, and some config changes, but I have yet to see anything work. Any write up would be appreciated!

  • In case anyone was reading this and hoping for an answer to making ubuntu 14.04 (Or any other distro really) Fog 0.33b svn updates easier, smoother, and automated even, I figured out how to do it and put it in a new thread linked below, enjoy 🙂


  • Developer

    ubuntu 14.04 is quite new and we’re still finding all it’s little quirks. the install is very smooth on most of the prior releases of ubuntu and a few other distros, requiring only the edit to the single config file for the sql password.

    regarding the earlier question of speeding up the uploads, if you lower the FOG_PIGZ_COMP it can go much faster at the cost of a little more disk space.

    and yes, there are probably more appropriate threads to post any other issues at this point

  • Also, is there anyway to make the updates for .33 releases smoother.
    For example the default webroot on ubuntu 14.04 is /var/www/html and I have the move the folder everytime. And I have to add in the mysql password in a few spots. I tried putting some of the settings in the /opt/fog/.fogsettings but it didn’t seem to work for everything.

    Should I be posting this stuff in a different forum post, it seems to have gone rather off topic from the gPxe/iPxe setup stuff.


    Also, you sir Tom Elliott, are a superhero.

  • r1536 released, should fix the picture callup issue as I just copied pasted from the main scripts of one that was already processed. It should be fixed now. Thank you,

  • Thank you very much.
    I updated to the latest release and gave that a try.
    It didn’t get to the menu I created with that example. It tried to load a background from a (Or something like that) address and then went back to the original menu with an all blue background. I can’t find a setting anywhere that points to that address.

    I’m giving the partclone a try on a rather large image (~250 GB) and it’s going slower than it had before. ~900 MB/min instead of ~1.3 GB/min. Though the first smaller partition uploaded in seconds at a speed of ~5 GB/min. Do you know of anyway to set up imaging through http, I understand it’s much faster. I haven’t found any working tutorials just yet.

    Though ultimately, I’m just happy it’s working again, and with iPxe and everything. Thanks for all your help.


  • :MENU
    item example1 Boot to disk
    item example2 Iso Boot
    item example3 Example Text 3
    sanboot --no-describe --drive 0x80 || goto MENU
    kernel memdisk iso raw
    initrd win764.iso
    boot || goto MENU
    kernel memdisk iso raw
    initrd win8-164.iso
    boot || goto MENU

    This is an example of how you can add menus to the system. Please update to the latest revision to make things work properly.

    Now this assumes that the win764.iso and win8-164.iso are loaded in {FOGWEBDIR}/service/ipxe/

  • of course you may need to add menus and stuff as well which you can see examples on ipxe.org site.

  • It’s no problem at all.

    Imaging doesn’t happen through http. That we’re still using nfs/ftp combination. However:
    Loading of image files (init.xz/bzImage/ISO’s) are loaded into memory over http by default with iPXE. It also givves us the ability to be dynamic with our stuff which is part of why we switched.

    I’ll look up how to load ISO’s through ipxe so I can give a more concrete answer to your questions.

    You could, potentially, just load the memdisk followed by the stuff. I think for the Advanced you’d want something along the lines of:
    initrd /images/mxp14.iso\n
    chain /memdisk iso raw\n

    You may have to download a memdisk and place it service/ipxe, but the above code should work fine.

  • I see that now. What would the syntax for that be for booting from an image from a folder at

    How do I know whether or not it’s imaging with http? Is that the default of iPxe or is there some other setting I still need to do?

    And is it normal for everything on the server to slow down tremendoulsy when imaging one computer, I feel like that shouldn’t be the case.

    Sorry to bombard you with questions, and thank you for your helpful answers.


  • The advanced option under the Pxe Menu settings from the FOG Configuration link. There are some caveats as you’ll have to format the init and kernel lines to match that of the /var/www/fog/lib/fog/BootMenu.class.php. Do not edit eh BootMenu.class.php unless you understand exactly what it’s doing. It’s pretty touchy about syntax for the Boot system to work. I can help you with it more if you need.

  • A couple more questions,
    [S]Is it possible to still use images created in FOG 0.32, or do I have to recreate all of them?[/S]
    Never-mind, figured that one out, needed to set old images to partimage and still set windows version to windows other for FOG .32 windows 8 images.

    Where do I customize the iPXE boot menu to add options for booting to iso’s and other such things (the equivalent to the PXE/gPXE /tftpboot/pxelinux.cfg/default file)?


  • Well, I’m not sure what i did different, maybe it was something in the most recent update of fog .33, maybe it was the ltsp.conf file (even though it looked the same to me) but it finally booted to the pxe menu! As far as I can tell I didn’t do anything different than before though. I must have obviously.

    I did have to comment out the port=0 line, otherwise my fog server loses internet connection.
    I also had to make the symlink of undionly.kpxe in /tftpboot (sudo ln -s undionly.kpxe undionly.0) as was suggestion in a different forum post.

    Thanks so very much for the help.


  • also try the ltsp.conf, from 0.33b, editing your information as needed. The example ltsp.conf is located in src/ipxe/src folder of the extracted or pulled trunk.

  • The dhcp-boot=undionly.0 should read as

  • I currently have Ubuntu server 14.04 with FOG 0.32.
    All those required gpxe files were in /tftpboot. I just tried adding them to /var/lib/tftpboot and /tftpboot/tftpboot and it still didn’t load ldlinux.c32.

    I’d prefer to be using FOG 0.33, which I’m about to try to do a clean install of again, because I know that gPXE isn’t being developed anymore, but I figured it was worth a shot when iPXE wasn’t working.

    I did follow the instructions on FOG .33, except I don’t a dhcpd.conf file for option 66 and 67. I had done the equivalent in the /etc/dnsmasq.d./ltsp.conf file with the (for iPXE) “dhcp-boot=undionly.0” (which was the symllink to undionly.kpxe) and “pxe-service=X86PC, “Boot from network”, undionly” lines. Should I be making a dhcpd.conf file somewhere if there isn’t one and I’m only running the dhcp proxy setup?

    My most recent apache error log is attached, but I don’t see anything related to PXE boot errors in it.

    Thanks again for the help.


  • When you installed 0.33b, did you follow the instructions? Particularly pertaining to the setting of options 66/67 on the dhcp server?

    The issue you’re describing is telling you what’s wrong. The ldlinux.c32 needs to be in /tftpboot or /var/lib/tftp/ depending on the systems infrastructure. With 0.33, however, this file is not used in any form. gPXE is no longer actively maintained. That said, my guess is your current almost working setup is pointing option 67 at the file named gpxelinux.0. I’d highly, still, recommend loading FOG 0.33, but if that doesn’t suite your needs, maybe install syslinux 5.10.
    Copy the gpxelinux.0, ldlinux.c32, and vesamenu.c32 files to your tftp working directory. In most natural install’s this can be found in either /tftpboot or /var/lib/tftp.

    If you need help with installing FOG 0.33, please let us know. I sure one of us could be of assistance.

  • Thanks for your speedy reply,

    I am currently working with Fog 0.32 on Ubuntu Server 14.04.

    I had numerous failed attempts to get Fog 0.33 and iPxe to work on Ubuntu Desktop 12.04, Ubuntu Server 14.04, and CentOS 6.5. I feel like I’m missing some simple step. I am working with an existing DHCP server that I don’t have access to any settings on. It has worked just fine with dnsmasq proxy settings with PXE on tftp in FOG 0.32, but the imaging is slow and can only reliably image one computer at a time.

    I have looked through the forums and the wiki many times, as well as elsewhere on the internet to no avail. I’ve tried multiple versions of syslinux files, tried using make or make install on syslinux (which failed everytime), apt-get install syslinux installed a much older version that didn’t work (version 4.xx as I recall), iPxe wouldn’t get past seeing the ip address to boot to and then would simply say TFTP. The closest I came with iPxe was a “iPXE is loading services” message that then quickly disappeared and booted to hard disk before you can see any messages. I’ve also tried different kernels, the stock that comes with the install, the 3.88 core, 3.14.1 made by you, and a custom version of 3.14 too. I could go on and on with my attempts to fix this, but that would take too long.

    The apache error log files didn’t have anything regarding PXE errors for me, just some database errors from when I reverted to a default FOG .32 installation and had to set the mysql password in a config file. So I just tried the gPxe method again to see if the apache error logs said anything about it, which they didn’t. I took a picture of the error screen I keep getting and attached it to this message.
    This has been quite the headache to figure out, I’m sure there some super simple thing I’m missing to get all this http imaging fun times to work right, perhaps something that’s assumed is already done or that everyone knows and I just didn’t get the memo. Since I have all my images backed up, restarting in a whole new OS isn’t a big deal if it’s necessary. And I would prefer to have it working with FOG 0.33 if you have more advice on that router.

    Thanks for the help,

    [url="/_imported_xf_attachments/0/686_fog gpxe.jpg?:"]fog gpxe.jpg[/url]

  • You could try 0.33 if you wanted. It’s already using iPXE, fairly successfuly.

  • I feel like there’s something I’m missing. I followed the wiki page on my ubuntu server and I get a “ldlinux.c32 couldn’t load” I’ve tried googling the error many times and can’t find any applicable fixes.
    Am I supposed to install syslinux, or only copy the files?
    How did you get iPxe working wolf_from_the_north? I can’t get that working either, and would appreciate some guidance.

    Please and thank you 🙂