General guidance FOG with non mod dhcp.



  • I was able to get fog working in virtual box on an isolated virtual network on Centos 6.5 and create and drop images on virtual computers. I now want to setup a real fog server which is on the standard network and can image actual computers via pxe boot in the bios. The issue is that the dhcp server where I am can not be modified with the pxe information. I know I have to use proxy dhcp and have tried to use the write up for ubuntu, but I am stuck. The computer is getting dhcp address, but not reading (says the pxe file is missing) the pxe image file and erroring out.

    Is there a step by step write up for Centos 6.5. What config files should I focus on to diagnose the issue?

    Thanks for your help.



  • I had changed the virtual network on my xp virtual computer which caused the freeze up error. When I change it back to the intel virtual nic the virtual xp connected to fog and I created and restored an image with no issues.

    Thank you everyone. Hopefully this will help someone else in future. My distribution was Centos 6.5 and FOG 1.20.


  • Moderator

    @JoeCT Amazing work, that will be going into the new article I’m working on for dnsmasq.


  • Senior Developer

    One of the things I always see this issue with is particularly buggy bios. Can you make your symlink point at the undionly.kkpxe rather than the undionly.kpxe?



  • Made some progress today. In my research on creating custom pxe boot file for Linux images I found another post talking about customizing ipxe boot files. Interestingly he mentioned adding two lines in the dnsmasq.conf file. In Centos 6.5 this file is in the /etc folder. When I examined the file the two lines where there, but remarked out.

    # Include a another lot of configuration options.
    conf-file=/etc/dnsmasq.d/ltsp.conf
    conf-dir=/etc/dnsmasq.d
    

    After I un-remarked and added the lines above restarted the service and my test system promptly displayed my ipx option option screen 30 second countdown: A network boot, B hard drive boot.

    I selected network boot and I was shocked to see the standard fog screen come up. This may have fixed it?

    Unfortunately when I tried to register the computer the process jammed with an error

    /bzImage32… 21%

    I am very close now though and with some more work I think this will work in Centos 6.5 not using fog as a dhcp server but as a proxy dhcp server with the fog pxe boot options.

    I am happy. Hope this helps someone else this was painful to figure out. I now understand the .0 automatically being added. I still don’t understand the difference between the undionly.pxe file and the unkionly.kpxe file, but I am taking this as a win!!!

    Thanks for your help guys.



  • I think this is what is going on. I am going to try it again tonight. I think I am very close. PXE is very cool. People are booting operating systems, and linux install images with it. Very cool. I did not know it was so powerful.

    Thanks for your help guys. I am learning so much from this.

    https://forums.fogproject.org/topic/4915/unidonly-0-question


  • Moderator

    @Tom-Elliott It’s really a shame how confusing it is…

    I am going to try to write a script that will do all of this stuff for me, and then I’ll share. Give me some time.


  • Senior Developer

    I think we need to clarify a few things.

    DNSMASQ in PROXY DHCP is really strange from my findings. Some of this is a bit old, but still operation.

    One of the first things to note.

    The bootfile and the pxe items are two SEPARATE THINGS.

    Particularly:

    dhcp-boot=undionly.kpxe,,x.x.x.x
    

    AND

    pxe-service=X86PC, "Boot from network", undionly
    

    With this setup, you will need to create TWO links/copies of the .0 files.

    One to undionly.0 from whatever file you want, the other for the first name (undionly.kpxe). (as undionly.kpxe.0)

    This is frustrating and confusing I know. Why do it this way I haven’t a clue.

    I’d recommend commonize the file names. If your boot file is looking for undionly.kpxe, change the pxe-service line to undionly.kpxe. If you want to use just undionly, then change both lines to show as the same file and create the undionly.0 file to whatever real file you want it to point at.

    Hopefully it makes sense.


  • Moderator

    @JoeCT You still need to replace the line “dhcp-boot=undionly.kpxe,x.x.x.x” like I mentioned earlier. Also, it appears that your config is missing the bottom line but I’m assuming that was a copy/paste error.

    If you created a symlink named undionly.0 then you need to specify undionly.0 in your ltsp.conf file. Other than that, You’re sym-link looks good.

    In other words, the sym-link and the ltsp.conf file must agree with each other lol.


  • Senior Developer

    @JoeCT big font is because of markdown. Wrap the config with three backticks, then new line, the paste contents, new line, three backticks. The back tick usually is shift tilda (~)



  • Also changed this line to reflect the ip address of the server

    dhcp-boot=undionly.kpxe,x.x.x.x

    Sorry about the giant font.



  • ltsp.conf file contents.

    # Don't function as a DNS server:
    port=0
    
    # Log lots of extra information about DHCP transactions.
    log-dhcp
    
    # Dnsmasq can also function as a TFTP server. You may uninstall
    # tftpd-hpa if you like, and uncomment the next line:
    # enable-tftp
    
    # Set the root directory for files available via FTP.
    tftp-root=/tftpboot
    
    # The boot filename, Server name, Server Ip Address
    dhcp-boot=undionly.kpxe,,x.x.x.x
    
    # rootpath option, for NFS
    #dhcp-option=17,/images
    
    # kill multicast
    #dhcp-option=vendor:PXEClient,6,2b
    
    # Disable re-use of the DHCP servername and filename fields as extra
    # option space. That's to avoid confusing some old or broken DHCP clients.
    dhcp-no-override
    
    # PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
    pxe-prompt="Press F8 for boot menu", 30
    
    # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    # This option is first and will be the default if there is no input from the user.
    pxe-service=X86PC, "Boot from network", undionly
    
    # A boot service type of 0 is special, and will abort the
    # net boot procedure and continue booting from local media.
    #pxe-service=X86PC, "Boot from local hard disk", 0
    
    # If an integer boot service type, rather than a basename is given, then the
    # PXE client will search for a suitable boot service for that type on the
    # network. This search may be done by multicast or broadcast, or direct to a
    # server if its IP address is provided.
    # pxe-service=x86PC, "Install windows from RIS server", 1
    
    # This range(s) is for the public interface, where dnsmasq functions
    # as a proxy DHCP server providing boot information but no IP leases.
    # Any ip in the subnet will do, so you may just put your server NIC ip here.
    # Since dnsmasq is not providing true DHCP services, you do not want it
    # handing out IP addresses.  Just put your servers IP address for the interface
    # that is connected to the network on which the FOG clients exist.
    # If this setting is incorrect, the dnsmasq may not start, rendering
    # your proxyDHCP ineffective.
    

    Mod edited to use code box.



  • tftp looks to be good. I can transfer file from linux and windows 10 hosts from the server with no isues.

    Result from permissions of /tftpboot.

    $ ls -laht /tftpboot
    total 2.6M
    dr-xr-xr-x. 26 root root 4.0K Aug 11 12:57 …
    drwxrwxr-x 2 fog root 4.0K Aug 11 11:48 .
    lrwxrwxrwx 1 root root 23 Aug 11 11:48 undionly.0 -> /tftpboot/undionly.kpxe
    -rw-rw-r-- 1 root root 294 Aug 10 15:54 default.ipxe
    -rw-rw-r-- 1 fog root 145K Aug 10 15:54 vesamenu.c32
    -rw-rw-r-- 1 fog root 100K Aug 10 15:54 undionly.pxe
    -rw-rw-r-- 1 fog root 374K Aug 10 15:54 undionly.kpxe.INTEL
    -rw-rw-r-- 1 fog root 100K Aug 10 15:54 undionly.kpxe
    -rw-rw-r-- 1 fog root 100K Aug 10 15:54 undionly.kkpxe
    -rw-rw-r-- 1 fog root 162K Aug 10 15:54 snponly.efi
    -rw-rw-r-- 1 fog root 17K Aug 10 15:54 pxelinux.0.old
    -rw-rw-r-- 1 fog root 25K Aug 10 15:54 memdisk
    -rw-rw-r-- 1 fog root 380K Aug 10 15:54 ipxe.pxe
    -rw-rw-r-- 1 fog root 379K Aug 10 15:54 ipxe.krn
    -rw-rw-r-- 1 fog root 380K Aug 10 15:54 ipxe.kpxe
    -rw-rw-r-- 1 fog root 380K Aug 10 15:54 ipxe.kkpxe
    -rw-rw-r-- 1 fog root 840 Aug 10 15:54 boot.txt


  • Moderator

    @JoeCT So since I don’t know where you’re problem is, I’m going into information gathering mode.

    Can you verify you can get the correct file from a laptop or workstation?

    https://wiki.fogproject.org/wiki/index.php/Troubleshoot_TFTP

    There are instructions in the top of that article for testing TFTP. Try to get the file undionly.kpxe.0 and then try to get undionly.kpxe and let us know what happens. Screen shots or copy/pastes of the output would be helpful.

    Also, if you could re-post your current ltsp.conf file as well, that would help too.

    And, if you could run this command on your FOG server and give us it’s output, that’d help also:

    ls -laht /tftpboot
    


  • dnsmasq is running, when I issue the restart command I get an dnsdomainname:Unknown host message, but the service does restart and shows as running.

    Made the changes to the ltsp.conf file as you suggested and then restart the server.

    dnsmasq.d.conf file is all remarked out nothing happening in that conf file.

    Same error:
    ipxe boot pulls a dhcp address then gets the error:
    Nothing to boot: No such file or directory (http://ipxe.org/2d03e13b) No more network devices
    Fatal: Could not read from the boot medium! System halted.


  • Moderator

    @JoeCT I’ve found that configuration for dnsmasq is not OS dependent. The config we have in the WiKi here works on any platform mostly - with minimal issues.

    You have to fill in this part, also:

    dhcp-boot=undionly.kpxe,,x.x.x.x
    

    You should set it to this:

    dhcp-boot=undionly.kpxe,192.168.15.50,192.168.15.50
    

    Also, did you create your symbolic link yet? For this instance, the command might be something like this:

    ln -s /tftpboot/undionly.kpxe /tftpboot/undionly.kpxe.0
    

    Is dnsmasq running?
    Report back with what happens.



  • Sorry for the large font, not sure what happened when I pasted the text from gedit?



  • ltsp.conf file. I took it off the wiki page and put my ip address in on the bottom. I am using Centos 6.5, but most of the documentation on this I can find is for ubuntu.

    ipxe boot pulls a dhcp address then gets the error:
    Nothing to boot: No such file or directory (http://ipxe.org/2d03e13b) No more network devices
    Fatal: Could not read from the boot medium! System halted.

    Almost looks like it is not reading the pxe file or config right?

    # Don't function as a DNS server:
    port=0
    
    # Log lots of extra information about DHCP transactions.
    log-dhcp
    
    # Set the root directory for files available via FTP.
    tftp-root=/tftpboot
    
    # The boot filename, Server name, Server Ip Address
    dhcp-boot=undionly.kpxe,,x.x.x.x
    
    # Disable re-use of the DHCP servername and filename fields as extra
    # option space. That's to avoid confusing some old or broken DHCP clients.
    dhcp-no-override
    
    # PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.
    pxe-prompt="Press F8 for boot menu", 30
    
    # The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,
    # Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
    # This option is first and will be the default if there is no input from the user.
    pxe-service=X86PC, "Boot from network", undionly
    
    # This range(s) is for the public interface, where dnsmasq functions
    # as a proxy DHCP server providing boot information but no IP leases.
    # Any ip in the subnet will do, so you may just put your server NIC ip here.
    # Since dnsmasq is not providing true DHCP services, you do not want it
    # handing out IP addresses.  Just put your servers IP address for the interface
    # that is connected to the network on which the FOG clients exist.
    # If this setting is incorrect, the dnsmasq may not start, rendering
    # your proxyDHCP ineffective.
    dhcp-range=192.168.15.50,proxy
    

    Mod edited to use code box.


  • Moderator

    The guide in the WiKi is really… terrible lol. I’ve been intending to clean it up forever but it’s going to be a daunting task.

    Can you post your ltsp.conf file here so we can take a look at it? It’s likely a typo or sym-link issue.

    Also - I would advise you to keep your fog server virtualized; snapshots are an amazing thing. We have many, many members and data to show that a virtualized FOG server performs just fine under the heaviest loads. However it’s up to you.

    Oh and here’s the wiki link if you haven’t already found it: https://wiki.fogproject.org/wiki/index.php/Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server

    I think I’m going to start a draft of a new article about dnsmasq tonight.


Log in to reply
 

382
Online

39.3k
Users

11.0k
Topics

104.4k
Posts

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