FOG .33b PXE Boot woes
-
I set up a new fog server on my linksys router last night and ran into the same issue, I am going to look over my configurations when I get back to my working box this afternoon and make sure everything is in it’s place.
-
The only major trick to running dual nic’s is when you set the one FOG will use for imaging to static for whatever network it will be using you need to leave off the default gateway on it or you will lose all internet connectivity(Assuming the network used is not connected to your actual network), if it is connected to your actual network then you should not be using a second NIC in the first place.
-
I Just tried my set up on my switch and the settings in the walk through work. The only thing I noticed is I forgot to tell you where to put the tftpboot and the pxelinux.cfg.
First make sure your default file is in the correct location. open your command prompt and type
[code]
cd /tftpboot
ls
[/code]
It will display a list of the files and directories in the folder tftpboot.There should be a folder named pxelinux.cfg if not, create it, and make it readable. If it’s already there apply the chmod command below to make it readable.
[code]
sudo mkdir pxelinux.cfg
sudo chmod 0755 pxelinux.cfg
[/code]Now navigate into the folder and create the default file we spoke of above, I don’t have any linksys routers here, or I would try the set up now. I can try again when I get home, but I have this working on my production environment. As long as these settings are correct it should work, unless we have some hoops to jump through to get it working on linksys.
For now, check the settings, the default file, and the folders and try to boot again. If I fails, try setting up a different machine and use only one NIC and run through the settings again.
-
Actually, what I have found, is my machine still had a lingering pxelinux.0 and it was using that to boot with.
I am attempting to get dnsmasq to work with undionly.kpxe and I am not having much luck.
-
Could this help you in your venture?
[url]http://www.dd-wrt.com/phpBB2/viewtopic.php?t=9195[/url]
-
[quote=“Wolfbane8653, post: 25219, member: 3362”]Could this help you in your venture?
[url]http://www.dd-wrt.com/phpBB2/viewtopic.php?t=9195[/url][/quote]
Thanks for this, I have tried supplying the dhcp options. the problem is when I supply the boot file
dhcp-boot=undionly.kpxe
it still tries to boot pxelinux.0
the only way I have found to get around it is to leave the pxelinux.0 and make a default file that forces it to use the boot.php file included in the /var/www/fog/service/ipxe folder.
I have also tried dhcp-match options to no avail -.-
[url]http://www.richud.com/wiki/Network_iPXE_dnsmasq_Examples_PXE_BOOT[/url]
-
Is this the example your are using?
[QUOTE]
[SIZE=5][B][FONT=sans-serif][SIZE=19px][COLOR=#000000]dnsmasq.conf real DHCP server[/COLOR][/SIZE][/FONT][/B][/SIZE][FONT=sans-serif][COLOR=#000000]This acts as a normal DHCP server, passing out dhcp options 209/210 to pxelinux[/COLOR][/FONT]
[FONT=sans-serif][COLOR=#000000]How it works[/COLOR][/FONT]
[LIST]
[]Client boots and net card does a DHCP Discover, it will get a DHCP offer from dnsmasq
[]Client does a DHCP Request, which dnsmasq will ACK, telling it to get undionly.kkpxe.0 (as no option 175 “Etherboot”).
[]Client then gets undionly.kkpxe.0 via TFTP.
[]ipxe then does a DHCP Discover/offer/request/ack and dnsmasq should respond this time telling it to load pxelinux.0 via TFTP (now option 175 is set, so it no longer tries to pass unidonly.kpxe.0)
[]Passes DHCP options 209/210 passed, which pxelinux later looks at for the config path and document root.
[]pxelinux.0 loads via TFP.
[*]pxelinux then takes over boot process, all data now going via HTTP.
[/LIST]
[COLOR=#000000][FONT=monospace]enable-tftp[/FONT][/COLOR]
[COLOR=#000000][FONT=monospace]dhcp-match=ipxe,175[/FONT][/COLOR]
[COLOR=#000000][FONT=monospace]dhcp-range=192.168.2.100,192.168.2.200[/FONT][/COLOR]
[COLOR=#000000][FONT=monospace]tftp-root=/tmp/memstick/host0_part1/[/FONT][/COLOR]
[COLOR=#000000][FONT=monospace]dhcp-boot=net:#ipxe,undionly.kkpxe.0[/FONT][/COLOR]
[COLOR=#000000][FONT=monospace]dhcp-boot=pxelinux.0[/FONT][/COLOR]
[COLOR=#000000][FONT=monospace]dhcp-option-force=209,pxelinux.cfg/default[/FONT][/COLOR]
[FONT=monospace][COLOR=#000000]dhcp-option-force=210,[url]http://xxx.xxx.xx.xx:81/[/url][/COLOR][/FONT][/QUOTE]It looks like you will may need to change dhcp-option-force=209,pxelinux.cfg/default also it seems like you may need to look into a undionly.kpxe config file.
[SIZE=4][B][FONT=sans-serif][SIZE=17px][COLOR=#000000] [/COLOR][/SIZE][/FONT][/B][/SIZE][QUOTE]
[SIZE=4][B][FONT=sans-serif][SIZE=17px][COLOR=#000000]pxelinux[/COLOR][/SIZE][/FONT][/B][/SIZE][FONT=sans-serif][COLOR=#000000]DHCP options 209/210 are use to configure pxelinux. These can either come forcibly set in a ipxe script or via the DHCP server normally.[/COLOR][/FONT]
[LIST]
[]209 = pxelinux config path, “pxelinux.cfg/default” . This relative to the ‘root’
[]210 = pxelinux ‘root’, “[URL=‘http://xxx.xxx.xx.xx:81/’][COLOR=#663366]http://xxx.xxx.xx.xx:81/[/COLOR][/URL]” . This is prefixed with HTTP (in this case on port 81) , so pxelinux will use instead of slow TFTP . It can also use FTP.
[/LIST]
[/QUOTE] -
The suggestion to “dhcp-option-force=209,pxelinux.cfg/default” is what I already do with the default file manually, but using the pxelinux.0 file because the undionly.kpxe file can not be found to boot from.
The problem is, with these settings it still wants to look for pxelinux.0 and not undionly.kpxe.
I am attempting to utilize the new undionly.kpxe file and ipxe system, but I am being forced to load the old pxe method to load the new pxe method. I don’t mind doing this, it gets my items working, but for the best interest of the community I would like to move to the new system using undionly.kxpe that Tom has set up.
I will try the ipxe config file
-
Alright here is a working ltsp.conf for ipxe, delete those symlinks, make sure pxelinux.0 does not exist rename it, also rename or delete your pxelinux.cfg. Make sure your undionly.kpxe is in the root of your tftpboot folder.
Edit your ltsp.conf to look like the following
[code]
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”, 3
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”, pxelinux
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.
dhcp-range=10.0.0.10,proxy
This range(s) is for the private network on 2-NIC servers,
where dnsmasq functions as a normal DHCP server, providing IP leases.
dhcp-range=192.168.0.20,192.168.0.250,8h
For static client IPs, and only for the private subnets,
you may put entries like this:
dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite
[/code]
Save and restart dnsmasq.
-
Awesome! After making the changes the machines are now able to boot to iPXE. HOWEVER, now it is saying it cannot find /default.ipxe. FOG is set as the owner for everything in the /tftpboot folder so i cant imagine its a permissions problem. Perhaps is there another config elsewhere that needs to be changed?
[ATTACH=full]665[/ATTACH]
[url=“/_imported_xf_attachments/0/665_IMG_20140414_120339.jpg?:”]IMG_20140414_120339.jpg[/url]
-
Make sure the /tftpboot/default.ipxe file actually exists.
-
File exists and FOG has permission to use it. The contents are pointing to the IP of the Server. It was set to Net0 so i changed that to net1 as I am using eth1 for the connections but that had no effect.
This is what my default.ipxe file looks like.
[CODE]#!ipxe
chain http://192.168.1.99/fog/service/ipxe/boot.php?mac=${net1/mac}[/CODE] -
net net0/mac is for the client’s network interface, not the FOG Server’s network interface.
Are you sure 192.168.1.99 is being hosted properly then?
Can you tftp the default.ipxe file:
[code]tftp -i 192.168.1.99 get default.ipxe[/code] -
I was able to download default.ipxe with that command successfully. I am thinking I will start over on my FOG config using what I have learned with this thread and see where that gets me.
-
Okay, I hope all goes well.
I don’t know why it’s not pulling the default file, but before you start all over, maybe try restarting the tftpd-hpa service.
-
I had rebooted the server machine completely with the same result. Though when i try to restart the tftpd-hpa service it hangs and does not seem to want to start it again. And after a reboot when trying to restart the service the machine hangs at shutdown. Sounds like I may have other issues anyway. Would sorta make sense, i have been all over the place trying to get this thing to work.
-
[quote=“Paul Freeman, post: 25459, member: 23545”]I had rebooted the server machine completely with the same result. Though when i try to restart the tftpd-hpa service it hangs and does not seem to want to start it again. And after a reboot when trying to restart the service the machine hangs at shutdown. Sounds like I may have other issues anyway. Would sorta make sense, i have been all over the place trying to get this thing to work.[/quote]
I would definitely start fresh. I can confirm these settings work for a linksys router. But if you are in a production environment, adjustments will need to be made. This is the most basic setting a ltsp.conf can have to boot.
I updated the wiki.
In order to use boot commands you will need to symlink undionly.kpxe to undionly.0
[code]
cd /tftpboot
sudo ln -s undionly.kpxe undionly.0
[/code]Then edit your ltsp.conf edit these two lines
[code]
#pxe-prompt=“Press F8 for boot menu”, 3
to
pxe-prompt=“Press F8 for boot menu”, 3You may change the number value after we get it working. 0 will instantly boot your first command.
#pxe-service=X86PC, “Boot from network”, pxelinux
to
pxe-service=X86PC, “Boot from network”, undionly.0
[/code] -
Hello again all.
I would like to thank you all for your hard work and dedication to the FOG project and all the support you offer everyone and to myself.
After seeing that .33 was in RC status I decided to wait for the full release. Now I have a fresh install of 1.01 on linux Mint 16 running in production using Cisco router DHCP on 1 NIC.
I have followed the instructions via the WIKI for using DNSMASQ and after completion I was able to get a PC to start to load into iPXE. It had stopped at trying to load /default.ipxe and I was not sure why, so I rebooted the server and now the machines will no longer boot to iPXE. It now stops again at [I]PXE-E32: TFTP open timeout[/I]. I have verified that both TFTPD-HPA and DNSMASQ services are running.
I do not understand why it would stop working after a reboot when nothing else has changed.
-
[quote=“Paul Freeman, post: 28676, member: 23545”]Hello again all.
I would like to thank you all for your hard work and dedication to the FOG project and all the support you offer everyone and to myself.
After seeing that .33 was in RC status I decided to wait for the full release. Now I have a fresh install of 1.01 on linux Mint 16 running in production using Cisco router DHCP on 1 NIC.
I have followed the instructions via the WIKI for using DNSMASQ and after completion I was able to get a PC to start to load into iPXE. It had stopped at trying to load /default.ipxe and I was not sure why, so I rebooted the server and now the machines will no longer boot to iPXE. It now stops again at [I]PXE-E32: TFTP open timeout[/I]. I have verified that both TFTPD-HPA and DNSMASQ services are running.
I do not understand why it would stop working after a reboot when nothing else has changed.[/quote]
What happens if you restart the services even though they are running?
-
Restarted the service and now it will boot back into iPXE. Now it stops at [I]/default.ipxe… No such file or directory ([url]http://ipxe.org/2d12603b[/url]) [/I]This reads to me like a permissions issue since the file is in the /tftpboot directory.