Fresh VM and Fog 1.2.0 install having issues with iPXE boot

  • After a new install of Fog 1.2.0 on Ubuntu Server 14.04 LTS I having issues with getting to the PXE menu. I get something like “Error 040ee119”. The machines that I have tried it on get the same error, we have Dell 3010 and older Dells.

    I set the option 66 to Fog server IP and 67 to undionly.kpxe.

    I saw another thread about getting the latest version of undionly.kpxe which caused the PXE boot to hang it seemed.

    I have not tried anything with the fog kernel. Any ideas are appreciated. I can provide any other troubleshooting information needed.


  • Good news, I have my 1.2.0 Fog server up again. After building my own ipxe kernel most of my machines can pxe boot properly. I used the bios and uefi @Sebastian-Roth made in that post and both seem to work. Its not asking me for the tftp IP any more and just registered/imaged/deplayed a few machines 😄

  • Just wanted to update everyone on where I got today. I was unable to get the trunk version of fog install per these directions:

    So remembering that the content filter was blocking stuff and fixing that let me register clients, upload and deploy images, etc (The only issue that remains is the being prompted for the TFTP server IP), I decided to fire up my attempt at rebuilding our old 0.32 Fog server, and it is doing everything I need it to. I am able to image, upload and deploy, and I never get prompted to put in the TFTP server IP. For that install my option 66 is the server IP as expected, and I am using pxelinux.0 as my boot file for option 66.

    I’m hoping that might make since to yall and maybe make something click as to what my problem was with new install (which was 1.2.0->upgraded to a version of trunk that I downloaded on 4/15/2016).

    If that makes you think of anything, or you have other questions let me know. Since my immediate need seem to be met for now I was planning on installing 1.2.0 again and fooling with it and see if I can figure out whats going on once I have caught up on other projects.

  • @Sebastian-Roth OK, thats what i figured but wanted to make sure. I am actaully following george1421 suggestions and setting up a fresh fog server with the trunk version. I will see what those defaults do, and then try out the custom kernel too if I need to.

  • Moderator

    @jcook said:

    Also I notice you say which options are yes and no, but some are ticked by default, if it isn’t listed either way in the wiki should I un-tick it?

    Follow the instructions and leave defaults if they are not mentioned in the wiki article. I hope I got it all right.

    If you name the file tom-undionly.kpxe or ipxe.kpxe you need to modify your DHCP option 67 to match the filename!

  • Tom - Yes, I used this code in rom-o-matic:

    set next-server
    chain tftp://${next-server}/default.ipxe

    Does the file name matter? I have been make new name (ie: tom-undionly.kpxe) and not overwriting what was there any more.

    @george1421 I have upgraded from 1.2.0 to trunk revision 7188, but can do as you suggested and go straight to trunk on a new VM. I did use a m0n0wall router and made a test network on a unmanaged switch and 1.2.0 worked fine. I just don’t know enough to set up a new DHCP server that will work with my switches and vlan/subnets, etc. on my own. DHCP is handled by a Adtran Netvanta 3140.

    @Sebastian-Roth When I used the wiki article you mention, and Tom’s ipxe kernel I get something like “TFTP Error: File not found.” Just in case it matters, the filename the that rom-o-matic gives the file is “ipxe.kpxe”. Also I notice you say which options are yes and no, but some are ticked by default, if it isn’t listed either way in the wiki should I un-tick it?

  • Moderator

    @jcook You are on the right track with your self build iPXE binary (as my option 60 didn’t do what I expexted!)… I always wanted to document the options needed and so I did just now:

  • Moderator

    Ok, this thread has gone on for 3 pages now. I think we need to regroup and understand where things are at.

    My first recommendation is for the OP to upgrade to the latest trunk version (if not already there). Trying to chase issues with 1.2.0 doesn’t add value since its so old. That way we will have the latest kernel and inits as well as a known configuration for ipxe. My recommendation would be to spin up a new VM and install the trunk version directly on the vm and bypass upgrading from 1.2.0 stable.

    Secondly we need to identify the dhcp server being used here and if at all possible use either a microsoft dhcp server or a linux dhcp server. Lets try to remove any (random) dhcp server and proxy dhcp issues from the picture.

    Third, I think we have the networking environment fixed with the portfast setting in the switch.

    (this will sound a bit condescending but its not intended to be that way). Setting up the environment for hosting FOG is just not that difficult when we are using a consistent build and a standard pxe booting resources. Simply if your dhcp server doesn’t support pxe booting properties, then get a different one.

  • @jcook just guessing this is the ipxe file you created?

  • Tom, when I use that iPXE kernel you suggested i get something similar to the following (transcribed from a video i had to freeze frame to catch lol) :

    tftp:// ok
    params: command not found
    Could not boot: Exec format error (

    Not sure if it matter, but my cell phone videos is hard to read the 0’s or 8’s in that url.

  • How can I download/overight the files in /tftpboot/ to be the defaults? I should just given them new names but now I can’t remember what I renamed them to 100%.

  • @Sebastian-Roth I added the option 60, but it didn’t seem to help, but it did give this"

    PXE-E51:  No DHCP or proxyDHCP offers were received.
  • Moderator

    Have your tried my last suggestion yet?

    But please add another option (number: 60, type: String, value: PXEClient) and see if that helps.

    In that pcap file I see option 67 set to… No wonder you are back to the tftp server prompt…

  • Here is a packet capture from the router that the support team was able to set up. Maybe it will shine some light.

    0_1461165877412_000001_FOG_1461164083.pcap is actaully the original that came with Fog that I renamed.

  • #!ipxe
    cpuid --ext 29 && set arch x86_64 || set arch i386
    param mac0 ${net0/mac}
    param arch ${arch}
    param platform ${platform}
    param product ${product}
    param manufacturer ${product}
    param ipxever ${version}
    param filename ${filename}
    isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme
    isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme

  • @jcook What’s the contents of your /tftpboot/default.ipxe file?

  • It still asks me for the IP of the Fog server. This stuff is mostly beyond me but maybe that will help yall out lol.

  • @jcook That is because you have it looping itself.

    It’s ALWAYS going to be loking to get the next-server and filename which is the same you’re telling it to request.

    Your ipxe kernel file should be

    set next-server
    chain tftp://${next-server}/default.ipxe

  • I built my own iPXE kernel with this:

    set next-server
    set filename undionly.kpxe
    chain tftp://${next-server}/${filename}

    Then saved the file to my fog server and updated option 67 to the file name. Also changed owner and group. Boot client and at first it didn’t ask for the IP, but it loops and never loads the Fog menu. I think I can see why its doing it but don’t what change.