How does iPXE load fog files from the init.xz image
-
I have unpacked the init.xz image file and I see all the fog related files in the /bin directory. I’m just wondering how the iPXE boot configuration tells the kernel to load the right file in the /bin directory.
-
What you need to understand that the FOS Engine (the customized linux operating system that captures and deployed images on the target computer) is a complete linux OS. It is built with 2 halves. The first part is the the kernel (bzImage) which contains the core linux functions as well as the compiled in device drivers. And the second part is the virtual hard drive (inits) which contains the linux utilities, programs, and fog command scripts. When you PXE boot a target computer into the iPXE menu, certain iPXE menu options will send the bzImage and inits files to the target computer. The iPXE menu will also send specific kernel parameters to tell the FOS Engine (linux) how to react when it boots.
You can take the FOS Engine (bzImage and inits) and just as easily boot directly from a usb flash if you use grub as your boot loader. The FOS Engine will boot from the USB stick without requiring the FOG server to be online. The FOS Engine won’t do much without the proper kernel parameters being passed from the FOG server. But in the end FOS is a specialized, high performance, standalone linux OS.
Now for specifics, I don’t have the details from inside FOS, but I suspect there is something in /etc/init.d that calls the main fog script called /bin/fog that script. The
fog
master script reads in the passed kernel parameters and then selects the proper task to execute. -
@george1421 and that “something” is called S99fog
-
@george1421 Great post, George.
-
Awesome, that answers my question. Thank you!