IPXE vs. PXE
-
That sound really good to me. would be awesome if you could implement ipexe into fog. Like u highlighted would open up alot of possibilities.
-
Interestingly enough, I have just, ( this week ), created an IPXE based boot cd/usb, for 0.32, capone only not tasks, and also DELL diags.
What is very noticable is the speed difference downloading bzImage and init.gz, ipxe uses http which is much faster.
The pxe boot config is tiny, it just chains the menu via http.
My wish list for the future would be very much as yours.- move from pxlelinux/tftp to ipxe/http for the initial boot and bZimage and init.gz download.
- pass the mac address, manufacturer, model and asset to the service code, and lookup the image association.
- Add authentication for the http requests.
- use http to initiate the move after uploads.
- If the image download could be moved to http from nfs as well, this would mean that we could go totally http, which would make getting fog to work across a firewall much easier. I’ll set up a test to see how the speed compares.
As a say a wish list, of which IPXE is just the enabler, some of these would have to be long term.
-
Can we get a released stable 0.33b before we start running on too big a project. 0.32 is getting old enough that it doesn’t work on some brand new systems out of the box. maybe this for 0.34
-
VincentJ,
While I understand the prospect of this seems like a huge idea, the method I’m taking currently will allow us more adaptability and compatibility.
Another part of the method of this is it will still, more or less, be the same as the PXE system we currently use, but slightly faster on loading to the systems. The menu I’ve created, while not as “pretty” as the PXE with the background is IDENTICAL to the one we currently have. I will be adding task “on-the-fly” generation and it’s all generated from one file rather than being forced to FTP a file into a directory. I’ve only decided to go to this because it’s faster, simpler to maintain, and removes one component to the task generation areas.
I hope you understand. It, ultimately, will not add much more time on me developing fog as I can basically rely on one script to do all the work I need performed.
-
r1211 released.
With it comes the elements of iPXE.
I haven’t a chance to test all elements, but please test and let me know.
Thank you.
-
Excellent work Tom, thanks.
A minor issue the ipxe menu could do with a longer timeout, or preferably none at all.
A gotcha to avoid. if you are running virtual box and your client hangs downloading bzImage or init.gz, you need to change the network card type to intel. The entry I found suggested that vmware had the problem as well.
I seem to be getting Unmountable boot device on deploy of xp single partition, is the ipxe init.gz the latest version.
Keep up the good work. -
The ipxe menu is defaulted from the FOG Web GUI. So FOG_PXE_MENU_TIMEOUT or whatever it’s called, times 1000 gives you the seconds. So if you want it as a longer timeout, change that on the FOG Web GUI under FOG Configuration->FOG Settings
The init.gz should be the latest version, yes. I have imaged a couple of times today just to make sure all was working properly.
-
Great work Tom, iPXE is certainly the way to go for future.
Only one thing I would ask and this relates to the previous way of doing it.
I use the old 01-XX-XX-XX-XX-XX-XX method and manually create some of those files for use by Thin Clients (that boot across the network and are diskless) and ESXi AutoDeploy hosts
Would it be possible using iPXE to still achieve this?
I imagine it would be a feature request, however it would require the ability to create a permanent task for a specific MAC address or group of MAC addresses with custom parameters.
-
depending on what exactly you’re doing with those manually created pxelinux config files and how much they interact with fog, at this point there is nothing stopping you from keeping doing what you’re currently doing. just keep using pxelinux and your 01-XX-XX-XX-XX-XX-XX files, but in your default file chainload to undionly.kpxe
-
Or if you know the macs of the systems just add a simple if statement and perform the task right from ipxe.