<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.fogproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JeffMcKnight</id>
		<title>FOG Project - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.fogproject.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JeffMcKnight"/>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Special:Contributions/JeffMcKnight"/>
		<updated>2026-04-18T00:59:07Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=PXE&amp;diff=1693</id>
		<title>PXE</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=PXE&amp;diff=1693"/>
				<updated>2009-07-21T20:41:19Z</updated>
		
		<summary type="html">&lt;p&gt;JeffMcKnight: Fix parallelism and typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In basic terms PXE allows a computer to boot from a network server instead of the local hard disk.  With FOG, we use PXE to boot a small linux image and kernel which is responsible for doing the actual imaging process.&lt;br /&gt;
&lt;br /&gt;
Excellent explanations are available at Wikipedia:&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Network_booting Network booting]&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Preboot_Execution_Environment Preboot Execution Environment]&lt;br /&gt;
&lt;br /&gt;
The way that PXE boot is used in FOG is as follows:&lt;br /&gt;
&lt;br /&gt;
The client computer (also called &amp;quot;Host&amp;quot;) is the one whose data needs to be backed up to an image, or wiped and restored with a pre-existing image made from an earlier backup process.&lt;br /&gt;
And there are other tasks that can be performed on it like memory testing, inventory of its hardware and so on.&lt;br /&gt;
&lt;br /&gt;
The computer that controls all this is the FOG server.&lt;br /&gt;
The FOG server, alongwith a web interface to manage the whole FOG setup, has a '''customisable and installable Linux &amp;quot;init&amp;quot; image'''. It also has excellent programs or scripts to edit this image. &lt;br /&gt;
&lt;br /&gt;
Init is the thing that runs on the client and does the actual work of imaging, deploying, backing up, memory  testing, hardware inventory, etc. &lt;br /&gt;
''PXE is merely the mechanism of transferring the init image with correct command line options to the client'' computer. The exact protocol used to transfer the binary file is [[TFTP]] ('''Trivial File Transfer Protocol''').&lt;br /&gt;
&lt;br /&gt;
To '''edit the init image to make it do custom things''' after the transferred (FOG server to PXE-booted OS-less client) kernel and init load into the client active RAM, a '''Boot Image Editor''' utility is provided in the '''utils directory''' in the standard FOG download package.&lt;br /&gt;
&lt;br /&gt;
If you are interested in knowing how FOG actually does the imaging, and you have any basic working knowledge of the linux shell / bash, it is '''''strongly advised''''' that you run the Boot Image Editor on the FOG server which is located at '''/utils/Boot Image Editor/FOGMountBootImage.sh'''. &lt;br /&gt;
&lt;br /&gt;
A file manager program (most likely Nautilus) will open and take you to '''/tmp/tmpMnt''' inside which there is a '''/bin''' directory. &lt;br /&gt;
&lt;br /&gt;
Do not make any changes, just go through the whole lot of things that are present in it. &lt;br /&gt;
In there, look for some of the following shell script files :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fog           fog.man.reg   fog.statusreporter fog.wipe&lt;br /&gt;
fog.auto.reg  fog.chntpw    fog.photorec       fog.surfacetest&lt;br /&gt;
fog.av        fog.chpass    fog.quickimage     fog.testdisk&lt;br /&gt;
fog.capone    fog.debug     &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each of these is responsible for one of the actions that you issue commands for, from the web interface under the Tasks menu, including Advanced Tasks.&lt;br /&gt;
&lt;br /&gt;
Opening these files using any simple text editor reveals that these are '''scripts that will run on the ''client machine'' after the entire init binary gets loaded into the client RAM''' and begin execution.&lt;br /&gt;
&lt;br /&gt;
Thus, by editing the files in the tmpMnt mounted boot image of init, you can make those commands/scripts run on the client when the client boots into PXE.&lt;br /&gt;
&lt;br /&gt;
So for example, if you want to change the words or phrases on the PXE menu, you have to follow these steps:&lt;br /&gt;
* open up the Boot Image Editor on the FOG server&lt;br /&gt;
* go to /bin in /tmpMnt on the FOG server &lt;br /&gt;
* locate the fog.whatever file &lt;br /&gt;
* edit it &lt;br /&gt;
* save it (Ctrl+S, if you use most GUI editors)&lt;br /&gt;
* close the editor and file manager windows, upon doing which you will be take back to the command screen that you used to start the Boot Image Editor script. &lt;br /&gt;
* press Enter when prompted, which takes the scripts you modified and merges them to produce a modified init binary.&lt;br /&gt;
* Henceforth, when imaging/testing/deploying, once init is loaded into any client machine using PXE boot, your modifications to the code will reflect in the menu display and perform any other actions you added to the scripts.&lt;br /&gt;
* In this way you can make the PXE booted client '''do practically anything you want'''.&lt;br /&gt;
By default, FOG uses only basic backup, restore, multicast, memtest and similar diagnosic activities out of this vast scope of possibilities. If you know a '''decent bit of shell scripting''', you can make any client do anything you want it to.&lt;br /&gt;
* The '''standard way''' to do this is to include your modifications '''as a plugin with some scripts''' and some addition to the web UI interface simply to make it convenient to manage the functionality of your plugin.&lt;br /&gt;
* '''[[Capone]]''' is one such plugin which does a remarkable job of '''automatically identifying which PC make''' the client is and '''auto-imaging it using a prearranged association''' of its hardware identification and a standard pre-configured OS image.&lt;/div&gt;</summary>
		<author><name>JeffMcKnight</name></author>	</entry>

	</feed>