Unable to boot off FOG server
jliketheletter last edited by
So I have been tasked with setting up an imaging solution for the company I work for.
A bit about our network:
DHCP is being taken care of by a Cisco Meraki Router. (so no option 66 & 67)
I have sucessfully installed FOG on a Ubuntu 16.04.4 LTS
I am updated to the latest version of FOG as well, I think it’s like 1.54.
I am running DNSMASQ as well, since I am unable to control or edit the DHCP properties of the network.
On my first install run I was having a problem with the Meraki router tagging the Dnsmasq packets as a secondary DHCP server. Somehow, I was able to correct that problem. But was then hit with another. When I would boot client PC’s via NIC it would show the option to boot from fog server but would always give me the PXE-T01. Now the only solutions that I was able to find had to deal with the FOG server actually handling the DHCP traffic, which mine is not.
Now I am getting a PXE-M0F error, and I am getting tired of this. I checked the cables, I’ve reloaded the server umteen times.
Can I please get some help?
jliketheletter last edited by jliketheletter
@george1421 Ok, sorry about not getting back to this sooner, but work has been a bit busy. So anyway, I made the changes to the config file. (basically I created the ltsp.conf because it did not exist in the dnsmasq.d directory) there was only a README file. I was able to do a TCP dump and cap the information. But I have a feeling it will not be much help,
I did see that I am running 2.75 version of dnsmasq, but I can reload the VM to just before I installed DNSMASQ and make sure the 2.76 version is installed. *will update if there are any changes from that versioning.
Thanks for the help!
@jliketheletter Sorry I didn’t see this until now.
The dnsmasq.conf file should not be touched. You will see in there it tells dnsmasq to look for files in /etc/dnsmasq.d for config files. In that directory you should have only one config file. Typically its called ltsp.conf. Don’t use your config file or any others, use the config file I provided. Don’t mix and match, just use the provided config file. That one has been proven to work.
One thing that you should confirm, make sure you have dnsmasq version 2.76 or newer. Version 2.76 is the first version that actually supports both uefi and bios systems dynamically. To find what version of dnsmasq is installed run this command
dnsmasq -vand it will print out the version number.
jliketheletter last edited by
One more question and this might seem like a stupid one. After I installed dnsmasq,
I didn’t have the /etc/dnsmasq/ltsp.conf file.
I only had /etc/dnsmasq.config. Which file should I be overwriting?
The information in the file looks close to what I have in the ltsp.conf file which is located in /etc/dnsmasq
but the other file is called dnsmasq.conf. So I guess what I am saying is where should this dnsmasq config file go? in the etc dir under that first file name? or in the /etc/dnsmasq folder uner the ltsp.conf file name?
Please remove your existing dnsmasq configuration and use my config file below.
# 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,,<fog_server_IP> # 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 # inspect the vendor class string and match the text to set the tag dhcp-vendorclass=BIOS,PXEClient:Arch:00000 dhcp-vendorclass=UEFI32,PXEClient:Arch:00006 dhcp-vendorclass=UEFI,PXEClient:Arch:00007 dhcp-vendorclass=UEFI64,PXEClient:Arch:00009 # Set the boot file name based on the matching tag from the vendor class (above) dhcp-boot=net:UEFI32,i386-efi/ipxe.efi,,<fog_server_IP> dhcp-boot=net:UEFI,ipxe.efi,,<fog_server_IP> dhcp-boot=net:UEFI64,ipxe.efi,,<fog_server_IP> # PXE menu. The first part is the text displayed to the user. The second is the timeout, in seconds. pxe-prompt="Booting FOG Client", 1 # 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 to FOG", undionly.kpxe pxe-service=X86-64_EFI, "Boot to FOG UEFI", ipxe.efi pxe-service=BC_EFI, "Boot to FOG UEFI PXE-BC", ipxe.efi dhcp-range=<fog_server_ip>,proxy
Be sure to update
<fog_server_ip>with the actual IP address of your FOG server. Also understand that dnsmasq will only work with devices on the same subnet as the FOG server. To have dnsmasq support multiple subnets, you need to add the FOG server’s IP address to the last host in the dhcp-relay/dhcp-helper service on your vlan router. This is because dhcp is a broadcast based communication protocol. If there is a pxe booting computer on a different subnet, dnsmasq will not hear about it unless the FOG server is last in the list of dhcp servers in the dhcp-relay list.
Then when/if everything fails to get you pxe booting here is a guide to capture a pcap of the pxe booting process: https://forums.fogproject.org/topic/9673/when-dhcp-pxe-booting-process-goes-bad-and-you-have-no-clue You can use the fog server to capture the packets with tcpdump or you can use wireshark if the pxe booting client is on a different subnet. If you upload the pcap to a google drive and IM me the link or just post the pcap in the forum we can take a look at it for you. Be sure to use the filters defined in the tutorial to ensure we only get the pxe booting process and not other data flying down your network.