pxe/ipxe dnsmasq next-server undionly config tip(s)



  • Just wanted to add my $.02 worth of info.
    This may already be covered somewhere but I couldn’t find it. At least not where it makes it clear enough

    My experience has been with ubuntu based linux. Specifically LinuxMint currently 17.3

    I say this because most of the write ups assume or seem to assume either you have a configurable dhcp or that all the options in ltsp.conf work as expected. Or that you took mind reading 101. I, like many , am not a linux guru but i can manage. I’ve played with linux for many years but not enough to know everything like in windows. So hopefully this is helpful to some of you.

    so…here we go…

    For anyone having next-server problems I found that you may need to add the dhcp-option setting into dnsmasq.conf in

    /etc/dnsmasq.conf

    to make clear… if you have next-server, tftp download problems, or download/operation not supported errors with undionly.xxx try adding :

    dhcp-option=66,"x.x.x.x"
    

    to /etc/dnsmasq.conf
    Where x.x.x.x is the IP of your tftp server.
    At least in my case my tftp/fog/dnsmasq are all the same. DHCP is seperate and not mine to edit/config. This has been mostly for testing.

    I’m not sure if the quotes are needed or not. try both ways if one doesn’t work.
    you can also try adding:

    dhcp-boot=undionly.kkpxe,,X.X.X.X
    

    use whatever undionly.xxx you may need. Or try the ipxe.xxx. although the ipxe files havent worked for me yet. Just in case you new…these files are located in /tftpboot. Or whtever you made be your tftp root. /tftproot is default with ubuntu/fog This line may also NOT be needed as the boot file can come from the next info in ltsp.conf.

    /etc/ltsp.conf

    The line:

    pxe-service=x86PC, "Boot from Network", pxelinux
    

    is what will load your boot file. in this case it will look for pxelinux.0
    No I dont know why it adds the 0. Just rename your undionly file to match. I usually make a copy and then rename.
    so in my case i usually make a list:

    pxe-service=x86PC, "Boot from Network pxelinux", pxelinux
    pxe-service=x86PC, "Boot from Network undi.kpxe", undionly.kpxe
    pxe-service=x86PC, "Boot from Network undi.kkpxe", undionly.kkpxe
    
    

    The line in quotes is what will appear when you initially network boot. The file name at the end is what is important. At least as far as the file name it will try to find. The bit in quotes is just an echo for you at the console. You could put “I’m going to boot someones ass if this doesnt work again” but rem, you may not be the only one reading the text.

    Oh also these pxe-service…etc work just fine from ltsp.conf. at least so far.
    (etc/ltsp.conf) But can be added to dnsmasq.conf. Although I havent tested that to see how it works yet.

    If you decide to use pxelinux.0 it will try to point to a folder called pxelinux.cfg
    and a file called default. from your tftp root.

    so in my case my tftp root is /tftpboot
    pxelinux.0 will point to

    /tftpboot/pxelinux.cfg/default.0
    

    That location will have to be created manually. And make a basic config in default.0 such as:

    DEFAULT vesamenu.c32
    MENU TITLE Fog Reimage Menu
    MENU COLOR TITLE        1;36;44    #ffffffff #00000000 std
    LABEL iPXE Boot
    MENU DEFAULT
    KERNEL ipxe.krn
    APPEND dhcp && chain http://x.x.x.x/fog/service/ipxe/boot.php?mac=${net0/mac}
    PROMPT 0
    TIMEOUT 1
    
    

    That will at least boot you to fog menu. rem. to change the x.x.x.x to your fog server.

    there is a write up here for more details:
    https://wiki.centos.org/HowTos/PXE/PXE_Setup/Menus

    As far as I understand that is the older way of doing things but it may solve some frustrations.

    now if anyone can help with Wimboot and getting past needing a driver… That would be awesome.

    Hope this helps someone.

    I don’t know much but will offer any assistance I can from my trials and errors.

    A brief recap. If some of the settings in /etc/ltsp.conf are not working. Try them in /etc/dnsmasq.conf.

    Thanks for stopping by.
    Jason


  • Moderator

    @KnightRaven we are an active crowd. :-)



  • @Wayne-Workman
    Yes that article helped originally. I started trying fog a year ago but my original install quit working and I gave up. When I tried again a couple of months ago I was having problems with the next-server issue. What most docs seem to say is to change the DHCP settings. Well since I can’t change the actual school server and my fog box isn’t doing real dhcp I had trouble nailing down where to make the change. I found pages talking about the dhcp-option that I posted but it didn’t fix it in the ltsp.conf file. I finally tried to add the change to dnsmasq.conf and that’s when it started working. I’m not sure what the difference is or was.

    And thanks for the replies. I wasn’t expecting much but to lend a few tidbits of knowledge. Wasn’t expecting a developer to reply. Very cool.


  • Moderator

    @KnightRaven Did you ever find this article? https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server

    The name sucks, yes. We should just name it “proxyDHCP”.



  • @Sebastian-Roth Thanks for the info. I was unaware of that problem. This month was the first time i tried using pxelinux.0 and it helped me debug. I will refrain or at least make aware that there could be problems using that method in future posts.


  • Developer

    @KnightRaven Thanks for your detailed description. I am sure some people might find it useful.

    But please do me a favor and be more careful with suggesting (or at least pointing out) pxelinux.0 to people in the forums. Over and over we see people asking about a kernel panic and after a day or so asking questions and digging it all up it turns out that they were using pxelinux.0 instead of one of the iPXE binaries like undionly.kpxe.


Log in to reply
 

442
Online

39.3k
Users

11.0k
Topics

104.6k
Posts

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