<?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=Jaymes-driver.3582&amp;*</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=Jaymes-driver.3582&amp;*"/>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Special:Contributions/Jaymes-driver.3582"/>
		<updated>2026-05-08T03:48:53Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Bootpd.plist&amp;diff=9213</id>
		<title>Bootpd.plist</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Bootpd.plist&amp;diff=9213"/>
				<updated>2015-01-19T14:30:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Bootpd File==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===WARNING===&lt;br /&gt;
This is a sample file DO NOT USE THIS IN YOUR ENVIRONMENT!!!! OS X Server app will generate most of this code for you, this example file is to show you the place where the generated code needs to be placed.&lt;br /&gt;
&lt;br /&gt;
For Reference, your generated code should be placed between &amp;quot;dhcp_domain_search&amp;quot; and &amp;quot;dhcp_router&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===bootpd.plist Example===&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NetBoot&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;key&amp;gt;startTime&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;string&amp;gt;2014-12-12 15:30:07 +0000&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;Subnets&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;allocate&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;true/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_domain_name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_domain_name_server&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;172.16.98.100&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;172.16.98.200&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			'''&amp;lt;key&amp;gt;dhcp_domain_search&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_option_66&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			PUT GENERATED CODE HERE!!!&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_option_67&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			PUT GENERATED CODE HERE!!!&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/data&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_router&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;10.8.1.1&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;lease_max&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;integer&amp;gt;3600&amp;lt;/integer&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;Test&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_address&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;10.8.0.0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_mask&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;255.255.0.0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_range&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;10.8.1.1&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;10.8.255.254&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;selected_port_name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;en0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;uuid&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;4285D339-ABD1-4430-B68D-F5401BFDA253&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;netboot_enabled&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;string&amp;gt;en0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Bootpd.plist&amp;diff=9208</id>
		<title>Bootpd.plist</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Bootpd.plist&amp;diff=9208"/>
				<updated>2015-01-19T14:28:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==WARNING==&lt;br /&gt;
This is a sample file DO NOT USE THIS IN YOUR ENVIRONMENT!!!! OS X Server app will generate most of this code for you, this example file is to show you the place where the generated code needs to be placed.&lt;br /&gt;
&lt;br /&gt;
For Reference, your generated code should be placed between &amp;quot;dhcp_domain_search&amp;quot; and &amp;quot;dhcp_router&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==bootpd.plist Example==&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NetBoot&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;key&amp;gt;startTime&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;string&amp;gt;2014-12-12 15:30:07 +0000&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;Subnets&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;allocate&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;true/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_domain_name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_domain_name_server&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;172.16.98.100&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;172.16.98.200&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			'''&amp;lt;key&amp;gt;dhcp_domain_search&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_option_66&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			PUT GENERATED CODE HERE!!!&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_option_67&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			PUT GENERATED CODE HERE!!!&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/data&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_router&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;10.8.1.1&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;lease_max&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;integer&amp;gt;3600&amp;lt;/integer&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;Test&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_address&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;10.8.0.0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_mask&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;255.255.0.0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_range&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;10.8.1.1&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;10.8.255.254&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;selected_port_name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;en0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;uuid&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;4285D339-ABD1-4430-B68D-F5401BFDA253&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;netboot_enabled&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;string&amp;gt;en0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9207</id>
		<title>DHCP Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9207"/>
				<updated>2015-01-19T14:27:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* MAC Server DHCP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Settings==&lt;br /&gt;
#'''FOG 0.1--&amp;gt;0.32'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to pxelinux.0&lt;br /&gt;
#'''Fog 0.33--&amp;gt;1.x.x'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to undionly.kpxe&lt;br /&gt;
===Windows Server DHCP===&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Windows 66.png]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Windows 67.png]]&lt;br /&gt;
===Linux Server DHCP===&lt;br /&gt;
(content missing)&lt;br /&gt;
&lt;br /&gt;
===Novell (Linux) Server DHCP===&lt;br /&gt;
*DHCP Overview from DNS/DHCP Console (Netware 6.5)&lt;br /&gt;
**[[File:Novelldhcp.gif]]&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Novelloption66.gif]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Novelloption67.gif]]&lt;br /&gt;
&lt;br /&gt;
===MAC Server DHCP===&lt;br /&gt;
Use OS X Server app to install and utilize DHCP.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Use DHCP Option Code Utility to generate the code necessary.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://docs.google.com/uc?id=0BwD4il5Z1G6fTmFFYU91bDNuRmc&amp;amp;export=download&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
One MUST generate the codes in order for PXE booting to work!&amp;lt;br/&amp;gt;&lt;br /&gt;
bootpd.plist is located in /etc/bootpd.plist&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:MACOption66.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Option 67&lt;br /&gt;
**[[File:MACOption67.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Sample [[bootpd.plist]]&amp;lt;br/&amp;gt;&lt;br /&gt;
** This is a sample file DO NOT USE THIS IN YOUR ENVIRONMENT!!!! OS X Server app will generate most of this code for you, this example file is to show you the place where the generated code needs to be placed.&amp;lt;br/&amp;gt;&lt;br /&gt;
**For Reference, your generated code should be placed between &amp;quot;dhcp_domain_search&amp;quot; and &amp;quot;dhcp_router&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Completed Bootpd.plist&amp;lt;br/&amp;gt;&lt;br /&gt;
**[[File:MACbootpd.png]]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Bootpd.plist&amp;diff=9206</id>
		<title>Bootpd.plist</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Bootpd.plist&amp;diff=9206"/>
				<updated>2015-01-19T14:26:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: Created page with &amp;quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&amp;lt;br/&amp;gt; &amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;b...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NetBoot&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;key&amp;gt;startTime&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;string&amp;gt;2014-12-12 15:30:07 +0000&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;Subnets&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;allocate&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;true/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_domain_name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_domain_name_server&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;172.16.98.100&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;172.16.98.200&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			'''&amp;lt;key&amp;gt;dhcp_domain_search&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array/&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_option_66&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			PUT GENERATED CODE HERE!!!&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_option_67&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;data&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			PUT GENERATED CODE HERE!!!&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/data&amp;gt;'''&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;dhcp_router&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;10.8.1.1&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;lease_max&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;integer&amp;gt;3600&amp;lt;/integer&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;Test&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_address&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;10.8.0.0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_mask&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;255.255.0.0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;net_range&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;10.8.1.1&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;10.8.255.254&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;selected_port_name&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;en0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;key&amp;gt;uuid&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;4285D339-ABD1-4430-B68D-F5401BFDA253&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;netboot_enabled&amp;lt;/key&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
		&amp;lt;string&amp;gt;en0&amp;lt;/string&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	&amp;lt;/array&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9205</id>
		<title>DHCP Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9205"/>
				<updated>2015-01-19T14:23:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* MAC Server DHCP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Settings==&lt;br /&gt;
#'''FOG 0.1--&amp;gt;0.32'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to pxelinux.0&lt;br /&gt;
#'''Fog 0.33--&amp;gt;1.x.x'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to undionly.kpxe&lt;br /&gt;
===Windows Server DHCP===&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Windows 66.png]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Windows 67.png]]&lt;br /&gt;
===Linux Server DHCP===&lt;br /&gt;
(content missing)&lt;br /&gt;
&lt;br /&gt;
===Novell (Linux) Server DHCP===&lt;br /&gt;
*DHCP Overview from DNS/DHCP Console (Netware 6.5)&lt;br /&gt;
**[[File:Novelldhcp.gif]]&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Novelloption66.gif]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Novelloption67.gif]]&lt;br /&gt;
&lt;br /&gt;
===MAC Server DHCP===&lt;br /&gt;
Use OS X Server app to install and utilize DHCP.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Use DHCP Option Code Utility to generate the code necessary.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://docs.google.com/uc?id=0BwD4il5Z1G6fTmFFYU91bDNuRmc&amp;amp;export=download&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
One MUST generate the codes in order for PXE booting to work!&amp;lt;br/&amp;gt;&lt;br /&gt;
bootpd.plist is located in /etc/bootpd.plist&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:MACOption66.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Option 67&lt;br /&gt;
**[[File:MACOption67.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Sample bootpd.plist&amp;lt;br/&amp;gt;&lt;br /&gt;
** This is a sample file DO NOT USE THIS IN YOUR ENVIRONMENT!!!! OS X Server app will generate most of this code for you, this example file is to show you the place where the generated code needs to be placed.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
For Reference, your generated code should be placed between &amp;quot;dhcp_domain_search&amp;quot; and &amp;quot;dhcp_router&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Completed Bootpd.plist&amp;lt;br/&amp;gt;&lt;br /&gt;
**[[File:MACbootpd.png]]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9204</id>
		<title>DHCP Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9204"/>
				<updated>2015-01-19T14:23:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* MAC Server DHCP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Settings==&lt;br /&gt;
#'''FOG 0.1--&amp;gt;0.32'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to pxelinux.0&lt;br /&gt;
#'''Fog 0.33--&amp;gt;1.x.x'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to undionly.kpxe&lt;br /&gt;
===Windows Server DHCP===&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Windows 66.png]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Windows 67.png]]&lt;br /&gt;
===Linux Server DHCP===&lt;br /&gt;
(content missing)&lt;br /&gt;
&lt;br /&gt;
===Novell (Linux) Server DHCP===&lt;br /&gt;
*DHCP Overview from DNS/DHCP Console (Netware 6.5)&lt;br /&gt;
**[[File:Novelldhcp.gif]]&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Novelloption66.gif]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Novelloption67.gif]]&lt;br /&gt;
&lt;br /&gt;
===MAC Server DHCP===&lt;br /&gt;
Use OS X Server app to install and utilize DHCP.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Use DHCP Option Code Utility to generate the code necessary.&amp;lt;br/&amp;gt;&lt;br /&gt;
https://docs.google.com/uc?id=0BwD4il5Z1G6fTmFFYU91bDNuRmc&amp;amp;export=download&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
One MUST generate the codes in order for PXE booting to work!&amp;lt;br/&amp;gt;&lt;br /&gt;
bootpd.plist is located in /etc/bootpd.plist&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:MACOption66.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
*Option 67&lt;br /&gt;
**[[File:MACOption67.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Sample bootpd.plist&amp;lt;br/&amp;gt;&lt;br /&gt;
** This is a sample file DO NOT USE THIS IN YOUR ENVIRONMENT!!!! OS X Server app will generate most of this code for you, this example file is to show you the place where the generated code needs to be placed.&lt;br /&gt;
&lt;br /&gt;
For Reference, your generated code should be placed between &amp;quot;dhcp_domain_search&amp;quot; and &amp;quot;dhcp_router&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
*Completed Bootpd.plist&amp;lt;br/&amp;gt;&lt;br /&gt;
**[[File:MACbootpd.png]]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=File:MACOption67.png&amp;diff=9203</id>
		<title>File:MACOption67.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=File:MACOption67.png&amp;diff=9203"/>
				<updated>2015-01-19T14:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=File:MACOption66.png&amp;diff=9202</id>
		<title>File:MACOption66.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=File:MACOption66.png&amp;diff=9202"/>
				<updated>2015-01-19T14:13:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=File:MACbootpd.png&amp;diff=9201</id>
		<title>File:MACbootpd.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=File:MACbootpd.png&amp;diff=9201"/>
				<updated>2015-01-19T14:09:30Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9196</id>
		<title>DHCP Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9196"/>
				<updated>2015-01-19T13:50:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* MAC Server DHCP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Settings==&lt;br /&gt;
#'''FOG 0.1--&amp;gt;0.32'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to pxelinux.0&lt;br /&gt;
#'''Fog 0.33--&amp;gt;1.x.x'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to undionly.kpxe&lt;br /&gt;
===Windows Server DHCP===&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Windows 66.png]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Windows 67.png]]&lt;br /&gt;
===Linux Server DHCP===&lt;br /&gt;
(content missing)&lt;br /&gt;
&lt;br /&gt;
===Novell (Linux) Server DHCP===&lt;br /&gt;
*DHCP Overview from DNS/DHCP Console (Netware 6.5)&lt;br /&gt;
**[[File:Novelldhcp.gif]]&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Novelloption66.gif]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Novelloption67.gif]]&lt;br /&gt;
&lt;br /&gt;
===MAC Server DHCP===&lt;br /&gt;
Use DHCP Option Code Utility to generate the code necessary.&lt;br /&gt;
[https://docs.google.com/uc?id=0BwD4il5Z1G6fTmFFYU91bDNuRmc&amp;amp;export=download]&lt;br /&gt;
(content missing)&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9188</id>
		<title>DHCP Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9188"/>
				<updated>2015-01-19T13:36:25Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Novell (Linux) Server DHCP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Settings=&lt;br /&gt;
#'''FOG 0.1--&amp;gt;0.32'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to pxelinux.0&lt;br /&gt;
#'''Fog 0.33--&amp;gt;1.x.x'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to undionly.kpxe&lt;br /&gt;
==Windows Server DHCP==&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Windows 66.png]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Windows 67.png]]&lt;br /&gt;
==Linux Server DHCP==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Novell (Linux) Server DHCP==&lt;br /&gt;
*DHCP Overview from DNS/DHCP Console (Netware 6.5)&lt;br /&gt;
**[[File:Novelldhcp.gif]]&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Novelloption66.gif]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Novelloption67.gif]]&lt;br /&gt;
&lt;br /&gt;
==MAC Server DHCP==&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=File:Novelloption67.gif&amp;diff=9187</id>
		<title>File:Novelloption67.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=File:Novelloption67.gif&amp;diff=9187"/>
				<updated>2015-01-19T13:36:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=File:Novelloption66.gif&amp;diff=9186</id>
		<title>File:Novelloption66.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=File:Novelloption66.gif&amp;diff=9186"/>
				<updated>2015-01-19T13:35:51Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=File:Novelldhcp.gif&amp;diff=9185</id>
		<title>File:Novelldhcp.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=File:Novelldhcp.gif&amp;diff=9185"/>
				<updated>2015-01-19T13:34:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: Novell DHCP Layout&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Novell DHCP Layout&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9184</id>
		<title>DHCP Settings</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=DHCP_Settings&amp;diff=9184"/>
				<updated>2015-01-19T13:31:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Linux Server DHCP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Settings=&lt;br /&gt;
#'''FOG 0.1--&amp;gt;0.32'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to pxelinux.0&lt;br /&gt;
#'''Fog 0.33--&amp;gt;1.x.x'''&lt;br /&gt;
#*Go to your DHCP and confirm that option 67 is set to undionly.kpxe&lt;br /&gt;
==Windows Server DHCP==&lt;br /&gt;
*Option 66&lt;br /&gt;
**[[File:Windows 66.png]]&lt;br /&gt;
*Option 67 &lt;br /&gt;
**[[File:Windows 67.png]]&lt;br /&gt;
==Linux Server DHCP==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Novell (Linux) Server DHCP==&lt;br /&gt;
&lt;br /&gt;
==MAC Server DHCP==&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=8717</id>
		<title>Ubuntu 14.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=8717"/>
				<updated>2014-12-10T19:33:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Setting static IP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ubuntu 14.04 &amp;amp; Ubuntu 14.04.1LTS &amp;amp; Ubuntu 14.10 =&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:Yellow;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:RED&amp;quot;&amp;gt;'''WARNING THIS VERSION OF LINUX, IT IS RELATIVITY NEW AND THERE ARE ISSUES WITH TFTP UPSTART AGAIN, WHEN TIME ALLOWS AND MAJOR ISSUES WITH FOG HAVE BEEN RESOLVED, WE WILL TACKLE FIXES FOR THE UBUNTU 14.04 OPERATING SYSTEM!'''&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''USE AT YOUR OWN RISK: We are not responsible for any damage to yourself, hardware, or co-workers. Use at your own risk. This is a set up that was proven to work in at LEAST 3 test environments. Any misuse or replication of this walk through in any other form is STRICTLY PROHIBITED.'''&lt;br /&gt;
== Setup &amp;amp; Installation ==&lt;br /&gt;
&lt;br /&gt;
# Insert your Ubuntu installation disc and reboot the computer. Boot from the disc, Ubuntu will launch in it’s live form for you to get a feel for the OS or install. You will be presented with two options, install Ubuntu or run a Live instance. Click the “Install Ubuntu” Option when it is presented to you at the Welcome screen.&lt;br /&gt;
# Proceed with a normal install of Ubuntu.  It is recommended to make the choice to Download the Latest updates while installing by Ticking the checkbox. Ubuntu will now examine hardware and alert you of any previously existing operating systems.  Recommended that you remove all information unless you have other OS's you want to keep on the system. During the install Ubuntu will ask you to set your timezone, Layout, and some user information such as a user name and password.  Set this information to your liking. In the latest flavors of Ubuntu the Root user account is disabled, after installation this guide will show you how to enable it. Ubuntu will copy files and begin the installation.&lt;br /&gt;
# After installation is complete, reboot. Remove the installation disc and press enter, your computer will reboot and boot up in it’s new operating system that is much faster and more durable than it’s squishy, virus prone, partners. Log in with the Password and the User you specified during installation.&lt;br /&gt;
&lt;br /&gt;
Your system should now be installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
== Enabling Root on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
# Please open up a terminal or console and log in as the user you created.&lt;br /&gt;
# To gain access, enter the following command and re-type the user password.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Then type the following command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;passwd root&amp;lt;/pre&amp;gt;&lt;br /&gt;
#*It will ask you to enter the new password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*It will ask you to confirm the password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*The terminal will return with &amp;lt;code&amp;gt;Password updated successfully!&amp;lt;/code&amp;gt;&lt;br /&gt;
#Type or copy the following code into the terminal and press enter.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;echo &amp;quot;greeter-show-manual-login=true&amp;quot; &amp;gt;&amp;gt; /etc/lightdm/lightdm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Please restart the machine with the command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;shutdown -r now&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Once the system returns, you can now login as the root user even from the GUI.  Just type the username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;  in the Password field, you'll type the password you set in the passwd root command above.&lt;br /&gt;
&lt;br /&gt;
== Setting static IP ==&lt;br /&gt;
# Click the “Dash Home” icon again, in the text box at the top type “Network” and select the first icon in the list displayed as “Network”. Select Wired and click Options. Select the “IPV4 Settings” tab and change the method from Automatic to Manual, Add, and supply the server with a proper IP address and information. Click Save. Your connection will reconnect.&lt;br /&gt;
# Next click on FireFox and in the browser navigate to the webpage http://www.fogproject.org and follow the download links to download the latest version of FOG, at the time of writing it is 0.32. Right mouse click and select show in folder and close your browser and all other open windows. Move the file to your desktop if you haven’t already. Right mouse click and select “Extract Here”.&lt;br /&gt;
# Now open a terminal and issue the following commands&lt;br /&gt;
#&amp;lt;pre&amp;gt;sudo nano /etc/resolvconf/resolv.conf.d/head&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Add the following line where x.x.x.x is the ip address of your DNS.  If you need to supply multiple DNS entries, separate entries with a space (i.e. nameserver x.x.x.x y.y.y.y z.z.z.z)&lt;br /&gt;
#&amp;lt;pre&amp;gt;nameserver x.x.x.x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' NOTE: GIVEN THE DATE OF THE FOG 0.32 REVISION SOME PACKAGES ARE NO LONGER SUPPORTED AND MUST BE UPDATED WE WILL DO THIS FIRST!!! '''&lt;br /&gt;
&lt;br /&gt;
== Update and Install Packages ==&lt;br /&gt;
# Click on the “Dash Home” Icon again, type “Terminal” into the search box and select the first Icon. Now we are going to install FOG and configure it. We will do the installation through the Terminal with a number of commands, please follow them and remember to press enter after each line. Note the Capital and lower case letters, linux is VERY picky, “A” is not the same as “a”.&lt;br /&gt;
# From the terminal Type the following Commands:&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd Desktop/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd fog_0.32/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd packages&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;wget https://svn.code.sf.net/p/freeghost/code/trunk/packages/udpcast-20120424.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;rm -f udpcast-20071228.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastout=&amp;quot;udpcast-20071228&amp;quot;:udpcastout=&amp;quot;udpcast-20120424&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastsrc=&amp;quot;../packages/udpcast-20071228.tar.gz&amp;quot;:udpcastsrc=&amp;quot;../packages/udpcast-20120424.tar.gz&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd ../bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sudo ./installfog.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
# The following commands are for the installfog.sh installer information.  '''Change the relevant values for your particular system.'''&lt;br /&gt;
#* Type 2 and press Enter for Ubuntu installation.&lt;br /&gt;
#* Type N and press Enter for Normal installation&lt;br /&gt;
#* Supply IP Address, it SHOULD be the static IP address you set up earlier, if it is not please revert to step 5 and try again.&lt;br /&gt;
#* Type Y and press Enter setup DHCP Server.&lt;br /&gt;
#* Enter the IP Address associated with your DHCP Server&lt;br /&gt;
#* Type Y and press Enter to set up DNS.&lt;br /&gt;
#* Enter the DNS Server address and press Enter.&lt;br /&gt;
#* Type N and press Enter to leave the default Network Card the same.&lt;br /&gt;
#* Type N to disable DHCP Service.&lt;br /&gt;
#* '''NOTE: It tells you that in order to use your PXE server you have to run a few commands on your DHCP server, this is not entirely true, but it definitely helps, this will point your clients to your server, or you can disconnect your server from the outside world while you image.'''&lt;br /&gt;
#* Type N to not install Additional Languages.&lt;br /&gt;
#* Type Y and press Enter.&lt;br /&gt;
# Next it will verify the settings, make sure everything has been entered correctly.&lt;br /&gt;
#* '''NOTE: I set up Fog with default passwords for MYSQL and users, you can supply information if you like, just make notes.'''&lt;br /&gt;
#* Type a password for the “root” user in MySQL and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type Y to send your install information to the Project, and it will take some time to complete.&lt;br /&gt;
&lt;br /&gt;
== New Web Layout ==&lt;br /&gt;
'''Ubuntu 14.04 moved from the /var/www document root to /var/www/html document root layout.  Because of this, we have to either move the /var/www/fog directory to /var/www/html or simply create a link.'''&lt;br /&gt;
=== Open a terminal and sudo up to root. ===&lt;br /&gt;
* &amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Move fog folder so it's accessible.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;mv /var/www/fog /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Link the folder instead of move.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;ln -s /var/www/fog /var/www/html/fog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Complete the configuration ==&lt;br /&gt;
# Now we need to set up the web GUI for FOG. Open your browser and navigate to http://(serveripaddress)/fog/management. Or click the link in the Terminal window.&lt;br /&gt;
# The web GUI will alert you to back up your database for MYSQL Server and install the upgrades, do so and follow the upgrade instructions.&lt;br /&gt;
# Next log in, default user name is FOG and the password is password.&lt;br /&gt;
# Click “User Management” the Second Icon from the Left. Click “New User” on the left and set up a new user. Supply the name, password, and check the “Mobile/Quick Access only” box and press create user. In the PXE menu when doing a Quick Image, you will need to provide the username and password specified here to complete the image process.&lt;br /&gt;
# Image Management will allow you to create images, '''NOTE: MUST BE DONE PRIOR TO IMPORTING A HOST TO YOUR FOG SERVER''', otherwise you will have to create one and select it later. Click “New Image” on the left. Give the image a name, a description, select “Default” for Storage, and give the file a name, no spaces. Select Multiple Partition image – Single Disk (Not resizeable) or Multiple Partition image – All Disks (Not resizeable) I have never had a problem using these settings. However Single Partition (NTFS, Only Re-sizable) will work as well. DO NOT use the RAW format, it takes a long time to upload and does so sector by sector. This would be a recommendation if you are backing up a Linux partition. Click Add.&lt;br /&gt;
# Host Management will allow you to manually add or manage a host, I recommend using the PXE menu to register your hosts, but if you need to change information or the image type you can do it here.&lt;br /&gt;
# Your FOG server is configured and setup, register a host via the PXE menu.&lt;br /&gt;
# On your FOG Server in the WEB GUI, click on Task Management. On the left hand side, select “List all hosts” click on the “Upload” arrow for the host you just added. Select when you want the task to run, I set it a few minutes in the future. FOG has the ability to reboot your machine into the PXE menu to begin it’s process, but I simply reboot the computer, fog will find it and begin the image process&lt;br /&gt;
# CONGRATULATIONS you now have a working FOG Server and a host image ready to deploy. In order to deploy an Image, boot into the PXE menu and register the host, next select “Quick Image” and begin the image process, or select the host from the “Task Management” screen and select “Deploy” and reboot the workstation after supplying a time to begin the task, the workstation will begin its image process.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=8716</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=8716"/>
				<updated>2014-12-10T19:20:43Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32,x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 11.04 x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 12.04, 12.10 LTS x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|-&lt;br /&gt;
| (k)Ubuntu 13.04, 13.10 x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|-&lt;br /&gt;
| (k)Ubuntu 14.04, 14.10 x32, x64&lt;br /&gt;
| Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
'''***FIRST*** Update the schema by navigating to your fog management page and install the update.'''&lt;br /&gt;
&lt;br /&gt;
Make the following changes to your ltsp.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename, Server name, Server Ip Address&lt;br /&gt;
dhcp-boot=undionly.kpxe,,x.x.x.x&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
#dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
#dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, undionly&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=10.0.0.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your file and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a symlink for the undionly.kpxe file so dnsmasq can find it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo ln -s undionly.kpxe undionly.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Additional Steps for 12.04.4, 12.04.5, 14.04, 14.10=&lt;br /&gt;
In Specific, when starting DNSMASQ you receive the following error:&lt;br /&gt;
&amp;lt;pre&amp;gt;dnsmasq: failed to create listening socket for port 53: Address already in use failed!&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are using Ubuntu version 12.04.4, 12.04.5, 14.04, 14.10, dnsmasq-base is already installed on your system and in use by the network-manager.&lt;br /&gt;
&lt;br /&gt;
Attempting to start the dnsmasq service after installation will lead to an error, the error mentioned above.  To fix this error:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open terminal and issue the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/NetworkManager/NetworkManager.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Remove the line&lt;br /&gt;
&amp;lt;pre&amp;gt;dns=dnsmasq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Now we need to restart the network service&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service network-manager restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
This should resolve issues with getting dnsmasq to start.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Issue the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=8715</id>
		<title>Ubuntu 14.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=8715"/>
				<updated>2014-12-10T19:11:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Setting static IP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ubuntu 14.04 &amp;amp; Ubuntu 14.04.1LTS &amp;amp; Ubuntu 14.10 =&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:Yellow;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:RED&amp;quot;&amp;gt;'''WARNING THIS VERSION OF LINUX, IT IS RELATIVITY NEW AND THERE ARE ISSUES WITH TFTP UPSTART AGAIN, WHEN TIME ALLOWS AND MAJOR ISSUES WITH FOG HAVE BEEN RESOLVED, WE WILL TACKLE FIXES FOR THE UBUNTU 14.04 OPERATING SYSTEM!'''&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''USE AT YOUR OWN RISK: We are not responsible for any damage to yourself, hardware, or co-workers. Use at your own risk. This is a set up that was proven to work in at LEAST 3 test environments. Any misuse or replication of this walk through in any other form is STRICTLY PROHIBITED.'''&lt;br /&gt;
== Setup &amp;amp; Installation ==&lt;br /&gt;
&lt;br /&gt;
# Insert your Ubuntu installation disc and reboot the computer. Boot from the disc, Ubuntu will launch in it’s live form for you to get a feel for the OS or install. You will be presented with two options, install Ubuntu or run a Live instance. Click the “Install Ubuntu” Option when it is presented to you at the Welcome screen.&lt;br /&gt;
# Proceed with a normal install of Ubuntu.  It is recommended to make the choice to Download the Latest updates while installing by Ticking the checkbox. Ubuntu will now examine hardware and alert you of any previously existing operating systems.  Recommended that you remove all information unless you have other OS's you want to keep on the system. During the install Ubuntu will ask you to set your timezone, Layout, and some user information such as a user name and password.  Set this information to your liking. In the latest flavors of Ubuntu the Root user account is disabled, after installation this guide will show you how to enable it. Ubuntu will copy files and begin the installation.&lt;br /&gt;
# After installation is complete, reboot. Remove the installation disc and press enter, your computer will reboot and boot up in it’s new operating system that is much faster and more durable than it’s squishy, virus prone, partners. Log in with the Password and the User you specified during installation.&lt;br /&gt;
&lt;br /&gt;
Your system should now be installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
== Enabling Root on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
# Please open up a terminal or console and log in as the user you created.&lt;br /&gt;
# To gain access, enter the following command and re-type the user password.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Then type the following command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;passwd root&amp;lt;/pre&amp;gt;&lt;br /&gt;
#*It will ask you to enter the new password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*It will ask you to confirm the password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*The terminal will return with &amp;lt;code&amp;gt;Password updated successfully!&amp;lt;/code&amp;gt;&lt;br /&gt;
#Type or copy the following code into the terminal and press enter.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;echo &amp;quot;greeter-show-manual-login=true&amp;quot; &amp;gt;&amp;gt; /etc/lightdm/lightdm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Please restart the machine with the command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;shutdown -r now&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Once the system returns, you can now login as the root user even from the GUI.  Just type the username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;  in the Password field, you'll type the password you set in the passwd root command above.&lt;br /&gt;
&lt;br /&gt;
== Setting static IP ==&lt;br /&gt;
# Click the “Dash Home” icon again, in the text box at the top type “Network” and select the first icon in the list displayed as “Network”. Select Wired and click Options. Select the “IPV4 Settings” tab and change the method from Automatic to Manual, Add, and supply the server with a proper IP address and information. Click Save. Your connection will reconnect.&lt;br /&gt;
# Next click on FireFox and in the browser navigate to the webpage http://www.fogproject.org and follow the download links to download the latest version of FOG, at the time of writing it is 0.32. Right mouse click and select show in folder and close your browser and all other open windows. Move the file to your desktop if you haven’t already. Right mouse click and select “Extract Here”.&lt;br /&gt;
# Now open a terminal and issue the following commands&lt;br /&gt;
#&amp;lt;pre&amp;gt;sudo nano /etc/resolvconf/resolv.conf.d/head&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Add the following line where x.x.x.x is the ip address of your DNS.  If you need to supply multiple DNS entries, separate entries with a space (i.e. nameserver x.x.x.x y.y.y.y)&lt;br /&gt;
#&amp;lt;pre&amp;gt;nameserver x.x.x.x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' NOTE: GIVEN THE DATE OF THE FOG 0.32 REVISION SOME PACKAGES ARE NO LONGER SUPPORTED AND MUST BE UPDATED WE WILL DO THIS FIRST!!! '''&lt;br /&gt;
&lt;br /&gt;
== Update and Install Packages ==&lt;br /&gt;
# Click on the “Dash Home” Icon again, type “Terminal” into the search box and select the first Icon. Now we are going to install FOG and configure it. We will do the installation through the Terminal with a number of commands, please follow them and remember to press enter after each line. Note the Capital and lower case letters, linux is VERY picky, “A” is not the same as “a”.&lt;br /&gt;
# From the terminal Type the following Commands:&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd Desktop/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd fog_0.32/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd packages&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;wget https://svn.code.sf.net/p/freeghost/code/trunk/packages/udpcast-20120424.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;rm -f udpcast-20071228.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastout=&amp;quot;udpcast-20071228&amp;quot;:udpcastout=&amp;quot;udpcast-20120424&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastsrc=&amp;quot;../packages/udpcast-20071228.tar.gz&amp;quot;:udpcastsrc=&amp;quot;../packages/udpcast-20120424.tar.gz&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd ../bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sudo ./installfog.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
# The following commands are for the installfog.sh installer information.  '''Change the relevant values for your particular system.'''&lt;br /&gt;
#* Type 2 and press Enter for Ubuntu installation.&lt;br /&gt;
#* Type N and press Enter for Normal installation&lt;br /&gt;
#* Supply IP Address, it SHOULD be the static IP address you set up earlier, if it is not please revert to step 5 and try again.&lt;br /&gt;
#* Type Y and press Enter setup DHCP Server.&lt;br /&gt;
#* Enter the IP Address associated with your DHCP Server&lt;br /&gt;
#* Type Y and press Enter to set up DNS.&lt;br /&gt;
#* Enter the DNS Server address and press Enter.&lt;br /&gt;
#* Type N and press Enter to leave the default Network Card the same.&lt;br /&gt;
#* Type N to disable DHCP Service.&lt;br /&gt;
#* '''NOTE: It tells you that in order to use your PXE server you have to run a few commands on your DHCP server, this is not entirely true, but it definitely helps, this will point your clients to your server, or you can disconnect your server from the outside world while you image.'''&lt;br /&gt;
#* Type N to not install Additional Languages.&lt;br /&gt;
#* Type Y and press Enter.&lt;br /&gt;
# Next it will verify the settings, make sure everything has been entered correctly.&lt;br /&gt;
#* '''NOTE: I set up Fog with default passwords for MYSQL and users, you can supply information if you like, just make notes.'''&lt;br /&gt;
#* Type a password for the “root” user in MySQL and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type Y to send your install information to the Project, and it will take some time to complete.&lt;br /&gt;
&lt;br /&gt;
== New Web Layout ==&lt;br /&gt;
'''Ubuntu 14.04 moved from the /var/www document root to /var/www/html document root layout.  Because of this, we have to either move the /var/www/fog directory to /var/www/html or simply create a link.'''&lt;br /&gt;
=== Open a terminal and sudo up to root. ===&lt;br /&gt;
* &amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Move fog folder so it's accessible.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;mv /var/www/fog /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Link the folder instead of move.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;ln -s /var/www/fog /var/www/html/fog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Complete the configuration ==&lt;br /&gt;
# Now we need to set up the web GUI for FOG. Open your browser and navigate to http://(serveripaddress)/fog/management. Or click the link in the Terminal window.&lt;br /&gt;
# The web GUI will alert you to back up your database for MYSQL Server and install the upgrades, do so and follow the upgrade instructions.&lt;br /&gt;
# Next log in, default user name is FOG and the password is password.&lt;br /&gt;
# Click “User Management” the Second Icon from the Left. Click “New User” on the left and set up a new user. Supply the name, password, and check the “Mobile/Quick Access only” box and press create user. In the PXE menu when doing a Quick Image, you will need to provide the username and password specified here to complete the image process.&lt;br /&gt;
# Image Management will allow you to create images, '''NOTE: MUST BE DONE PRIOR TO IMPORTING A HOST TO YOUR FOG SERVER''', otherwise you will have to create one and select it later. Click “New Image” on the left. Give the image a name, a description, select “Default” for Storage, and give the file a name, no spaces. Select Multiple Partition image – Single Disk (Not resizeable) or Multiple Partition image – All Disks (Not resizeable) I have never had a problem using these settings. However Single Partition (NTFS, Only Re-sizable) will work as well. DO NOT use the RAW format, it takes a long time to upload and does so sector by sector. This would be a recommendation if you are backing up a Linux partition. Click Add.&lt;br /&gt;
# Host Management will allow you to manually add or manage a host, I recommend using the PXE menu to register your hosts, but if you need to change information or the image type you can do it here.&lt;br /&gt;
# Your FOG server is configured and setup, register a host via the PXE menu.&lt;br /&gt;
# On your FOG Server in the WEB GUI, click on Task Management. On the left hand side, select “List all hosts” click on the “Upload” arrow for the host you just added. Select when you want the task to run, I set it a few minutes in the future. FOG has the ability to reboot your machine into the PXE menu to begin it’s process, but I simply reboot the computer, fog will find it and begin the image process&lt;br /&gt;
# CONGRATULATIONS you now have a working FOG Server and a host image ready to deploy. In order to deploy an Image, boot into the PXE menu and register the host, next select “Quick Image” and begin the image process, or select the host from the “Task Management” screen and select “Deploy” and reboot the workstation after supplying a time to begin the task, the workstation will begin its image process.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=8714</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=8714"/>
				<updated>2014-12-10T19:07:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32,x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 11.04 x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 12.04, 12.10 LTS x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|-&lt;br /&gt;
| (k)Ubuntu 13.04, 13.10 x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|-&lt;br /&gt;
| (k)Ubuntu 14.04, 14.10 x32, x64&lt;br /&gt;
| Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
'''***FIRST*** Update the schema by navigating to your fog management page and install the update.'''&lt;br /&gt;
&lt;br /&gt;
Make the following changes to your ltsp.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename, Server name, Server Ip Address&lt;br /&gt;
dhcp-boot=undionly.kpxe,,x.x.x.x&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
#dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
#dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, undionly&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=10.0.0.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your file and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a symlink for the undionly.kpxe file so dnsmasq can find it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo ln -s undionly.kpxe undionly.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=8713</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=8713"/>
				<updated>2014-12-10T19:06:48Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32,x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 11.04 x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 12.04, 12.10 LTS x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 13.04, 13.10 x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 14.04, 14.10 x32, x64&lt;br /&gt;
| Fog 1.1.0, Fog 1.2.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
'''***FIRST*** Update the schema by navigating to your fog management page and install the update.'''&lt;br /&gt;
&lt;br /&gt;
Make the following changes to your ltsp.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename, Server name, Server Ip Address&lt;br /&gt;
dhcp-boot=undionly.kpxe,,x.x.x.x&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
#dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
#dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, undionly&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=10.0.0.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your file and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a symlink for the undionly.kpxe file so dnsmasq can find it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo ln -s undionly.kpxe undionly.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=8712</id>
		<title>Ubuntu 14.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=8712"/>
				<updated>2014-12-10T19:02:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Setting static IP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ubuntu 14.04 &amp;amp; Ubuntu 14.04.1LTS &amp;amp; Ubuntu 14.10 =&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background-color:Yellow;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color:RED&amp;quot;&amp;gt;'''WARNING THIS VERSION OF LINUX, IT IS RELATIVITY NEW AND THERE ARE ISSUES WITH TFTP UPSTART AGAIN, WHEN TIME ALLOWS AND MAJOR ISSUES WITH FOG HAVE BEEN RESOLVED, WE WILL TACKLE FIXES FOR THE UBUNTU 14.04 OPERATING SYSTEM!'''&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''USE AT YOUR OWN RISK: We are not responsible for any damage to yourself, hardware, or co-workers. Use at your own risk. This is a set up that was proven to work in at LEAST 3 test environments. Any misuse or replication of this walk through in any other form is STRICTLY PROHIBITED.'''&lt;br /&gt;
== Setup &amp;amp; Installation ==&lt;br /&gt;
&lt;br /&gt;
# Insert your Ubuntu installation disc and reboot the computer. Boot from the disc, Ubuntu will launch in it’s live form for you to get a feel for the OS or install. You will be presented with two options, install Ubuntu or run a Live instance. Click the “Install Ubuntu” Option when it is presented to you at the Welcome screen.&lt;br /&gt;
# Proceed with a normal install of Ubuntu.  It is recommended to make the choice to Download the Latest updates while installing by Ticking the checkbox. Ubuntu will now examine hardware and alert you of any previously existing operating systems.  Recommended that you remove all information unless you have other OS's you want to keep on the system. During the install Ubuntu will ask you to set your timezone, Layout, and some user information such as a user name and password.  Set this information to your liking. In the latest flavors of Ubuntu the Root user account is disabled, after installation this guide will show you how to enable it. Ubuntu will copy files and begin the installation.&lt;br /&gt;
# After installation is complete, reboot. Remove the installation disc and press enter, your computer will reboot and boot up in it’s new operating system that is much faster and more durable than it’s squishy, virus prone, partners. Log in with the Password and the User you specified during installation.&lt;br /&gt;
&lt;br /&gt;
Your system should now be installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
== Enabling Root on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
# Please open up a terminal or console and log in as the user you created.&lt;br /&gt;
# To gain access, enter the following command and re-type the user password.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Then type the following command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;passwd root&amp;lt;/pre&amp;gt;&lt;br /&gt;
#*It will ask you to enter the new password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*It will ask you to confirm the password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*The terminal will return with &amp;lt;code&amp;gt;Password updated successfully!&amp;lt;/code&amp;gt;&lt;br /&gt;
#Type or copy the following code into the terminal and press enter.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;echo &amp;quot;greeter-show-manual-login=true&amp;quot; &amp;gt;&amp;gt; /etc/lightdm/lightdm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Please restart the machine with the command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;shutdown -r now&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Once the system returns, you can now login as the root user even from the GUI.  Just type the username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;  in the Password field, you'll type the password you set in the passwd root command above.&lt;br /&gt;
&lt;br /&gt;
== Setting static IP ==&lt;br /&gt;
# Click the “Dash Home” icon again, in the text box at the top type “Network” and select the first icon in the list displayed as “Network”. Select Wired and click Options. Select the “IPV4 Settings” tab and change the method from Automatic to Manual, Add, and supply the server with a proper IP address and information. Click Save. Your connection will reconnect.&lt;br /&gt;
# Next click on FireFox and in the browser navigate to the webpage http://www.fogproject.org and follow the download links to download the latest version of FOG, at the time of writing it is 0.32. Right mouse click and select show in folder and close your browser and all other open windows. Move the file to your desktop if you haven’t already. Right mouse click and select “Extract Here”.&lt;br /&gt;
# Now open a terminal and issue the following commands&lt;br /&gt;
#&amp;lt;pre&amp;gt;sudo gedit /etc/resolvconf/resolv.conf.d/head&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Add the following line where x.x.x.x is the ip address of your DNS.  If you need to supply multiple DNS entries, separate entries with a space (i.e. nameserver x.x.x.x y.y.y.y)&lt;br /&gt;
#&amp;lt;pre&amp;gt;nameserver x.x.x.x&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' NOTE: GIVEN THE DATE OF THE FOG 0.32 REVISION SOME PACKAGES ARE NO LONGER SUPPORTED AND MUST BE UPDATED WE WILL DO THIS FIRST!!! '''&lt;br /&gt;
&lt;br /&gt;
== Update and Install Packages ==&lt;br /&gt;
# Click on the “Dash Home” Icon again, type “Terminal” into the search box and select the first Icon. Now we are going to install FOG and configure it. We will do the installation through the Terminal with a number of commands, please follow them and remember to press enter after each line. Note the Capital and lower case letters, linux is VERY picky, “A” is not the same as “a”.&lt;br /&gt;
# From the terminal Type the following Commands:&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd Desktop/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd fog_0.32/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd packages&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;wget https://svn.code.sf.net/p/freeghost/code/trunk/packages/udpcast-20120424.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;rm -f udpcast-20071228.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastout=&amp;quot;udpcast-20071228&amp;quot;:udpcastout=&amp;quot;udpcast-20120424&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastsrc=&amp;quot;../packages/udpcast-20071228.tar.gz&amp;quot;:udpcastsrc=&amp;quot;../packages/udpcast-20120424.tar.gz&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd ../bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sudo ./installfog.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
# The following commands are for the installfog.sh installer information.  '''Change the relevant values for your particular system.'''&lt;br /&gt;
#* Type 2 and press Enter for Ubuntu installation.&lt;br /&gt;
#* Type N and press Enter for Normal installation&lt;br /&gt;
#* Supply IP Address, it SHOULD be the static IP address you set up earlier, if it is not please revert to step 5 and try again.&lt;br /&gt;
#* Type Y and press Enter setup DHCP Server.&lt;br /&gt;
#* Enter the IP Address associated with your DHCP Server&lt;br /&gt;
#* Type Y and press Enter to set up DNS.&lt;br /&gt;
#* Enter the DNS Server address and press Enter.&lt;br /&gt;
#* Type N and press Enter to leave the default Network Card the same.&lt;br /&gt;
#* Type N to disable DHCP Service.&lt;br /&gt;
#* '''NOTE: It tells you that in order to use your PXE server you have to run a few commands on your DHCP server, this is not entirely true, but it definitely helps, this will point your clients to your server, or you can disconnect your server from the outside world while you image.'''&lt;br /&gt;
#* Type N to not install Additional Languages.&lt;br /&gt;
#* Type Y and press Enter.&lt;br /&gt;
# Next it will verify the settings, make sure everything has been entered correctly.&lt;br /&gt;
#* '''NOTE: I set up Fog with default passwords for MYSQL and users, you can supply information if you like, just make notes.'''&lt;br /&gt;
#* Type a password for the “root” user in MySQL and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type Y to send your install information to the Project, and it will take some time to complete.&lt;br /&gt;
&lt;br /&gt;
== New Web Layout ==&lt;br /&gt;
'''Ubuntu 14.04 moved from the /var/www document root to /var/www/html document root layout.  Because of this, we have to either move the /var/www/fog directory to /var/www/html or simply create a link.'''&lt;br /&gt;
=== Open a terminal and sudo up to root. ===&lt;br /&gt;
* &amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Move fog folder so it's accessible.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;mv /var/www/fog /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Link the folder instead of move.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;ln -s /var/www/fog /var/www/html/fog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Complete the configuration ==&lt;br /&gt;
# Now we need to set up the web GUI for FOG. Open your browser and navigate to http://(serveripaddress)/fog/management. Or click the link in the Terminal window.&lt;br /&gt;
# The web GUI will alert you to back up your database for MYSQL Server and install the upgrades, do so and follow the upgrade instructions.&lt;br /&gt;
# Next log in, default user name is FOG and the password is password.&lt;br /&gt;
# Click “User Management” the Second Icon from the Left. Click “New User” on the left and set up a new user. Supply the name, password, and check the “Mobile/Quick Access only” box and press create user. In the PXE menu when doing a Quick Image, you will need to provide the username and password specified here to complete the image process.&lt;br /&gt;
# Image Management will allow you to create images, '''NOTE: MUST BE DONE PRIOR TO IMPORTING A HOST TO YOUR FOG SERVER''', otherwise you will have to create one and select it later. Click “New Image” on the left. Give the image a name, a description, select “Default” for Storage, and give the file a name, no spaces. Select Multiple Partition image – Single Disk (Not resizeable) or Multiple Partition image – All Disks (Not resizeable) I have never had a problem using these settings. However Single Partition (NTFS, Only Re-sizable) will work as well. DO NOT use the RAW format, it takes a long time to upload and does so sector by sector. This would be a recommendation if you are backing up a Linux partition. Click Add.&lt;br /&gt;
# Host Management will allow you to manually add or manage a host, I recommend using the PXE menu to register your hosts, but if you need to change information or the image type you can do it here.&lt;br /&gt;
# Your FOG server is configured and setup, register a host via the PXE menu.&lt;br /&gt;
# On your FOG Server in the WEB GUI, click on Task Management. On the left hand side, select “List all hosts” click on the “Upload” arrow for the host you just added. Select when you want the task to run, I set it a few minutes in the future. FOG has the ability to reboot your machine into the PXE menu to begin it’s process, but I simply reboot the computer, fog will find it and begin the image process&lt;br /&gt;
# CONGRATULATIONS you now have a working FOG Server and a host image ready to deploy. In order to deploy an Image, boot into the PXE menu and register the host, next select “Quick Image” and begin the image process, or select the host from the “Task Management” screen and select “Deploy” and reboot the workstation after supplying a time to begin the task, the workstation will begin its image process.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Credits&amp;diff=8605</id>
		<title>Credits</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Credits&amp;diff=8605"/>
				<updated>2014-12-04T16:57:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Jaymes Driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FOG Project Leads (Creators and Developers too) ==&lt;br /&gt;
=== Chuck Syperski ===&lt;br /&gt;
Chuck Syperski is the lead developer for FOG computer imaging solution.  He is a software developer and network integration specialist for a public school district outside of Chicago, IL.  Chuck Syperski has a Bachelor of Science in Computer Science from the University of Illinois and is half way done with his master's degree :).  He specializes in Java, jsp, jsf, objective C, C, C++, C#, perl and php.  You can contact  Chuck Syperski directly via sourceforge as the following link:&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/users/microleaks/&lt;br /&gt;
&lt;br /&gt;
Chuck Syperski releases other software titles through his company [http://cwssoft.com CWS Software LLC]&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Chuck Syperski&lt;br /&gt;
&lt;br /&gt;
=== Jian Zhang ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Jian Zhang&lt;br /&gt;
&lt;br /&gt;
== Community Managers ==&lt;br /&gt;
=== Chad-bsid ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
=== falko ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
=== andyroo54 ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
=== BryceZ ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
=== Kevin ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
== FOG Developers ==&lt;br /&gt;
=== Jaymes Driver ===&lt;br /&gt;
&lt;br /&gt;
*Jaymes &amp;quot;loves dnsmasq&amp;quot; Driver&lt;br /&gt;
&lt;br /&gt;
Jaymes is an aspiring software engineer and Ubuntu nut.  He began working on his degree at University of Advancing Technology in Tempe, AZ but currently works as a Technology Support Specialist for Seymour Community School Corporation out of Seymour, IN.  Jaymes spends his time breaking what isn't broken, and working on private projects that deal in html, php, and mysql.  You can contact Jaymes by using the FOG forums.&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Jaymes Driver&lt;br /&gt;
&lt;br /&gt;
=== Tom Elliott ===&lt;br /&gt;
&lt;br /&gt;
*Senior Developer&lt;br /&gt;
&lt;br /&gt;
Tom Elliott is the Senior Developer for FOG computer imaging solution.  He is a technical support specialist for Burlington School District in Burlington, VT.  Tom Elliott has a Bachelor of Science in Information Technology (BSIT) Information Systems Security from the University of Phoenix.  Currently looking at Master's programs.  He also served 8 years active duty service with the United States Army as a Signal Support Systems Specialist.  You can contact him directly via email at tommygunsster@gmail.com, thomas@mastacontrola.com, or on the FOG Forums.&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Tom Elliott&lt;br /&gt;
&lt;br /&gt;
=== Fernando Gietz ===&lt;br /&gt;
&lt;br /&gt;
*LDAP Plugin Creator&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Fernando Geitz&lt;br /&gt;
&lt;br /&gt;
=== Peter Gilchrist ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
=== Greg Grammon ===&lt;br /&gt;
&lt;br /&gt;
Greg Grammon a PC Support Technician for Fort Hays State University in Hays, KS. Greg Grammon has a Bachelor of Science in Information Networking and Telecommunications from Fort Hays State University. &lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Junkhacker.&lt;br /&gt;
&lt;br /&gt;
=== Curtis Larsen ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is fractal13&lt;br /&gt;
&lt;br /&gt;
=== Gilles Pietri ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Gilou&lt;br /&gt;
&lt;br /&gt;
=== Lee Rowlett ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Lee Rowlett&lt;br /&gt;
&lt;br /&gt;
=== Joseph Schmitt ===&lt;br /&gt;
&lt;br /&gt;
*Lead developer of the Client.&lt;br /&gt;
&lt;br /&gt;
Joseph Schmitt is currently working towards a degree in Computer Engineering. You can contact him directly via email at contact@jbob.io or on the forums.&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Jbob&lt;br /&gt;
&lt;br /&gt;
=== John Shaw ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is jbsclm&lt;br /&gt;
&lt;br /&gt;
=== Travis Vlaminck ===&lt;br /&gt;
&lt;br /&gt;
Travis works for a public school district as a computer support specialist. Most of his contributions to the FOG project are related to feature integration and coding on the web UI.&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is BPSTravis&lt;br /&gt;
&lt;br /&gt;
== Notorious Beta Testers ==&lt;br /&gt;
=== Andy Abplanalp ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His name on the FOG forums is tamatech&lt;br /&gt;
&lt;br /&gt;
=== Ian Allison ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is ianabc&lt;br /&gt;
&lt;br /&gt;
=== Lane Garland ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is need2&lt;br /&gt;
&lt;br /&gt;
=== Greg Plamondon ===&lt;br /&gt;
&lt;br /&gt;
No Content&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Greg Plamondon&lt;br /&gt;
&lt;br /&gt;
=== Dan Younkin ===&lt;br /&gt;
&lt;br /&gt;
Dan works for a public school district in Rockwood, PA, USA as a Technology Assistant. His titles include too many to count and if he takes a day off there are mass panics. Most of his contributions are testing new features, mass troubleshooting and confirming bugs, wiki updates, and suggesting more a simpler streamline FOG. It is his hope FOG will expand and compete with other streamline imaging software and systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
His username on the FOG forums is Wolfbane8653&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=FOGUserGuide&amp;diff=8536</id>
		<title>FOGUserGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=FOGUserGuide&amp;diff=8536"/>
				<updated>2014-12-03T18:33:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Jaymes &amp;quot;loves dnsmasq&amp;quot; Driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;A guide to deployment, management,&lt;br /&gt;
And concept overview&lt;br /&gt;
For FOG.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on a document by: &lt;br /&gt;
Thomas J. Munn&lt;br /&gt;
CISSP&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Preface ===&lt;br /&gt;
&lt;br /&gt;
This document is intended to be modified by FOG users, in fact it is based on a document created by a FOG user.  If you feel something could be said better or put more clearly, it is encouraged that you make changes to this document.  We just ask that you keep it constructive and in good taste.  In order to edit the wiki you are now required to create an account, as spamming of the forum has gotten pretty bad recently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''What is FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is a Linux-based, free and open source computer imaging solution for Windows XP, Windows Vista, Windows 7, Windows 8, and Linux (limited) that ties together a few open-source tools with a php-based web interface. FOG doesn't use any boot disks, or CDs; everything is done via TFTP and PXE. Your PC boots via PXE and automatically downloads a small Linux client.  From there you can select many activities on the PC, including imaging the hard drive.&lt;br /&gt;
&lt;br /&gt;
Also with FOG many network drivers are built into the Linux client's kernel, so you don't really need to worry about nic drivers (unless there isn't kernel support for it yet).  FOG also supports putting an image that came from a computer with a 80GB partition onto a machine with a 40GB hard drive as long as the data is less than 40GB.  FOG supports multi-casting, meaning that you can image many PCs from the same stream.  So it should be as fast whether you are imaging 1 PC or 20 PCs.&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''How should FOG be implemented?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is best implemented on a dedicated server, any spare machine you have.  We recommend that you have '''sufficient''' hard drive space as each image you make is usually between 5 and 10 GB.  Using a RAID array allows imaging multiple computers simultaneously without much performance degradation. A '''gigabit NIC''' is recommended. For faster image compression and decompression, provide as much processor and RAM as you can make available. &amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''What features are included with FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is more than just an imaging solution, FOG has grown into an imaging/cloning and network management solution.  FOG now performs tasks like installing and managing printers, tracking user access to computers, installing applications remotely via snap-ins, automatic user log offs and computer shutdown on idle timeouts.  If a computer is badly infected with a virus or malware, you can boot FOG in AV mode and have it remove the viruses.  You can wipe your disks, destroying all information that was on them, restore deleted files, or scan the disk for bad blocks.&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''How much does FOG cost?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is an Open Source project and licensed under the GPL which means that you are free to use FOG on as many computers as you like for free.  This also means that if you want to make any changes to the source code you are free to do so.  &lt;br /&gt;
&lt;br /&gt;
The creators of FOG make no profits from this project with the exception of donations.  FOG comes with absolutely '''NO WARRANTY''' and the creators of FOG are in '''NO WAY RESPONSIBLE FOR ANY DAMAGE OR LOSS CAUSED BY FOG!'''  Please see the license file included with the FOG release for more information.  With that being said we attempt to do a very good job of supporting our users, in fact it is one of the goals of FOG to have better support than most commercial products.  All support requests should be placed through the FOG's forum which is located at:&lt;br /&gt;
&lt;br /&gt;
http://fogproject.org/forum/&lt;br /&gt;
&lt;br /&gt;
Thanks for supporting open source software and enjoy!&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Background on FOG ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Why FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Working in an educational environment our organization's techs very often re-imaged computers in their day to day activities.  For a long time we used a commercial product that in many ways didn't meet our needs.  It wasn't web based, and you needed to create driver disks, floppys or USB drives.  Other things were very difficult, such as searching for a host by MAC address and the product was expensive, even with an educational discount.  So we started to investigate ways in which we could do things better, and as our organization struggled to make a commercial product work better by trying to pxe boot dos, and testing it in Windows PE, we, the FOG Team started to build linux based solution on our own time.  We finally got a working version and decided to release it as open source since we use many other open source products, and figured we should give back to the community.&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fundamental Concepts ===&lt;br /&gt;
This section provides some basic concepts that the FOG Project uses.&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Unicasting'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Unicasting in FOG means sending a single image to a single host.  This can mean an upload or a deploy, and is independent of the image type.&amp;lt;BR&amp;gt;&lt;br /&gt;
See this section for more on [[Unicasting]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Multicasting'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Multicasting in FOG uses UDPcast to send a single image to multiple computers using only slightly more bandwidth than sending the image to a single computer with unicast.&amp;lt;BR&amp;gt;&lt;br /&gt;
See this section for more on [[Multicasting]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''PXE Network Bootstrap loading'''&amp;lt;BR&amp;gt;&lt;br /&gt;
What is iPXE and the difference between the files? Check out the [[iPXE]] page.&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing FOG ==&lt;br /&gt;
FOG is a typical ''[http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP]'' software bundle, so the main server is a '''L'''inux box. The rest of the components: '''A'''pache, '''M'''ySQL, '''P'''HP, and several other services, are automatically downloaded and installed by the FOG installation script.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
This listing is for informational purposes only, as the required components will be automatically downloaded and installed by the FOG installation script.&lt;br /&gt;
&lt;br /&gt;
*PHP 5.3.0+&lt;br /&gt;
*MySql 5+&lt;br /&gt;
*Apache 2+&lt;br /&gt;
&lt;br /&gt;
The LAMP setup can also be easily adjusted for a &amp;quot;WAMP (Windows Apache MySQL PHP) system&amp;quot; though will require a bit more knowledge of what packages to use and how to integrate with the FOG system.&lt;br /&gt;
&lt;br /&gt;
=== Installation on different distributions of Linux ===&lt;br /&gt;
Click below for step-by-step guides written for your favorite flavor of Linux:&lt;br /&gt;
{{Installation}}&lt;br /&gt;
&lt;br /&gt;
== Network Integration ==&lt;br /&gt;
=== Basic Network Setup ===&lt;br /&gt;
The FOG setup script asks several questions which might not be obvious. These sections describe only the most generic settings.&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;'''Isolated Network'''&amp;lt;BR&amp;gt;&lt;br /&gt;
The easiest method to image machines and get started using FOG is on a small, isolated network. The FOG setup program will configure all the necessary services for you completely automatically. This section covers only those basic steps.&lt;br /&gt;
&amp;lt;br&amp;gt; '''See [[FOG on an Isolated Network]]'''&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Integrating FOG Server with Existing Network Systems'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Slightly more complicated is the task of integrating FOG into your existing network infrastructure. This section attempts to describe the steps to link FOG with a fairly generic enterprise system.&amp;lt;br&amp;gt;&lt;br /&gt;
'''See [[Integrating FOG into an Existing Network]]'''&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Network Setup===&lt;br /&gt;
==== Integrating FOG Server with Existing Network Systems in non intrusive mode using MAC filtration ====&lt;br /&gt;
This methods allows to use Fog in existing network without the need of controlling existing DHCP server. Requires you to input the MAC address of FOG clients.&lt;br /&gt;
See [[Integrating FOG into an Existing Network in non intrusive mode]]&lt;br /&gt;
==== Integrating FOG server into an existing network in non intrusive mode using ProxyDHCP ====&lt;br /&gt;
This methods allows to use Fog in existing network without the need of controlling existing DHCP server.  Does NOT required you to input the MAC addresses of FOG clients.&lt;br /&gt;
See [[Setting up ProxyDHCP]].&lt;br /&gt;
&lt;br /&gt;
==== Wake On Lan (WOL) ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; [[Cisco_Wake_on_lan|Cisco WOL - Layer 3]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[ProCurve_Wake_on_lan|ProCurve WOL]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
==== Multicast/UDPCast  ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;  [[Cisco_Multi_Cast|Cisco Multicast - Layer 3]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;  [[HPMulticast|HP Multicast - Layer 2&amp;amp;3]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
==== Full Listing of Ports used by FOG server and client ====&lt;br /&gt;
FTP – tcp 20,21&amp;lt;BR&amp;gt;&lt;br /&gt;
SSH – tcp 22&amp;lt;BR&amp;gt;&lt;br /&gt;
TFTP – udp 69&amp;lt;BR&amp;gt;&lt;br /&gt;
HTTP(s) – tcp 80,443&amp;lt;BR&amp;gt;&lt;br /&gt;
Portmap – tcp/udp 111&amp;lt;BR&amp;gt;&lt;br /&gt;
NFS – tcp/udp 2049&amp;lt;BR&amp;gt;&lt;br /&gt;
Transfer ports – tcp/udp 1024 – 65535&amp;lt;BR&amp;gt;&lt;br /&gt;
As found at: http://fogproject.org/forum/threads/firewall-config.27/&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
=== Quick Start - Basic Tasks ===&lt;br /&gt;
&lt;br /&gt;
So you have a FOG server installed and setup, now what do you do?  Below are a few common &amp;quot;Getting Started&amp;quot; items.&lt;br /&gt;
&lt;br /&gt;
#[[Booting into FOG and Uploading your first Image]]&lt;br /&gt;
#[[Deploying your Image a single client]]&lt;br /&gt;
#[[Deploying your Image a group of clients]]&lt;br /&gt;
&lt;br /&gt;
=== Tips ===&lt;br /&gt;
&lt;br /&gt;
#FOG requires that all hosts be entered in the FOG Database for imaging.  The most important part is getting the MAC address of the host right.  FOG uses the MAC for targeting image installs and acquires.  Using the wrong MAC could result in unpredictable results, including the complete erasure of the wrong pc!  The IP address isn’t that important, and the ‘name’ field is more for the user.  Mac address format is  00:12:3F:C4:57:0C .  Using dashes, spaces, or no items at all will result in the GUI not accepting the host.&lt;br /&gt;
#After hosts are entered, it is wise to group them together by function, hardware, or common image.  The image will be shared among all members of a particular group.  This occurs within the ‘hosts’ screen, and NOT on the groups screen.  This is a little confusing, so it helps to think of the ‘groups’ screen as a task generator, rather than controlling group memberships.&lt;br /&gt;
#For importing hosts in a .csv file follow the format below: 1 line per host:&amp;lt;pre&amp;gt;&amp;quot;00:c0:4f:18:62:63&amp;quot;,&amp;quot;Hostname&amp;quot;,&amp;quot;1.1.1.1&amp;quot;,&amp;quot;Your description&amp;quot;,&amp;quot;XP/Vista&amp;quot;,&amp;quot;Image filename to use&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Hosts are then configured to boot via PXE boot by going into the BIOS.  Make sure PXE boot is the FIRST option, NOT the hard disk, or things won’t work.&lt;br /&gt;
#Configure your ‘master’ pc for the first image.  Probably a good idea to run ‘[http://support.microsoft.com/kb/302577 sysprep]’ prior to imaging, but not necessary.  Sysprep will make your imaging life easier, if hardware is different, etc.  See Microsoft.com for more details on using sysprep.&lt;br /&gt;
&lt;br /&gt;
== Preparing a Client for Cloning ==&lt;br /&gt;
FOG's strength can be better harnessed if some time and work is put into preparing a master image that fits the needs of your environment. &amp;lt;br&amp;gt;&lt;br /&gt;
This section covers client preparation steps that will save you time and headaches like:&lt;br /&gt;
::Setting a [[Client_Setup#Set_up_Default_Profile|Default User Profile]]&amp;lt;BR&amp;gt;Installing Windows Updates&amp;lt;BR&amp;gt;Pre-Installing the [[Client_Setup#Final_Steps_Before_Imaging_.2F_Before_Sysprep|FOG service]], etc.&amp;lt;br&amp;gt;&lt;br /&gt;
It also covers more advanced ideas that are guaranteed to ''cause'' headaches, like:&lt;br /&gt;
::Sysprep, [[Client_Setup#Hardware-Independent_Images_-_Understand_HAL|Hardware-Independent Images (HAL)]], and Driver integration.&amp;lt;br&amp;gt;&lt;br /&gt;
Read more about ''[[Client Setup]]''&lt;br /&gt;
&lt;br /&gt;
== FOG Benchmarks ==&lt;br /&gt;
&lt;br /&gt;
=== [[Internal Benchmarks]] ===&lt;br /&gt;
== Managing FOG ==&lt;br /&gt;
The FOG web interface is your primary management console. It is very well-documented in the pages linked below:&amp;lt;br&amp;gt;&lt;br /&gt;
===The Main [[Managing FOG]] Document===&lt;br /&gt;
The link above opens the Main Managing FOG document and has a Table of Contents of its own.&amp;lt;BR&amp;gt;&lt;br /&gt;
Subcategories within the Managing Fog section include the following sections:&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Understanding the FOG [[Managing_FOG#Dashboard|Dashboard]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Provides an overview of the GUI and explains the symbols used on the [[Managing_FOG#Menu Bar|Menu Bar]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Managing [[Managing_FOG#Hosts|Hosts]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section covers management tasks such as: [[Managing_FOG#Adding a new host|Adding a new host]], [[Managing_FOG#Managing Hosts|Managing Hosts]], [[Managing_FOG#Host Status|Host Status]], and [[Managing_FOG#Creating Host Groups|Creating Host Groups]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Managing [[Managing_FOG#Groups|Groups of Hosts]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section provides an [[Managing_FOG#Overview_4|Overview]] of sorting hosts into useful Groups, and provides instruction on [[Managing_FOG#Managing Groups|Managing Groups]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Defining and Managing [[Managing_FOG#Images|Images]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Defines types of images: Single Partition | Multiple Partition - Single Disk | Multiple Partition - All Disks | Raw Image&amp;lt;br&amp;gt;&lt;br /&gt;
Also describes [[Managing_FOG#Creating_Images_Objects|Creating]], [[Managing_FOG#Modifying_Image_Objects|Modifying Image Objects]], and [[Managing_FOG#Adding_Existing_Image_Objects|Adding Images to Existing Objects]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''[[Managing_FOG#Storage_Management|Storage Management]] - adding additional Storage Nodes'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section introduces the [[Managing_FOG#Overview_6|concept of Storage Nodes]], which provide scalability to FOG with the ability to &amp;quot;share the load of computers being imaged.&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
Also covered are [[Managing_FOG#Adding_a_Storage_Node|Adding Storage Nodes]], Monitoring [[Managing_FOG#Monitoring_The_Master_Node|Image Replication]] between nodes, and Understanding the [[Managing_FOG#Master_Node_Status|role of the &amp;quot;Master Node&amp;quot;]] in a group.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, this section details the necessary steps to [[Managing_FOG#Including_multiple_PXE_.2F_TFTP_servers|include PXE and TFTP Services]] for a node located on a remote network segment.&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Defining types of [[Managing_FOG#Users|Administrative FOG Users]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
The difference between a regular FOG user and a [[Managing_FOG#Overview_7|Mobile user]]&amp;lt;br&amp;gt;&lt;br /&gt;
Also covered are [[Managing_FOG#Creating_Accounts|Creating]] and [[Managing_FOG#Modifying_Users|Modifying]] FOG user accounts&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FOG [[Managing_FOG#Tasks|Tasks]]==&lt;br /&gt;
This is a major section of FOG Management because all day-to-day client management is initiated within the FOG Tasks section.&amp;lt;br&amp;gt;&lt;br /&gt;
The [[Managing_FOG#Overview_8|Overview Section]] provides a quick list of tasks available within FOG.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Managing_FOG#General_Tasks|General Tasks]] - Basic Imaging Tasks:&lt;br /&gt;
::Uploading an image (includes video tutorial)&amp;lt;BR&amp;gt;Deploying an image&amp;lt;BR&amp;gt;Multicasting&amp;lt;br&amp;gt;&lt;br /&gt;
[[Managing_FOG#Advanced_Tasks|Advanced Tasks]] - Describes tasks other than imaging:&lt;br /&gt;
::Debug&amp;lt;BR&amp;gt;Upload - Unicast (Debug)&amp;lt;br&amp;gt;Send - Unicast (Debug)&amp;lt;br&amp;gt;Send - Unicast (Without Snapins)&amp;lt;br&amp;gt;Deploy All Snapins&amp;lt;br&amp;gt;Deploy Single Snapin&amp;lt;br&amp;gt;Memory Test&amp;lt;br&amp;gt;Wake Up&amp;lt;br&amp;gt;Fast Wipe&amp;lt;br&amp;gt;Normal Wipe&amp;lt;br&amp;gt;Full Wipe&amp;lt;br&amp;gt;Disk Surface Test&amp;lt;br&amp;gt;File Recovery&amp;lt;br&amp;gt;Virus Scan&amp;lt;br&amp;gt;Hardware Inventory&lt;br /&gt;
===Delayed Tasks, or [[Managing_FOG#Scheduling|Scheduling Tasks]] in the future===&lt;br /&gt;
Describes advanced settings available for scheduling tasks including Shutdown after Execution, [[Managing_FOG#Single_Execution_Scheduling|Single Task]] scheduling, and [[Managing_FOG#Cron_Style_Task_Scheduling|setting a CRON-Style Task]].&lt;br /&gt;
===[[Managing_FOG#Printers|Adding Printers]] to FOG===&lt;br /&gt;
How to add printers to FOG. This allows the [[Managing_FOG#Printer_Manager|FOG Service to manage printers]] on FOG Clients&lt;br /&gt;
==The [[Managing_FOG#The_FOG_Client_Service|FOG Client Service]]==&lt;br /&gt;
A service that runs on client computers allowing FOG to better manage them. Provides AD Integration, the ability to change a Hostname, Green Power management, Snap-in installation, User tracking, Printer Management, and more. See the [[Managing_FOG#Overview_10|Overview]] for a more complete list.&amp;lt;br&amp;gt;&lt;br /&gt;
The FOG client can be partially or fully-enabled by [[Managing_FOG#Module_specific_configuration_settings|modifying the ini file.]]&amp;lt;br&amp;gt;&lt;br /&gt;
===[[Managing_FOG#Installation|Installing]] the FOG Client===&lt;br /&gt;
A typical client installation, Silent installation, and a video tutorial.&lt;br /&gt;
===Advanced Description of [[Managing_FOG#Functions_and_Operation|FOG Services]]===&lt;br /&gt;
More detail on:&amp;lt;br&amp;gt;&lt;br /&gt;
::Auto Log Out&amp;lt;br&amp;gt;Hostname Changer&amp;lt;br&amp;gt;Host Register&amp;lt;br&amp;gt;Task Reboot&amp;lt;br&amp;gt;Directory Cleaner&amp;lt;br&amp;gt;Display Manager&amp;lt;br&amp;gt;Green FOG&amp;lt;br&amp;gt;Snapin Client&amp;lt;br&amp;gt;User Tracker&amp;lt;br&amp;gt;User Cleanup&amp;lt;br&amp;gt;Printer Manager&amp;lt;br&amp;gt;Client Updater&lt;br /&gt;
===[[Managing_FOG#Keeping_Clients_up_to_date|Updating]] the FOG Client===&lt;br /&gt;
How to update the FOG client.&lt;br /&gt;
===The [[Managing_FOG#FOG_Tray|FOG Tray]]===&lt;br /&gt;
Describes the Windows application that runs in the taskbar&lt;br /&gt;
&lt;br /&gt;
===[[Managing_FOG#Troubleshooting|Troubleshooting]] the FOG Client===&lt;br /&gt;
Log file location&lt;br /&gt;
==Snap-ins==&lt;br /&gt;
A FOG [[Managing_FOG#Snap-ins|Snap-in]] is anything that can be run on a Windows client. This can be ''just about anything'', including: installing applications like Firefox or Microsoft Office, adding an icon or shortcut to the desktop, or tweaking a registry key. This section covers [[Managing_FOG#Creating_a_Snapin_.2F_Overview|Creating a Snap-in]], adjusting the FOG server to handle snap-ins [[Managing_FOG#Preparing_the_FOG_Server|larger than 2MB]], [[Managing_FOG#Uploading_the_Snapin|Uploading the Snap-in]] into the FOG system, and [[Managing_FOG#Linking_the_Snapin_to_Hosts|Linking]] the Snap-in to hosts.&lt;br /&gt;
&lt;br /&gt;
== FOG Plugins ==&lt;br /&gt;
Plugins enhance FOG's functionality.&lt;br /&gt;
See [[Plugins]] to activate and manage plugins.&lt;br /&gt;
&lt;br /&gt;
===LDAP Plugin===&lt;br /&gt;
* Allows you to link with a LDAP server to add an user validation&lt;br /&gt;
* You can add mulitple LDAP servers&lt;br /&gt;
* You can config the DN base and the port of the LDAP Server&lt;br /&gt;
* If FOG can not connect with the LDAP Server, FOG tries to do a local validation&lt;br /&gt;
* If the user does not exist, FOG create one with the mobile profile&lt;br /&gt;
&lt;br /&gt;
===Location Plugin===&lt;br /&gt;
* Allows you to direct hosts at separate locations and manage through a centralized server&lt;br /&gt;
* Hosts will be imaged from their location setup, rather than trying to pull from a random node/server across, potentially, WAN links&lt;br /&gt;
* Same works for &amp;quot;Tftp&amp;quot; in that it will direct the host to get it's kernel and init from it's related location&lt;br /&gt;
* Can also be used to direct the host to download it's snapins from the relevant location&lt;br /&gt;
&lt;br /&gt;
===Access Control Plugin===&lt;br /&gt;
* &amp;lt;span style=&amp;quot;background-color:RED; padding: 1px&amp;quot;&amp;gt; '''NOT Currently ready''' &amp;lt;/span&amp;gt;&lt;br /&gt;
* To give a layer of security and control over the task and imaging processes as well as limit the GUI items from &amp;quot;designated&amp;quot; controls&lt;br /&gt;
* For Example: IT vs. Regular User&lt;br /&gt;
&lt;br /&gt;
===Capone Plugin===&lt;br /&gt;
* Ideally for retail markets and computer shops&lt;br /&gt;
* The Capone plugin allows FOG to recognize similar hardware platforms and push your specified image to them with minimal (or no) interaction&lt;br /&gt;
* In FOG terms a &amp;quot;Quick Image&amp;quot; without any registration&lt;br /&gt;
* &amp;lt;span style=&amp;quot;background-color:YELLOW; padding: 1px&amp;quot;&amp;gt; '''Obsolete''' &amp;lt;/span&amp;gt; As of FOG v1.3.0-r2651 the fog user can now add Quick Image to the Fog iPXE Menu(For All Hosts) and then select the exact image desired without having to do any registration. BUT intervention is still required to start imaging.&lt;br /&gt;
&lt;br /&gt;
===WOL Broadcast Plugin===&lt;br /&gt;
* Allowing the Fog user to specify different broadcast address on your network&lt;br /&gt;
* WOL will use those set values to send the WOL Packets to the broadcast addresses, rather than staying only on layer 2&lt;br /&gt;
* WOL packets operate at the layer 2 of a network meaning that it can only reach it's &amp;quot;Subnet&amp;quot;&lt;br /&gt;
* WOL Broadcast directly tells a packet to send to other broadcast addresses so that it network passes on the traffic&lt;br /&gt;
&lt;br /&gt;
===Example Plugin===&lt;br /&gt;
* If you would like to create your own plugins here is a template to follow.&lt;br /&gt;
&lt;br /&gt;
== FOG Server Maintenance ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;LI&amp;gt;[[Backing up FOG]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Restoring FOG from Backup]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Upgrading the FOG Server]]&amp;lt;/LI&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advanced Installations ==&lt;br /&gt;
&lt;br /&gt;
=== Separate TFTP and DHCP Server ===&lt;br /&gt;
&lt;br /&gt;
In this setup, the TFTP server and the DHCP server are hosted on a separate server.  The TFTP server holds the PXE boot files including the Linux Kernel, boot file system image, and pxe config files.  The DHCP server is the server that assigns the clients with IP addresses and network connection information.  &lt;br /&gt;
&lt;br /&gt;
Click here for detailed steps:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Separate TFTP and DHCP Server]]&lt;br /&gt;
&lt;br /&gt;
=== Additional TFTP / DHCP Server on separate subnet ===&lt;br /&gt;
This setup allows FOG to manage systems at a remote network location by installing the necessary services to allow clients to PXE boot to a Storage Node:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Multiple_TFTP_servers|Including multiple PXE / TFTP servers]]&lt;br /&gt;
&lt;br /&gt;
This extends the work done in the above article, [[Multiple_TFTP_servers|Including multiple PXE / TFTP servers]], and extends it a bit to allow for FOG nodes to be used in various locations that pull from a central server.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fog_deployment_nodes| Using remote FOG nodes for distributed deployment]]&lt;br /&gt;
&lt;br /&gt;
=== Separate NFS Server ===&lt;br /&gt;
&lt;br /&gt;
Edit the storage node definition with the IP address of your NFS server and set the image location to the path on the nfs server.&lt;br /&gt;
Make sure it has a file called .mntcheck in the root of the share, a directory called dev and a .mntcheck file in the dev folder.&lt;br /&gt;
&lt;br /&gt;
if you want to mount it on the fog server too, follow these steps:-&lt;br /&gt;
* mv /images /imagesold&lt;br /&gt;
* mkdir /images&lt;br /&gt;
* edit /etc/fstab&lt;br /&gt;
&lt;br /&gt;
For example if your server name is mynfsserver and the share on it is called fogimages&lt;br /&gt;
&amp;lt;pre&amp;gt;mynfsserver:/fogimages /images nfs defaults 0 0 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then type &lt;br /&gt;
&amp;lt;pre&amp;gt;mount -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KNOWN ISSUE'''&lt;br /&gt;
You will get an error &amp;quot;Ftp connection to storage server has failed&amp;quot; at the end of uploading images though.&lt;br /&gt;
You will have to manually rename and move the file from the dev directory to the directory below.&lt;br /&gt;
&lt;br /&gt;
If your NFS server supports ftp as well, enable ftp on it too with the username and password specified in the storage server settings and this message will go away.&lt;br /&gt;
&lt;br /&gt;
Hopefully someone will re-write POST_Stage2.php to change this at some point as if you already have the NFS share mounted why do we do this bit with ftp?&lt;br /&gt;
&lt;br /&gt;
You may also get an infinite loop of the following message:-&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;Unable to find a valid task ID based on the clients mac address of: &amp;lt;mac address&amp;gt;&amp;quot;.&amp;lt;/pre&amp;gt;&lt;br /&gt;
if you add an @ sign before the ftp commands it appears to have fixed the issue.&lt;br /&gt;
&lt;br /&gt;
so line 133 of /var/www/fog/service/Post_Stage2.php would look like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; if (@ftp_rename ( $ftp, $src, $dest ) || @ftp_rename ( $ftp, $srcdd, $dest ))&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change NFS location ===&lt;br /&gt;
&lt;br /&gt;
This is '''not about a seperate NFS server''' in general, but about how to '''change the local storage directory''' and export it correctly.&lt;br /&gt;
&lt;br /&gt;
See [[Change NFS location]] for more.&lt;br /&gt;
&lt;br /&gt;
== Other Advanced Topics  ==&lt;br /&gt;
&lt;br /&gt;
*[[Building a Custom Kernel]]&lt;br /&gt;
*[[Creating Custom FOG Service Modules]]&lt;br /&gt;
*[[Modifying the Init Image]]&lt;br /&gt;
*[[Translating FOG]]&lt;br /&gt;
*[[Bypass Host Registration]]&lt;br /&gt;
*[[Building undionly.kpxe]]&lt;br /&gt;
*[[Chainloading PXE to iPXE using pxelinux.0]]&lt;br /&gt;
*[[Auto driver Install]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
This section is intended to bring together the most common issues from the [http://www.fogproject.org/forum forums].&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting Installation and Configuration Issues ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;[[Knowledge Base]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Password Central]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting an image push to a client]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting an image upload]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting a multicast]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting Driver Issues]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Speeding up the Graphical User Interface]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bottleneck]] / Imaging Speed Issues&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Advanced_Boot_Menu_Configuration_options]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting Host Management Showing Hosts as Down]]&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Appendix C: Alternative Resources ==&lt;br /&gt;
For Microsoft sysprep information, see this page:  &lt;br /&gt;
http://vernalex.com/guides/sysprep/video.shtml&lt;br /&gt;
&lt;br /&gt;
FOG install HOWTO: &lt;br /&gt;
http://www.howtoforge.com/installing-fog-computer-imaging-solution-on-fedora8&lt;br /&gt;
&lt;br /&gt;
FOG sourceforge page:&lt;br /&gt;
http://freeghost.sf.net/&lt;br /&gt;
&lt;br /&gt;
Deployment Forum at Edugeek contains many Fog related threads &lt;br /&gt;
http://www.edugeek.net/forums/o-s-deployment/&lt;br /&gt;
&lt;br /&gt;
= About the Developers =&lt;br /&gt;
&lt;br /&gt;
=== Chuck Syperski ===&lt;br /&gt;
&lt;br /&gt;
Chuck Syperski is the lead developer for FOG computer imaging solution.  He is a software developer and network integration specialist for a public school district outside of Chicago, IL.  Chuck Syperski has a Bachelor of Science in Computer Science from the University of Illinois and is half way done with his master's degree :).  He specializes in Java, jsp, jsf, objective C, C, C++, C#, perl and php.  You can contact  Chuck Syperski directly via sourceforge as the following link:&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/users/microleaks/&lt;br /&gt;
&lt;br /&gt;
Chuck Syperski releases other software titles through his company [http://cwssoft.com CWS Software LLC]&lt;br /&gt;
&lt;br /&gt;
=== Jian Zhang ===&lt;br /&gt;
&lt;br /&gt;
No content&lt;br /&gt;
&lt;br /&gt;
=== Tom Elliott ===&lt;br /&gt;
&lt;br /&gt;
Tom Elliott is a contributing developer for FOG computer imaging solution.  He is a technical support specialist for Burlington School District in Burlington, VT.  Tom Elliott has a Bachelor of Science in Information Technology (BSIT) Information Systems Security from the University of Phoenix.  Currently looking at Master's programs.  He also served 8 years active duty service with the United States Army as a Signal Support Systems Specialist.  You can contact him directly via email at tommygunsster@gmail.com, thomas@mastacontrola.com, or on the FOG Forums.  Username on the forums is Tom Elliott.&lt;br /&gt;
&lt;br /&gt;
=== Jaymes &amp;quot;loves dnsmasq&amp;quot; Driver ===&lt;br /&gt;
Jaymes is an aspiring software engineer and Ubuntu nut.  He began working on his degree at University of Advancing Technology in Tempe, AZ but currently works as a Technology Support Specialist for Seymour Community School Corporation out of Seymour, IN.  Jaymes spends his time breaking what isn't broken, and working on private projects that deal in html, php, and mysql.  You can contact Jaymes by using the FOG forums.  His username is Jaymes Driver.&lt;br /&gt;
&lt;br /&gt;
=== Jbob ===&lt;br /&gt;
Lead developer on the Windows Client Service on Fog connected host computers.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=FOGUserGuide&amp;diff=8535</id>
		<title>FOGUserGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=FOGUserGuide&amp;diff=8535"/>
				<updated>2014-12-03T18:31:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Jaymes Driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;A guide to deployment, management,&lt;br /&gt;
And concept overview&lt;br /&gt;
For FOG.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on a document by: &lt;br /&gt;
Thomas J. Munn&lt;br /&gt;
CISSP&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Preface ===&lt;br /&gt;
&lt;br /&gt;
This document is intended to be modified by FOG users, in fact it is based on a document created by a FOG user.  If you feel something could be said better or put more clearly, it is encouraged that you make changes to this document.  We just ask that you keep it constructive and in good taste.  In order to edit the wiki you are now required to create an account, as spamming of the forum has gotten pretty bad recently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''What is FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is a Linux-based, free and open source computer imaging solution for Windows XP, Windows Vista, Windows 7, Windows 8, and Linux (limited) that ties together a few open-source tools with a php-based web interface. FOG doesn't use any boot disks, or CDs; everything is done via TFTP and PXE. Your PC boots via PXE and automatically downloads a small Linux client.  From there you can select many activities on the PC, including imaging the hard drive.&lt;br /&gt;
&lt;br /&gt;
Also with FOG many network drivers are built into the Linux client's kernel, so you don't really need to worry about nic drivers (unless there isn't kernel support for it yet).  FOG also supports putting an image that came from a computer with a 80GB partition onto a machine with a 40GB hard drive as long as the data is less than 40GB.  FOG supports multi-casting, meaning that you can image many PCs from the same stream.  So it should be as fast whether you are imaging 1 PC or 20 PCs.&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''How should FOG be implemented?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is best implemented on a dedicated server, any spare machine you have.  We recommend that you have '''sufficient''' hard drive space as each image you make is usually between 5 and 10 GB.  Using a RAID array allows imaging multiple computers simultaneously without much performance degradation. A '''gigabit NIC''' is recommended. For faster image compression and decompression, provide as much processor and RAM as you can make available. &amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''What features are included with FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is more than just an imaging solution, FOG has grown into an imaging/cloning and network management solution.  FOG now performs tasks like installing and managing printers, tracking user access to computers, installing applications remotely via snap-ins, automatic user log offs and computer shutdown on idle timeouts.  If a computer is badly infected with a virus or malware, you can boot FOG in AV mode and have it remove the viruses.  You can wipe your disks, destroying all information that was on them, restore deleted files, or scan the disk for bad blocks.&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''How much does FOG cost?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is an Open Source project and licensed under the GPL which means that you are free to use FOG on as many computers as you like for free.  This also means that if you want to make any changes to the source code you are free to do so.  &lt;br /&gt;
&lt;br /&gt;
The creators of FOG make no profits from this project with the exception of donations.  FOG comes with absolutely '''NO WARRANTY''' and the creators of FOG are in '''NO WAY RESPONSIBLE FOR ANY DAMAGE OR LOSS CAUSED BY FOG!'''  Please see the license file included with the FOG release for more information.  With that being said we attempt to do a very good job of supporting our users, in fact it is one of the goals of FOG to have better support than most commercial products.  All support requests should be placed through the FOG's forum which is located at:&lt;br /&gt;
&lt;br /&gt;
http://fogproject.org/forum/&lt;br /&gt;
&lt;br /&gt;
Thanks for supporting open source software and enjoy!&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Background on FOG ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Why FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Working in an educational environment our organization's techs very often re-imaged computers in their day to day activities.  For a long time we used a commercial product that in many ways didn't meet our needs.  It wasn't web based, and you needed to create driver disks, floppys or USB drives.  Other things were very difficult, such as searching for a host by MAC address and the product was expensive, even with an educational discount.  So we started to investigate ways in which we could do things better, and as our organization struggled to make a commercial product work better by trying to pxe boot dos, and testing it in Windows PE, we, the FOG Team started to build linux based solution on our own time.  We finally got a working version and decided to release it as open source since we use many other open source products, and figured we should give back to the community.&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fundamental Concepts ===&lt;br /&gt;
This section provides some basic concepts that the FOG Project uses.&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Unicasting'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Unicasting in FOG means sending a single image to a single host.  This can mean an upload or a deploy, and is independent of the image type.&amp;lt;BR&amp;gt;&lt;br /&gt;
See this section for more on [[Unicasting]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Multicasting'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Multicasting in FOG uses UDPcast to send a single image to multiple computers using only slightly more bandwidth than sending the image to a single computer with unicast.&amp;lt;BR&amp;gt;&lt;br /&gt;
See this section for more on [[Multicasting]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''PXE Network Bootstrap loading'''&amp;lt;BR&amp;gt;&lt;br /&gt;
What is iPXE and the difference between the files? Check out the [[iPXE]] page.&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing FOG ==&lt;br /&gt;
FOG is a typical ''[http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP]'' software bundle, so the main server is a '''L'''inux box. The rest of the components: '''A'''pache, '''M'''ySQL, '''P'''HP, and several other services, are automatically downloaded and installed by the FOG installation script.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
This listing is for informational purposes only, as the required components will be automatically downloaded and installed by the FOG installation script.&lt;br /&gt;
&lt;br /&gt;
*PHP 5.3.0+&lt;br /&gt;
*MySql 5+&lt;br /&gt;
*Apache 2+&lt;br /&gt;
&lt;br /&gt;
The LAMP setup can also be easily adjusted for a &amp;quot;WAMP (Windows Apache MySQL PHP) system&amp;quot; though will require a bit more knowledge of what packages to use and how to integrate with the FOG system.&lt;br /&gt;
&lt;br /&gt;
=== Installation on different distributions of Linux ===&lt;br /&gt;
Click below for step-by-step guides written for your favorite flavor of Linux:&lt;br /&gt;
{{Installation}}&lt;br /&gt;
&lt;br /&gt;
== Network Integration ==&lt;br /&gt;
=== Basic Network Setup ===&lt;br /&gt;
The FOG setup script asks several questions which might not be obvious. These sections describe only the most generic settings.&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;'''Isolated Network'''&amp;lt;BR&amp;gt;&lt;br /&gt;
The easiest method to image machines and get started using FOG is on a small, isolated network. The FOG setup program will configure all the necessary services for you completely automatically. This section covers only those basic steps.&lt;br /&gt;
&amp;lt;br&amp;gt; '''See [[FOG on an Isolated Network]]'''&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Integrating FOG Server with Existing Network Systems'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Slightly more complicated is the task of integrating FOG into your existing network infrastructure. This section attempts to describe the steps to link FOG with a fairly generic enterprise system.&amp;lt;br&amp;gt;&lt;br /&gt;
'''See [[Integrating FOG into an Existing Network]]'''&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Network Setup===&lt;br /&gt;
==== Integrating FOG Server with Existing Network Systems in non intrusive mode using MAC filtration ====&lt;br /&gt;
This methods allows to use Fog in existing network without the need of controlling existing DHCP server. Requires you to input the MAC address of FOG clients.&lt;br /&gt;
See [[Integrating FOG into an Existing Network in non intrusive mode]]&lt;br /&gt;
==== Integrating FOG server into an existing network in non intrusive mode using ProxyDHCP ====&lt;br /&gt;
This methods allows to use Fog in existing network without the need of controlling existing DHCP server.  Does NOT required you to input the MAC addresses of FOG clients.&lt;br /&gt;
See [[Setting up ProxyDHCP]].&lt;br /&gt;
&lt;br /&gt;
==== Wake On Lan (WOL) ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; [[Cisco_Wake_on_lan|Cisco WOL - Layer 3]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[ProCurve_Wake_on_lan|ProCurve WOL]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
==== Multicast/UDPCast  ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;  [[Cisco_Multi_Cast|Cisco Multicast - Layer 3]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;  [[HPMulticast|HP Multicast - Layer 2&amp;amp;3]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
==== Full Listing of Ports used by FOG server and client ====&lt;br /&gt;
FTP – tcp 20,21&amp;lt;BR&amp;gt;&lt;br /&gt;
SSH – tcp 22&amp;lt;BR&amp;gt;&lt;br /&gt;
TFTP – udp 69&amp;lt;BR&amp;gt;&lt;br /&gt;
HTTP(s) – tcp 80,443&amp;lt;BR&amp;gt;&lt;br /&gt;
Portmap – tcp/udp 111&amp;lt;BR&amp;gt;&lt;br /&gt;
NFS – tcp/udp 2049&amp;lt;BR&amp;gt;&lt;br /&gt;
Transfer ports – tcp/udp 1024 – 65535&amp;lt;BR&amp;gt;&lt;br /&gt;
As found at: http://fogproject.org/forum/threads/firewall-config.27/&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
=== Quick Start - Basic Tasks ===&lt;br /&gt;
&lt;br /&gt;
So you have a FOG server installed and setup, now what do you do?  Below are a few common &amp;quot;Getting Started&amp;quot; items.&lt;br /&gt;
&lt;br /&gt;
#[[Booting into FOG and Uploading your first Image]]&lt;br /&gt;
#[[Deploying your Image a single client]]&lt;br /&gt;
#[[Deploying your Image a group of clients]]&lt;br /&gt;
&lt;br /&gt;
=== Tips ===&lt;br /&gt;
&lt;br /&gt;
#FOG requires that all hosts be entered in the FOG Database for imaging.  The most important part is getting the MAC address of the host right.  FOG uses the MAC for targeting image installs and acquires.  Using the wrong MAC could result in unpredictable results, including the complete erasure of the wrong pc!  The IP address isn’t that important, and the ‘name’ field is more for the user.  Mac address format is  00:12:3F:C4:57:0C .  Using dashes, spaces, or no items at all will result in the GUI not accepting the host.&lt;br /&gt;
#After hosts are entered, it is wise to group them together by function, hardware, or common image.  The image will be shared among all members of a particular group.  This occurs within the ‘hosts’ screen, and NOT on the groups screen.  This is a little confusing, so it helps to think of the ‘groups’ screen as a task generator, rather than controlling group memberships.&lt;br /&gt;
#For importing hosts in a .csv file follow the format below: 1 line per host:&amp;lt;pre&amp;gt;&amp;quot;00:c0:4f:18:62:63&amp;quot;,&amp;quot;Hostname&amp;quot;,&amp;quot;1.1.1.1&amp;quot;,&amp;quot;Your description&amp;quot;,&amp;quot;XP/Vista&amp;quot;,&amp;quot;Image filename to use&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Hosts are then configured to boot via PXE boot by going into the BIOS.  Make sure PXE boot is the FIRST option, NOT the hard disk, or things won’t work.&lt;br /&gt;
#Configure your ‘master’ pc for the first image.  Probably a good idea to run ‘[http://support.microsoft.com/kb/302577 sysprep]’ prior to imaging, but not necessary.  Sysprep will make your imaging life easier, if hardware is different, etc.  See Microsoft.com for more details on using sysprep.&lt;br /&gt;
&lt;br /&gt;
== Preparing a Client for Cloning ==&lt;br /&gt;
FOG's strength can be better harnessed if some time and work is put into preparing a master image that fits the needs of your environment. &amp;lt;br&amp;gt;&lt;br /&gt;
This section covers client preparation steps that will save you time and headaches like:&lt;br /&gt;
::Setting a [[Client_Setup#Set_up_Default_Profile|Default User Profile]]&amp;lt;BR&amp;gt;Installing Windows Updates&amp;lt;BR&amp;gt;Pre-Installing the [[Client_Setup#Final_Steps_Before_Imaging_.2F_Before_Sysprep|FOG service]], etc.&amp;lt;br&amp;gt;&lt;br /&gt;
It also covers more advanced ideas that are guaranteed to ''cause'' headaches, like:&lt;br /&gt;
::Sysprep, [[Client_Setup#Hardware-Independent_Images_-_Understand_HAL|Hardware-Independent Images (HAL)]], and Driver integration.&amp;lt;br&amp;gt;&lt;br /&gt;
Read more about ''[[Client Setup]]''&lt;br /&gt;
&lt;br /&gt;
== FOG Benchmarks ==&lt;br /&gt;
&lt;br /&gt;
=== [[Internal Benchmarks]] ===&lt;br /&gt;
== Managing FOG ==&lt;br /&gt;
The FOG web interface is your primary management console. It is very well-documented in the pages linked below:&amp;lt;br&amp;gt;&lt;br /&gt;
===The Main [[Managing FOG]] Document===&lt;br /&gt;
The link above opens the Main Managing FOG document and has a Table of Contents of its own.&amp;lt;BR&amp;gt;&lt;br /&gt;
Subcategories within the Managing Fog section include the following sections:&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Understanding the FOG [[Managing_FOG#Dashboard|Dashboard]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Provides an overview of the GUI and explains the symbols used on the [[Managing_FOG#Menu Bar|Menu Bar]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Managing [[Managing_FOG#Hosts|Hosts]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section covers management tasks such as: [[Managing_FOG#Adding a new host|Adding a new host]], [[Managing_FOG#Managing Hosts|Managing Hosts]], [[Managing_FOG#Host Status|Host Status]], and [[Managing_FOG#Creating Host Groups|Creating Host Groups]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Managing [[Managing_FOG#Groups|Groups of Hosts]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section provides an [[Managing_FOG#Overview_4|Overview]] of sorting hosts into useful Groups, and provides instruction on [[Managing_FOG#Managing Groups|Managing Groups]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Defining and Managing [[Managing_FOG#Images|Images]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Defines types of images: Single Partition | Multiple Partition - Single Disk | Multiple Partition - All Disks | Raw Image&amp;lt;br&amp;gt;&lt;br /&gt;
Also describes [[Managing_FOG#Creating_Images_Objects|Creating]], [[Managing_FOG#Modifying_Image_Objects|Modifying Image Objects]], and [[Managing_FOG#Adding_Existing_Image_Objects|Adding Images to Existing Objects]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''[[Managing_FOG#Storage_Management|Storage Management]] - adding additional Storage Nodes'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section introduces the [[Managing_FOG#Overview_6|concept of Storage Nodes]], which provide scalability to FOG with the ability to &amp;quot;share the load of computers being imaged.&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
Also covered are [[Managing_FOG#Adding_a_Storage_Node|Adding Storage Nodes]], Monitoring [[Managing_FOG#Monitoring_The_Master_Node|Image Replication]] between nodes, and Understanding the [[Managing_FOG#Master_Node_Status|role of the &amp;quot;Master Node&amp;quot;]] in a group.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, this section details the necessary steps to [[Managing_FOG#Including_multiple_PXE_.2F_TFTP_servers|include PXE and TFTP Services]] for a node located on a remote network segment.&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Defining types of [[Managing_FOG#Users|Administrative FOG Users]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
The difference between a regular FOG user and a [[Managing_FOG#Overview_7|Mobile user]]&amp;lt;br&amp;gt;&lt;br /&gt;
Also covered are [[Managing_FOG#Creating_Accounts|Creating]] and [[Managing_FOG#Modifying_Users|Modifying]] FOG user accounts&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FOG [[Managing_FOG#Tasks|Tasks]]==&lt;br /&gt;
This is a major section of FOG Management because all day-to-day client management is initiated within the FOG Tasks section.&amp;lt;br&amp;gt;&lt;br /&gt;
The [[Managing_FOG#Overview_8|Overview Section]] provides a quick list of tasks available within FOG.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Managing_FOG#General_Tasks|General Tasks]] - Basic Imaging Tasks:&lt;br /&gt;
::Uploading an image (includes video tutorial)&amp;lt;BR&amp;gt;Deploying an image&amp;lt;BR&amp;gt;Multicasting&amp;lt;br&amp;gt;&lt;br /&gt;
[[Managing_FOG#Advanced_Tasks|Advanced Tasks]] - Describes tasks other than imaging:&lt;br /&gt;
::Debug&amp;lt;BR&amp;gt;Upload - Unicast (Debug)&amp;lt;br&amp;gt;Send - Unicast (Debug)&amp;lt;br&amp;gt;Send - Unicast (Without Snapins)&amp;lt;br&amp;gt;Deploy All Snapins&amp;lt;br&amp;gt;Deploy Single Snapin&amp;lt;br&amp;gt;Memory Test&amp;lt;br&amp;gt;Wake Up&amp;lt;br&amp;gt;Fast Wipe&amp;lt;br&amp;gt;Normal Wipe&amp;lt;br&amp;gt;Full Wipe&amp;lt;br&amp;gt;Disk Surface Test&amp;lt;br&amp;gt;File Recovery&amp;lt;br&amp;gt;Virus Scan&amp;lt;br&amp;gt;Hardware Inventory&lt;br /&gt;
===Delayed Tasks, or [[Managing_FOG#Scheduling|Scheduling Tasks]] in the future===&lt;br /&gt;
Describes advanced settings available for scheduling tasks including Shutdown after Execution, [[Managing_FOG#Single_Execution_Scheduling|Single Task]] scheduling, and [[Managing_FOG#Cron_Style_Task_Scheduling|setting a CRON-Style Task]].&lt;br /&gt;
===[[Managing_FOG#Printers|Adding Printers]] to FOG===&lt;br /&gt;
How to add printers to FOG. This allows the [[Managing_FOG#Printer_Manager|FOG Service to manage printers]] on FOG Clients&lt;br /&gt;
==The [[Managing_FOG#The_FOG_Client_Service|FOG Client Service]]==&lt;br /&gt;
A service that runs on client computers allowing FOG to better manage them. Provides AD Integration, the ability to change a Hostname, Green Power management, Snap-in installation, User tracking, Printer Management, and more. See the [[Managing_FOG#Overview_10|Overview]] for a more complete list.&amp;lt;br&amp;gt;&lt;br /&gt;
The FOG client can be partially or fully-enabled by [[Managing_FOG#Module_specific_configuration_settings|modifying the ini file.]]&amp;lt;br&amp;gt;&lt;br /&gt;
===[[Managing_FOG#Installation|Installing]] the FOG Client===&lt;br /&gt;
A typical client installation, Silent installation, and a video tutorial.&lt;br /&gt;
===Advanced Description of [[Managing_FOG#Functions_and_Operation|FOG Services]]===&lt;br /&gt;
More detail on:&amp;lt;br&amp;gt;&lt;br /&gt;
::Auto Log Out&amp;lt;br&amp;gt;Hostname Changer&amp;lt;br&amp;gt;Host Register&amp;lt;br&amp;gt;Task Reboot&amp;lt;br&amp;gt;Directory Cleaner&amp;lt;br&amp;gt;Display Manager&amp;lt;br&amp;gt;Green FOG&amp;lt;br&amp;gt;Snapin Client&amp;lt;br&amp;gt;User Tracker&amp;lt;br&amp;gt;User Cleanup&amp;lt;br&amp;gt;Printer Manager&amp;lt;br&amp;gt;Client Updater&lt;br /&gt;
===[[Managing_FOG#Keeping_Clients_up_to_date|Updating]] the FOG Client===&lt;br /&gt;
How to update the FOG client.&lt;br /&gt;
===The [[Managing_FOG#FOG_Tray|FOG Tray]]===&lt;br /&gt;
Describes the Windows application that runs in the taskbar&lt;br /&gt;
&lt;br /&gt;
===[[Managing_FOG#Troubleshooting|Troubleshooting]] the FOG Client===&lt;br /&gt;
Log file location&lt;br /&gt;
==Snap-ins==&lt;br /&gt;
A FOG [[Managing_FOG#Snap-ins|Snap-in]] is anything that can be run on a Windows client. This can be ''just about anything'', including: installing applications like Firefox or Microsoft Office, adding an icon or shortcut to the desktop, or tweaking a registry key. This section covers [[Managing_FOG#Creating_a_Snapin_.2F_Overview|Creating a Snap-in]], adjusting the FOG server to handle snap-ins [[Managing_FOG#Preparing_the_FOG_Server|larger than 2MB]], [[Managing_FOG#Uploading_the_Snapin|Uploading the Snap-in]] into the FOG system, and [[Managing_FOG#Linking_the_Snapin_to_Hosts|Linking]] the Snap-in to hosts.&lt;br /&gt;
&lt;br /&gt;
== FOG Plugins ==&lt;br /&gt;
Plugins enhance FOG's functionality.&lt;br /&gt;
See [[Plugins]] to activate and manage plugins.&lt;br /&gt;
&lt;br /&gt;
===LDAP Plugin===&lt;br /&gt;
* Allows you to link with a LDAP server to add an user validation&lt;br /&gt;
* You can add mulitple LDAP servers&lt;br /&gt;
* You can config the DN base and the port of the LDAP Server&lt;br /&gt;
* If FOG can not connect with the LDAP Server, FOG tries to do a local validation&lt;br /&gt;
* If the user does not exist, FOG create one with the mobile profile&lt;br /&gt;
&lt;br /&gt;
===Location Plugin===&lt;br /&gt;
* Allows you to direct hosts at separate locations and manage through a centralized server&lt;br /&gt;
* Hosts will be imaged from their location setup, rather than trying to pull from a random node/server across, potentially, WAN links&lt;br /&gt;
* Same works for &amp;quot;Tftp&amp;quot; in that it will direct the host to get it's kernel and init from it's related location&lt;br /&gt;
* Can also be used to direct the host to download it's snapins from the relevant location&lt;br /&gt;
&lt;br /&gt;
===Access Control Plugin===&lt;br /&gt;
* &amp;lt;span style=&amp;quot;background-color:RED; padding: 1px&amp;quot;&amp;gt; '''NOT Currently ready''' &amp;lt;/span&amp;gt;&lt;br /&gt;
* To give a layer of security and control over the task and imaging processes as well as limit the GUI items from &amp;quot;designated&amp;quot; controls&lt;br /&gt;
* For Example: IT vs. Regular User&lt;br /&gt;
&lt;br /&gt;
===Capone Plugin===&lt;br /&gt;
* Ideally for retail markets and computer shops&lt;br /&gt;
* The Capone plugin allows FOG to recognize similar hardware platforms and push your specified image to them with minimal (or no) interaction&lt;br /&gt;
* In FOG terms a &amp;quot;Quick Image&amp;quot; without any registration&lt;br /&gt;
* &amp;lt;span style=&amp;quot;background-color:YELLOW; padding: 1px&amp;quot;&amp;gt; '''Obsolete''' &amp;lt;/span&amp;gt; As of FOG v1.3.0-r2651 the fog user can now add Quick Image to the Fog iPXE Menu(For All Hosts) and then select the exact image desired without having to do any registration. BUT intervention is still required to start imaging.&lt;br /&gt;
&lt;br /&gt;
===WOL Broadcast Plugin===&lt;br /&gt;
* Allowing the Fog user to specify different broadcast address on your network&lt;br /&gt;
* WOL will use those set values to send the WOL Packets to the broadcast addresses, rather than staying only on layer 2&lt;br /&gt;
* WOL packets operate at the layer 2 of a network meaning that it can only reach it's &amp;quot;Subnet&amp;quot;&lt;br /&gt;
* WOL Broadcast directly tells a packet to send to other broadcast addresses so that it network passes on the traffic&lt;br /&gt;
&lt;br /&gt;
===Example Plugin===&lt;br /&gt;
* If you would like to create your own plugins here is a template to follow.&lt;br /&gt;
&lt;br /&gt;
== FOG Server Maintenance ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;LI&amp;gt;[[Backing up FOG]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Restoring FOG from Backup]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Upgrading the FOG Server]]&amp;lt;/LI&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advanced Installations ==&lt;br /&gt;
&lt;br /&gt;
=== Separate TFTP and DHCP Server ===&lt;br /&gt;
&lt;br /&gt;
In this setup, the TFTP server and the DHCP server are hosted on a separate server.  The TFTP server holds the PXE boot files including the Linux Kernel, boot file system image, and pxe config files.  The DHCP server is the server that assigns the clients with IP addresses and network connection information.  &lt;br /&gt;
&lt;br /&gt;
Click here for detailed steps:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Separate TFTP and DHCP Server]]&lt;br /&gt;
&lt;br /&gt;
=== Additional TFTP / DHCP Server on separate subnet ===&lt;br /&gt;
This setup allows FOG to manage systems at a remote network location by installing the necessary services to allow clients to PXE boot to a Storage Node:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Multiple_TFTP_servers|Including multiple PXE / TFTP servers]]&lt;br /&gt;
&lt;br /&gt;
This extends the work done in the above article, [[Multiple_TFTP_servers|Including multiple PXE / TFTP servers]], and extends it a bit to allow for FOG nodes to be used in various locations that pull from a central server.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fog_deployment_nodes| Using remote FOG nodes for distributed deployment]]&lt;br /&gt;
&lt;br /&gt;
=== Separate NFS Server ===&lt;br /&gt;
&lt;br /&gt;
Edit the storage node definition with the IP address of your NFS server and set the image location to the path on the nfs server.&lt;br /&gt;
Make sure it has a file called .mntcheck in the root of the share, a directory called dev and a .mntcheck file in the dev folder.&lt;br /&gt;
&lt;br /&gt;
if you want to mount it on the fog server too, follow these steps:-&lt;br /&gt;
* mv /images /imagesold&lt;br /&gt;
* mkdir /images&lt;br /&gt;
* edit /etc/fstab&lt;br /&gt;
&lt;br /&gt;
For example if your server name is mynfsserver and the share on it is called fogimages&lt;br /&gt;
&amp;lt;pre&amp;gt;mynfsserver:/fogimages /images nfs defaults 0 0 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then type &lt;br /&gt;
&amp;lt;pre&amp;gt;mount -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KNOWN ISSUE'''&lt;br /&gt;
You will get an error &amp;quot;Ftp connection to storage server has failed&amp;quot; at the end of uploading images though.&lt;br /&gt;
You will have to manually rename and move the file from the dev directory to the directory below.&lt;br /&gt;
&lt;br /&gt;
If your NFS server supports ftp as well, enable ftp on it too with the username and password specified in the storage server settings and this message will go away.&lt;br /&gt;
&lt;br /&gt;
Hopefully someone will re-write POST_Stage2.php to change this at some point as if you already have the NFS share mounted why do we do this bit with ftp?&lt;br /&gt;
&lt;br /&gt;
You may also get an infinite loop of the following message:-&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;Unable to find a valid task ID based on the clients mac address of: &amp;lt;mac address&amp;gt;&amp;quot;.&amp;lt;/pre&amp;gt;&lt;br /&gt;
if you add an @ sign before the ftp commands it appears to have fixed the issue.&lt;br /&gt;
&lt;br /&gt;
so line 133 of /var/www/fog/service/Post_Stage2.php would look like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; if (@ftp_rename ( $ftp, $src, $dest ) || @ftp_rename ( $ftp, $srcdd, $dest ))&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change NFS location ===&lt;br /&gt;
&lt;br /&gt;
This is '''not about a seperate NFS server''' in general, but about how to '''change the local storage directory''' and export it correctly.&lt;br /&gt;
&lt;br /&gt;
See [[Change NFS location]] for more.&lt;br /&gt;
&lt;br /&gt;
== Other Advanced Topics  ==&lt;br /&gt;
&lt;br /&gt;
*[[Building a Custom Kernel]]&lt;br /&gt;
*[[Creating Custom FOG Service Modules]]&lt;br /&gt;
*[[Modifying the Init Image]]&lt;br /&gt;
*[[Translating FOG]]&lt;br /&gt;
*[[Bypass Host Registration]]&lt;br /&gt;
*[[Building undionly.kpxe]]&lt;br /&gt;
*[[Chainloading PXE to iPXE using pxelinux.0]]&lt;br /&gt;
*[[Auto driver Install]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
This section is intended to bring together the most common issues from the [http://www.fogproject.org/forum forums].&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting Installation and Configuration Issues ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;[[Knowledge Base]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Password Central]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting an image push to a client]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting an image upload]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting a multicast]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting Driver Issues]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Speeding up the Graphical User Interface]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bottleneck]] / Imaging Speed Issues&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Advanced_Boot_Menu_Configuration_options]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting Host Management Showing Hosts as Down]]&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Appendix C: Alternative Resources ==&lt;br /&gt;
For Microsoft sysprep information, see this page:  &lt;br /&gt;
http://vernalex.com/guides/sysprep/video.shtml&lt;br /&gt;
&lt;br /&gt;
FOG install HOWTO: &lt;br /&gt;
http://www.howtoforge.com/installing-fog-computer-imaging-solution-on-fedora8&lt;br /&gt;
&lt;br /&gt;
FOG sourceforge page:&lt;br /&gt;
http://freeghost.sf.net/&lt;br /&gt;
&lt;br /&gt;
Deployment Forum at Edugeek contains many Fog related threads &lt;br /&gt;
http://www.edugeek.net/forums/o-s-deployment/&lt;br /&gt;
&lt;br /&gt;
= About the Developers =&lt;br /&gt;
&lt;br /&gt;
=== Chuck Syperski ===&lt;br /&gt;
&lt;br /&gt;
Chuck Syperski is the lead developer for FOG computer imaging solution.  He is a software developer and network integration specialist for a public school district outside of Chicago, IL.  Chuck Syperski has a Bachelor of Science in Computer Science from the University of Illinois and is half way done with his master's degree :).  He specializes in Java, jsp, jsf, objective C, C, C++, C#, perl and php.  You can contact  Chuck Syperski directly via sourceforge as the following link:&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/users/microleaks/&lt;br /&gt;
&lt;br /&gt;
Chuck Syperski releases other software titles through his company [http://cwssoft.com CWS Software LLC]&lt;br /&gt;
&lt;br /&gt;
=== Jian Zhang ===&lt;br /&gt;
&lt;br /&gt;
No content&lt;br /&gt;
&lt;br /&gt;
=== Tom Elliott ===&lt;br /&gt;
&lt;br /&gt;
Tom Elliott is a contributing developer for FOG computer imaging solution.  He is a technical support specialist for Burlington School District in Burlington, VT.  Tom Elliott has a Bachelor of Science in Information Technology (BSIT) Information Systems Security from the University of Phoenix.  Currently looking at Master's programs.  He also served 8 years active duty service with the United States Army as a Signal Support Systems Specialist.  You can contact him directly via email at tommygunsster@gmail.com, thomas@mastacontrola.com, or on the FOG Forums.  Username on the forums is Tom Elliott.&lt;br /&gt;
&lt;br /&gt;
=== Jaymes &amp;quot;loves dnsmasq&amp;quot; Driver ===&lt;br /&gt;
Jaymes is an aspiring software engineer.  He began working on his degree at University of Advancing Technology in Tempe, AZ but currently works as a Technology Support Specialist for Seymour Community School Corporation out of Seymour, IN.  Jaymes spends his time breaking what isn't broken, and working on private projects that deal in html, php, and mysql.  You can contact Jaymes by using the FOG forums.  His username is Jaymes Driver.&lt;br /&gt;
&lt;br /&gt;
=== Jbob ===&lt;br /&gt;
Lead developer on the Windows Client Service on Fog connected host computers.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=FOGUserGuide&amp;diff=8534</id>
		<title>FOGUserGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=FOGUserGuide&amp;diff=8534"/>
				<updated>2014-12-03T18:29:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Jaymes Driver */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;b&amp;gt;A guide to deployment, management,&lt;br /&gt;
And concept overview&lt;br /&gt;
For FOG.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on a document by: &lt;br /&gt;
Thomas J. Munn&lt;br /&gt;
CISSP&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
=== Preface ===&lt;br /&gt;
&lt;br /&gt;
This document is intended to be modified by FOG users, in fact it is based on a document created by a FOG user.  If you feel something could be said better or put more clearly, it is encouraged that you make changes to this document.  We just ask that you keep it constructive and in good taste.  In order to edit the wiki you are now required to create an account, as spamming of the forum has gotten pretty bad recently.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''What is FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is a Linux-based, free and open source computer imaging solution for Windows XP, Windows Vista, Windows 7, Windows 8, and Linux (limited) that ties together a few open-source tools with a php-based web interface. FOG doesn't use any boot disks, or CDs; everything is done via TFTP and PXE. Your PC boots via PXE and automatically downloads a small Linux client.  From there you can select many activities on the PC, including imaging the hard drive.&lt;br /&gt;
&lt;br /&gt;
Also with FOG many network drivers are built into the Linux client's kernel, so you don't really need to worry about nic drivers (unless there isn't kernel support for it yet).  FOG also supports putting an image that came from a computer with a 80GB partition onto a machine with a 40GB hard drive as long as the data is less than 40GB.  FOG supports multi-casting, meaning that you can image many PCs from the same stream.  So it should be as fast whether you are imaging 1 PC or 20 PCs.&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''How should FOG be implemented?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is best implemented on a dedicated server, any spare machine you have.  We recommend that you have '''sufficient''' hard drive space as each image you make is usually between 5 and 10 GB.  Using a RAID array allows imaging multiple computers simultaneously without much performance degradation. A '''gigabit NIC''' is recommended. For faster image compression and decompression, provide as much processor and RAM as you can make available. &amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''What features are included with FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is more than just an imaging solution, FOG has grown into an imaging/cloning and network management solution.  FOG now performs tasks like installing and managing printers, tracking user access to computers, installing applications remotely via snap-ins, automatic user log offs and computer shutdown on idle timeouts.  If a computer is badly infected with a virus or malware, you can boot FOG in AV mode and have it remove the viruses.  You can wipe your disks, destroying all information that was on them, restore deleted files, or scan the disk for bad blocks.&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;LI&amp;gt;'''How much does FOG cost?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FOG is an Open Source project and licensed under the GPL which means that you are free to use FOG on as many computers as you like for free.  This also means that if you want to make any changes to the source code you are free to do so.  &lt;br /&gt;
&lt;br /&gt;
The creators of FOG make no profits from this project with the exception of donations.  FOG comes with absolutely '''NO WARRANTY''' and the creators of FOG are in '''NO WAY RESPONSIBLE FOR ANY DAMAGE OR LOSS CAUSED BY FOG!'''  Please see the license file included with the FOG release for more information.  With that being said we attempt to do a very good job of supporting our users, in fact it is one of the goals of FOG to have better support than most commercial products.  All support requests should be placed through the FOG's forum which is located at:&lt;br /&gt;
&lt;br /&gt;
http://fogproject.org/forum/&lt;br /&gt;
&lt;br /&gt;
Thanks for supporting open source software and enjoy!&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Background on FOG ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Why FOG?'''&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Working in an educational environment our organization's techs very often re-imaged computers in their day to day activities.  For a long time we used a commercial product that in many ways didn't meet our needs.  It wasn't web based, and you needed to create driver disks, floppys or USB drives.  Other things were very difficult, such as searching for a host by MAC address and the product was expensive, even with an educational discount.  So we started to investigate ways in which we could do things better, and as our organization struggled to make a commercial product work better by trying to pxe boot dos, and testing it in Windows PE, we, the FOG Team started to build linux based solution on our own time.  We finally got a working version and decided to release it as open source since we use many other open source products, and figured we should give back to the community.&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fundamental Concepts ===&lt;br /&gt;
This section provides some basic concepts that the FOG Project uses.&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Unicasting'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Unicasting in FOG means sending a single image to a single host.  This can mean an upload or a deploy, and is independent of the image type.&amp;lt;BR&amp;gt;&lt;br /&gt;
See this section for more on [[Unicasting]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Multicasting'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Multicasting in FOG uses UDPcast to send a single image to multiple computers using only slightly more bandwidth than sending the image to a single computer with unicast.&amp;lt;BR&amp;gt;&lt;br /&gt;
See this section for more on [[Multicasting]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''PXE Network Bootstrap loading'''&amp;lt;BR&amp;gt;&lt;br /&gt;
What is iPXE and the difference between the files? Check out the [[iPXE]] page.&amp;lt;/li&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing FOG ==&lt;br /&gt;
FOG is a typical ''[http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29 LAMP]'' software bundle, so the main server is a '''L'''inux box. The rest of the components: '''A'''pache, '''M'''ySQL, '''P'''HP, and several other services, are automatically downloaded and installed by the FOG installation script.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
This listing is for informational purposes only, as the required components will be automatically downloaded and installed by the FOG installation script.&lt;br /&gt;
&lt;br /&gt;
*PHP 5.3.0+&lt;br /&gt;
*MySql 5+&lt;br /&gt;
*Apache 2+&lt;br /&gt;
&lt;br /&gt;
The LAMP setup can also be easily adjusted for a &amp;quot;WAMP (Windows Apache MySQL PHP) system&amp;quot; though will require a bit more knowledge of what packages to use and how to integrate with the FOG system.&lt;br /&gt;
&lt;br /&gt;
=== Installation on different distributions of Linux ===&lt;br /&gt;
Click below for step-by-step guides written for your favorite flavor of Linux:&lt;br /&gt;
{{Installation}}&lt;br /&gt;
&lt;br /&gt;
== Network Integration ==&lt;br /&gt;
=== Basic Network Setup ===&lt;br /&gt;
The FOG setup script asks several questions which might not be obvious. These sections describe only the most generic settings.&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;'''Isolated Network'''&amp;lt;BR&amp;gt;&lt;br /&gt;
The easiest method to image machines and get started using FOG is on a small, isolated network. The FOG setup program will configure all the necessary services for you completely automatically. This section covers only those basic steps.&lt;br /&gt;
&amp;lt;br&amp;gt; '''See [[FOG on an Isolated Network]]'''&amp;lt;/li&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Integrating FOG Server with Existing Network Systems'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Slightly more complicated is the task of integrating FOG into your existing network infrastructure. This section attempts to describe the steps to link FOG with a fairly generic enterprise system.&amp;lt;br&amp;gt;&lt;br /&gt;
'''See [[Integrating FOG into an Existing Network]]'''&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Advanced Network Setup===&lt;br /&gt;
==== Integrating FOG Server with Existing Network Systems in non intrusive mode using MAC filtration ====&lt;br /&gt;
This methods allows to use Fog in existing network without the need of controlling existing DHCP server. Requires you to input the MAC address of FOG clients.&lt;br /&gt;
See [[Integrating FOG into an Existing Network in non intrusive mode]]&lt;br /&gt;
==== Integrating FOG server into an existing network in non intrusive mode using ProxyDHCP ====&lt;br /&gt;
This methods allows to use Fog in existing network without the need of controlling existing DHCP server.  Does NOT required you to input the MAC addresses of FOG clients.&lt;br /&gt;
See [[Setting up ProxyDHCP]].&lt;br /&gt;
&lt;br /&gt;
==== Wake On Lan (WOL) ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt; [[Cisco_Wake_on_lan|Cisco WOL - Layer 3]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; [[ProCurve_Wake_on_lan|ProCurve WOL]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
==== Multicast/UDPCast  ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;  [[Cisco_Multi_Cast|Cisco Multicast - Layer 3]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;  [[HPMulticast|HP Multicast - Layer 2&amp;amp;3]] &amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
==== Full Listing of Ports used by FOG server and client ====&lt;br /&gt;
FTP – tcp 20,21&amp;lt;BR&amp;gt;&lt;br /&gt;
SSH – tcp 22&amp;lt;BR&amp;gt;&lt;br /&gt;
TFTP – udp 69&amp;lt;BR&amp;gt;&lt;br /&gt;
HTTP(s) – tcp 80,443&amp;lt;BR&amp;gt;&lt;br /&gt;
Portmap – tcp/udp 111&amp;lt;BR&amp;gt;&lt;br /&gt;
NFS – tcp/udp 2049&amp;lt;BR&amp;gt;&lt;br /&gt;
Transfer ports – tcp/udp 1024 – 65535&amp;lt;BR&amp;gt;&lt;br /&gt;
As found at: http://fogproject.org/forum/threads/firewall-config.27/&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
&lt;br /&gt;
=== Quick Start - Basic Tasks ===&lt;br /&gt;
&lt;br /&gt;
So you have a FOG server installed and setup, now what do you do?  Below are a few common &amp;quot;Getting Started&amp;quot; items.&lt;br /&gt;
&lt;br /&gt;
#[[Booting into FOG and Uploading your first Image]]&lt;br /&gt;
#[[Deploying your Image a single client]]&lt;br /&gt;
#[[Deploying your Image a group of clients]]&lt;br /&gt;
&lt;br /&gt;
=== Tips ===&lt;br /&gt;
&lt;br /&gt;
#FOG requires that all hosts be entered in the FOG Database for imaging.  The most important part is getting the MAC address of the host right.  FOG uses the MAC for targeting image installs and acquires.  Using the wrong MAC could result in unpredictable results, including the complete erasure of the wrong pc!  The IP address isn’t that important, and the ‘name’ field is more for the user.  Mac address format is  00:12:3F:C4:57:0C .  Using dashes, spaces, or no items at all will result in the GUI not accepting the host.&lt;br /&gt;
#After hosts are entered, it is wise to group them together by function, hardware, or common image.  The image will be shared among all members of a particular group.  This occurs within the ‘hosts’ screen, and NOT on the groups screen.  This is a little confusing, so it helps to think of the ‘groups’ screen as a task generator, rather than controlling group memberships.&lt;br /&gt;
#For importing hosts in a .csv file follow the format below: 1 line per host:&amp;lt;pre&amp;gt;&amp;quot;00:c0:4f:18:62:63&amp;quot;,&amp;quot;Hostname&amp;quot;,&amp;quot;1.1.1.1&amp;quot;,&amp;quot;Your description&amp;quot;,&amp;quot;XP/Vista&amp;quot;,&amp;quot;Image filename to use&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Hosts are then configured to boot via PXE boot by going into the BIOS.  Make sure PXE boot is the FIRST option, NOT the hard disk, or things won’t work.&lt;br /&gt;
#Configure your ‘master’ pc for the first image.  Probably a good idea to run ‘[http://support.microsoft.com/kb/302577 sysprep]’ prior to imaging, but not necessary.  Sysprep will make your imaging life easier, if hardware is different, etc.  See Microsoft.com for more details on using sysprep.&lt;br /&gt;
&lt;br /&gt;
== Preparing a Client for Cloning ==&lt;br /&gt;
FOG's strength can be better harnessed if some time and work is put into preparing a master image that fits the needs of your environment. &amp;lt;br&amp;gt;&lt;br /&gt;
This section covers client preparation steps that will save you time and headaches like:&lt;br /&gt;
::Setting a [[Client_Setup#Set_up_Default_Profile|Default User Profile]]&amp;lt;BR&amp;gt;Installing Windows Updates&amp;lt;BR&amp;gt;Pre-Installing the [[Client_Setup#Final_Steps_Before_Imaging_.2F_Before_Sysprep|FOG service]], etc.&amp;lt;br&amp;gt;&lt;br /&gt;
It also covers more advanced ideas that are guaranteed to ''cause'' headaches, like:&lt;br /&gt;
::Sysprep, [[Client_Setup#Hardware-Independent_Images_-_Understand_HAL|Hardware-Independent Images (HAL)]], and Driver integration.&amp;lt;br&amp;gt;&lt;br /&gt;
Read more about ''[[Client Setup]]''&lt;br /&gt;
&lt;br /&gt;
== FOG Benchmarks ==&lt;br /&gt;
&lt;br /&gt;
=== [[Internal Benchmarks]] ===&lt;br /&gt;
== Managing FOG ==&lt;br /&gt;
The FOG web interface is your primary management console. It is very well-documented in the pages linked below:&amp;lt;br&amp;gt;&lt;br /&gt;
===The Main [[Managing FOG]] Document===&lt;br /&gt;
The link above opens the Main Managing FOG document and has a Table of Contents of its own.&amp;lt;BR&amp;gt;&lt;br /&gt;
Subcategories within the Managing Fog section include the following sections:&lt;br /&gt;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;'''Understanding the FOG [[Managing_FOG#Dashboard|Dashboard]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Provides an overview of the GUI and explains the symbols used on the [[Managing_FOG#Menu Bar|Menu Bar]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Managing [[Managing_FOG#Hosts|Hosts]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section covers management tasks such as: [[Managing_FOG#Adding a new host|Adding a new host]], [[Managing_FOG#Managing Hosts|Managing Hosts]], [[Managing_FOG#Host Status|Host Status]], and [[Managing_FOG#Creating Host Groups|Creating Host Groups]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Managing [[Managing_FOG#Groups|Groups of Hosts]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section provides an [[Managing_FOG#Overview_4|Overview]] of sorting hosts into useful Groups, and provides instruction on [[Managing_FOG#Managing Groups|Managing Groups]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Defining and Managing [[Managing_FOG#Images|Images]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
Defines types of images: Single Partition | Multiple Partition - Single Disk | Multiple Partition - All Disks | Raw Image&amp;lt;br&amp;gt;&lt;br /&gt;
Also describes [[Managing_FOG#Creating_Images_Objects|Creating]], [[Managing_FOG#Modifying_Image_Objects|Modifying Image Objects]], and [[Managing_FOG#Adding_Existing_Image_Objects|Adding Images to Existing Objects]].&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''[[Managing_FOG#Storage_Management|Storage Management]] - adding additional Storage Nodes'''&amp;lt;BR&amp;gt;&lt;br /&gt;
This section introduces the [[Managing_FOG#Overview_6|concept of Storage Nodes]], which provide scalability to FOG with the ability to &amp;quot;share the load of computers being imaged.&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
Also covered are [[Managing_FOG#Adding_a_Storage_Node|Adding Storage Nodes]], Monitoring [[Managing_FOG#Monitoring_The_Master_Node|Image Replication]] between nodes, and Understanding the [[Managing_FOG#Master_Node_Status|role of the &amp;quot;Master Node&amp;quot;]] in a group.&amp;lt;br&amp;gt;&lt;br /&gt;
In addition, this section details the necessary steps to [[Managing_FOG#Including_multiple_PXE_.2F_TFTP_servers|include PXE and TFTP Services]] for a node located on a remote network segment.&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;'''Defining types of [[Managing_FOG#Users|Administrative FOG Users]]'''&amp;lt;BR&amp;gt;&lt;br /&gt;
The difference between a regular FOG user and a [[Managing_FOG#Overview_7|Mobile user]]&amp;lt;br&amp;gt;&lt;br /&gt;
Also covered are [[Managing_FOG#Creating_Accounts|Creating]] and [[Managing_FOG#Modifying_Users|Modifying]] FOG user accounts&amp;lt;/LI&amp;gt;&amp;lt;/UL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FOG [[Managing_FOG#Tasks|Tasks]]==&lt;br /&gt;
This is a major section of FOG Management because all day-to-day client management is initiated within the FOG Tasks section.&amp;lt;br&amp;gt;&lt;br /&gt;
The [[Managing_FOG#Overview_8|Overview Section]] provides a quick list of tasks available within FOG.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Managing_FOG#General_Tasks|General Tasks]] - Basic Imaging Tasks:&lt;br /&gt;
::Uploading an image (includes video tutorial)&amp;lt;BR&amp;gt;Deploying an image&amp;lt;BR&amp;gt;Multicasting&amp;lt;br&amp;gt;&lt;br /&gt;
[[Managing_FOG#Advanced_Tasks|Advanced Tasks]] - Describes tasks other than imaging:&lt;br /&gt;
::Debug&amp;lt;BR&amp;gt;Upload - Unicast (Debug)&amp;lt;br&amp;gt;Send - Unicast (Debug)&amp;lt;br&amp;gt;Send - Unicast (Without Snapins)&amp;lt;br&amp;gt;Deploy All Snapins&amp;lt;br&amp;gt;Deploy Single Snapin&amp;lt;br&amp;gt;Memory Test&amp;lt;br&amp;gt;Wake Up&amp;lt;br&amp;gt;Fast Wipe&amp;lt;br&amp;gt;Normal Wipe&amp;lt;br&amp;gt;Full Wipe&amp;lt;br&amp;gt;Disk Surface Test&amp;lt;br&amp;gt;File Recovery&amp;lt;br&amp;gt;Virus Scan&amp;lt;br&amp;gt;Hardware Inventory&lt;br /&gt;
===Delayed Tasks, or [[Managing_FOG#Scheduling|Scheduling Tasks]] in the future===&lt;br /&gt;
Describes advanced settings available for scheduling tasks including Shutdown after Execution, [[Managing_FOG#Single_Execution_Scheduling|Single Task]] scheduling, and [[Managing_FOG#Cron_Style_Task_Scheduling|setting a CRON-Style Task]].&lt;br /&gt;
===[[Managing_FOG#Printers|Adding Printers]] to FOG===&lt;br /&gt;
How to add printers to FOG. This allows the [[Managing_FOG#Printer_Manager|FOG Service to manage printers]] on FOG Clients&lt;br /&gt;
==The [[Managing_FOG#The_FOG_Client_Service|FOG Client Service]]==&lt;br /&gt;
A service that runs on client computers allowing FOG to better manage them. Provides AD Integration, the ability to change a Hostname, Green Power management, Snap-in installation, User tracking, Printer Management, and more. See the [[Managing_FOG#Overview_10|Overview]] for a more complete list.&amp;lt;br&amp;gt;&lt;br /&gt;
The FOG client can be partially or fully-enabled by [[Managing_FOG#Module_specific_configuration_settings|modifying the ini file.]]&amp;lt;br&amp;gt;&lt;br /&gt;
===[[Managing_FOG#Installation|Installing]] the FOG Client===&lt;br /&gt;
A typical client installation, Silent installation, and a video tutorial.&lt;br /&gt;
===Advanced Description of [[Managing_FOG#Functions_and_Operation|FOG Services]]===&lt;br /&gt;
More detail on:&amp;lt;br&amp;gt;&lt;br /&gt;
::Auto Log Out&amp;lt;br&amp;gt;Hostname Changer&amp;lt;br&amp;gt;Host Register&amp;lt;br&amp;gt;Task Reboot&amp;lt;br&amp;gt;Directory Cleaner&amp;lt;br&amp;gt;Display Manager&amp;lt;br&amp;gt;Green FOG&amp;lt;br&amp;gt;Snapin Client&amp;lt;br&amp;gt;User Tracker&amp;lt;br&amp;gt;User Cleanup&amp;lt;br&amp;gt;Printer Manager&amp;lt;br&amp;gt;Client Updater&lt;br /&gt;
===[[Managing_FOG#Keeping_Clients_up_to_date|Updating]] the FOG Client===&lt;br /&gt;
How to update the FOG client.&lt;br /&gt;
===The [[Managing_FOG#FOG_Tray|FOG Tray]]===&lt;br /&gt;
Describes the Windows application that runs in the taskbar&lt;br /&gt;
&lt;br /&gt;
===[[Managing_FOG#Troubleshooting|Troubleshooting]] the FOG Client===&lt;br /&gt;
Log file location&lt;br /&gt;
==Snap-ins==&lt;br /&gt;
A FOG [[Managing_FOG#Snap-ins|Snap-in]] is anything that can be run on a Windows client. This can be ''just about anything'', including: installing applications like Firefox or Microsoft Office, adding an icon or shortcut to the desktop, or tweaking a registry key. This section covers [[Managing_FOG#Creating_a_Snapin_.2F_Overview|Creating a Snap-in]], adjusting the FOG server to handle snap-ins [[Managing_FOG#Preparing_the_FOG_Server|larger than 2MB]], [[Managing_FOG#Uploading_the_Snapin|Uploading the Snap-in]] into the FOG system, and [[Managing_FOG#Linking_the_Snapin_to_Hosts|Linking]] the Snap-in to hosts.&lt;br /&gt;
&lt;br /&gt;
== FOG Plugins ==&lt;br /&gt;
Plugins enhance FOG's functionality.&lt;br /&gt;
See [[Plugins]] to activate and manage plugins.&lt;br /&gt;
&lt;br /&gt;
===LDAP Plugin===&lt;br /&gt;
* Allows you to link with a LDAP server to add an user validation&lt;br /&gt;
* You can add mulitple LDAP servers&lt;br /&gt;
* You can config the DN base and the port of the LDAP Server&lt;br /&gt;
* If FOG can not connect with the LDAP Server, FOG tries to do a local validation&lt;br /&gt;
* If the user does not exist, FOG create one with the mobile profile&lt;br /&gt;
&lt;br /&gt;
===Location Plugin===&lt;br /&gt;
* Allows you to direct hosts at separate locations and manage through a centralized server&lt;br /&gt;
* Hosts will be imaged from their location setup, rather than trying to pull from a random node/server across, potentially, WAN links&lt;br /&gt;
* Same works for &amp;quot;Tftp&amp;quot; in that it will direct the host to get it's kernel and init from it's related location&lt;br /&gt;
* Can also be used to direct the host to download it's snapins from the relevant location&lt;br /&gt;
&lt;br /&gt;
===Access Control Plugin===&lt;br /&gt;
* &amp;lt;span style=&amp;quot;background-color:RED; padding: 1px&amp;quot;&amp;gt; '''NOT Currently ready''' &amp;lt;/span&amp;gt;&lt;br /&gt;
* To give a layer of security and control over the task and imaging processes as well as limit the GUI items from &amp;quot;designated&amp;quot; controls&lt;br /&gt;
* For Example: IT vs. Regular User&lt;br /&gt;
&lt;br /&gt;
===Capone Plugin===&lt;br /&gt;
* Ideally for retail markets and computer shops&lt;br /&gt;
* The Capone plugin allows FOG to recognize similar hardware platforms and push your specified image to them with minimal (or no) interaction&lt;br /&gt;
* In FOG terms a &amp;quot;Quick Image&amp;quot; without any registration&lt;br /&gt;
* &amp;lt;span style=&amp;quot;background-color:YELLOW; padding: 1px&amp;quot;&amp;gt; '''Obsolete''' &amp;lt;/span&amp;gt; As of FOG v1.3.0-r2651 the fog user can now add Quick Image to the Fog iPXE Menu(For All Hosts) and then select the exact image desired without having to do any registration. BUT intervention is still required to start imaging.&lt;br /&gt;
&lt;br /&gt;
===WOL Broadcast Plugin===&lt;br /&gt;
* Allowing the Fog user to specify different broadcast address on your network&lt;br /&gt;
* WOL will use those set values to send the WOL Packets to the broadcast addresses, rather than staying only on layer 2&lt;br /&gt;
* WOL packets operate at the layer 2 of a network meaning that it can only reach it's &amp;quot;Subnet&amp;quot;&lt;br /&gt;
* WOL Broadcast directly tells a packet to send to other broadcast addresses so that it network passes on the traffic&lt;br /&gt;
&lt;br /&gt;
===Example Plugin===&lt;br /&gt;
* If you would like to create your own plugins here is a template to follow.&lt;br /&gt;
&lt;br /&gt;
== FOG Server Maintenance ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;LI&amp;gt;[[Backing up FOG]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Restoring FOG from Backup]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;[[Upgrading the FOG Server]]&amp;lt;/LI&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advanced Installations ==&lt;br /&gt;
&lt;br /&gt;
=== Separate TFTP and DHCP Server ===&lt;br /&gt;
&lt;br /&gt;
In this setup, the TFTP server and the DHCP server are hosted on a separate server.  The TFTP server holds the PXE boot files including the Linux Kernel, boot file system image, and pxe config files.  The DHCP server is the server that assigns the clients with IP addresses and network connection information.  &lt;br /&gt;
&lt;br /&gt;
Click here for detailed steps:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Separate TFTP and DHCP Server]]&lt;br /&gt;
&lt;br /&gt;
=== Additional TFTP / DHCP Server on separate subnet ===&lt;br /&gt;
This setup allows FOG to manage systems at a remote network location by installing the necessary services to allow clients to PXE boot to a Storage Node:&amp;lt;br&amp;gt;&lt;br /&gt;
[[Multiple_TFTP_servers|Including multiple PXE / TFTP servers]]&lt;br /&gt;
&lt;br /&gt;
This extends the work done in the above article, [[Multiple_TFTP_servers|Including multiple PXE / TFTP servers]], and extends it a bit to allow for FOG nodes to be used in various locations that pull from a central server.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Fog_deployment_nodes| Using remote FOG nodes for distributed deployment]]&lt;br /&gt;
&lt;br /&gt;
=== Separate NFS Server ===&lt;br /&gt;
&lt;br /&gt;
Edit the storage node definition with the IP address of your NFS server and set the image location to the path on the nfs server.&lt;br /&gt;
Make sure it has a file called .mntcheck in the root of the share, a directory called dev and a .mntcheck file in the dev folder.&lt;br /&gt;
&lt;br /&gt;
if you want to mount it on the fog server too, follow these steps:-&lt;br /&gt;
* mv /images /imagesold&lt;br /&gt;
* mkdir /images&lt;br /&gt;
* edit /etc/fstab&lt;br /&gt;
&lt;br /&gt;
For example if your server name is mynfsserver and the share on it is called fogimages&lt;br /&gt;
&amp;lt;pre&amp;gt;mynfsserver:/fogimages /images nfs defaults 0 0 &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then type &lt;br /&gt;
&amp;lt;pre&amp;gt;mount -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''KNOWN ISSUE'''&lt;br /&gt;
You will get an error &amp;quot;Ftp connection to storage server has failed&amp;quot; at the end of uploading images though.&lt;br /&gt;
You will have to manually rename and move the file from the dev directory to the directory below.&lt;br /&gt;
&lt;br /&gt;
If your NFS server supports ftp as well, enable ftp on it too with the username and password specified in the storage server settings and this message will go away.&lt;br /&gt;
&lt;br /&gt;
Hopefully someone will re-write POST_Stage2.php to change this at some point as if you already have the NFS share mounted why do we do this bit with ftp?&lt;br /&gt;
&lt;br /&gt;
You may also get an infinite loop of the following message:-&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;quot;Unable to find a valid task ID based on the clients mac address of: &amp;lt;mac address&amp;gt;&amp;quot;.&amp;lt;/pre&amp;gt;&lt;br /&gt;
if you add an @ sign before the ftp commands it appears to have fixed the issue.&lt;br /&gt;
&lt;br /&gt;
so line 133 of /var/www/fog/service/Post_Stage2.php would look like this&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; if (@ftp_rename ( $ftp, $src, $dest ) || @ftp_rename ( $ftp, $srcdd, $dest ))&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Change NFS location ===&lt;br /&gt;
&lt;br /&gt;
This is '''not about a seperate NFS server''' in general, but about how to '''change the local storage directory''' and export it correctly.&lt;br /&gt;
&lt;br /&gt;
See [[Change NFS location]] for more.&lt;br /&gt;
&lt;br /&gt;
== Other Advanced Topics  ==&lt;br /&gt;
&lt;br /&gt;
*[[Building a Custom Kernel]]&lt;br /&gt;
*[[Creating Custom FOG Service Modules]]&lt;br /&gt;
*[[Modifying the Init Image]]&lt;br /&gt;
*[[Translating FOG]]&lt;br /&gt;
*[[Bypass Host Registration]]&lt;br /&gt;
*[[Building undionly.kpxe]]&lt;br /&gt;
*[[Chainloading PXE to iPXE using pxelinux.0]]&lt;br /&gt;
*[[Auto driver Install]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
This section is intended to bring together the most common issues from the [http://www.fogproject.org/forum forums].&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting Installation and Configuration Issues ====&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;[[Knowledge Base]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Password Central]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting an image push to a client]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting an image upload]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting a multicast]]&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting Driver Issues]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Speeding up the Graphical User Interface]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bottleneck]] / Imaging Speed Issues&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Advanced_Boot_Menu_Configuration_options]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Troubleshooting Host Management Showing Hosts as Down]]&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Appendix C: Alternative Resources ==&lt;br /&gt;
For Microsoft sysprep information, see this page:  &lt;br /&gt;
http://vernalex.com/guides/sysprep/video.shtml&lt;br /&gt;
&lt;br /&gt;
FOG install HOWTO: &lt;br /&gt;
http://www.howtoforge.com/installing-fog-computer-imaging-solution-on-fedora8&lt;br /&gt;
&lt;br /&gt;
FOG sourceforge page:&lt;br /&gt;
http://freeghost.sf.net/&lt;br /&gt;
&lt;br /&gt;
Deployment Forum at Edugeek contains many Fog related threads &lt;br /&gt;
http://www.edugeek.net/forums/o-s-deployment/&lt;br /&gt;
&lt;br /&gt;
= About the Developers =&lt;br /&gt;
&lt;br /&gt;
=== Chuck Syperski ===&lt;br /&gt;
&lt;br /&gt;
Chuck Syperski is the lead developer for FOG computer imaging solution.  He is a software developer and network integration specialist for a public school district outside of Chicago, IL.  Chuck Syperski has a Bachelor of Science in Computer Science from the University of Illinois and is half way done with his master's degree :).  He specializes in Java, jsp, jsf, objective C, C, C++, C#, perl and php.  You can contact  Chuck Syperski directly via sourceforge as the following link:&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/users/microleaks/&lt;br /&gt;
&lt;br /&gt;
Chuck Syperski releases other software titles through his company [http://cwssoft.com CWS Software LLC]&lt;br /&gt;
&lt;br /&gt;
=== Jian Zhang ===&lt;br /&gt;
&lt;br /&gt;
No content&lt;br /&gt;
&lt;br /&gt;
=== Tom Elliott ===&lt;br /&gt;
&lt;br /&gt;
Tom Elliott is a contributing developer for FOG computer imaging solution.  He is a technical support specialist for Burlington School District in Burlington, VT.  Tom Elliott has a Bachelor of Science in Information Technology (BSIT) Information Systems Security from the University of Phoenix.  Currently looking at Master's programs.  He also served 8 years active duty service with the United States Army as a Signal Support Systems Specialist.  You can contact him directly via email at tommygunsster@gmail.com, thomas@mastacontrola.com, or on the FOG Forums.  Username on the forums is Tom Elliott.&lt;br /&gt;
&lt;br /&gt;
=== Jaymes Driver ===&lt;br /&gt;
Jaymes is an aspiring software engineer.  He began working on his degree at University of Advancing Technology in Tempe, AZ but currently works as a Technology Support Specialist for Seymour Community School Corporation out of Seymour, IN.  Jaymes spends his time breaking what isn't broken, and working on private projects that deal in php, mysql, and general web design.  Jaymes loves dnsmasq!&lt;br /&gt;
&lt;br /&gt;
=== Jbob ===&lt;br /&gt;
Lead developer on the Windows Client Service on Fog connected host computers.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Tftp_timeout&amp;diff=8237</id>
		<title>Tftp timeout</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Tftp_timeout&amp;diff=8237"/>
				<updated>2014-07-08T18:37:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: Created page with &amp;quot;If you get this issue its usually due to a firewall issue, do the following: =Disable firwall= == Fedora 9 ==  &amp;lt;pre&amp;gt; service iptables stop  service ip6tables stop    chkconfig...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you get this issue its usually due to a firewall issue, do the following:&lt;br /&gt;
=Disable firwall=&lt;br /&gt;
== Fedora 9 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service iptables stop &lt;br /&gt;
service ip6tables stop &lt;br /&gt;
 &lt;br /&gt;
chkconfig iptables off &lt;br /&gt;
chkconfig ip6tables off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fedora 16 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Add /bin/bash to /etc/shells as the vsftpd yum install does not do it correctly causing tftp timeout message&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ubuntu ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ufw disable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debian ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -F&lt;br /&gt;
iptables -X&lt;br /&gt;
iptables -t nat -F&lt;br /&gt;
iptables -t nat -X&lt;br /&gt;
iptables -t mangle -F&lt;br /&gt;
iptables -t mangle -X&lt;br /&gt;
iptables -P INPUT ACCEPT&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
iptables -P FORWARD ACCEPT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other Troubleshooting ==&lt;br /&gt;
=== 0.32 and below ===&lt;br /&gt;
*From your FOG server test out tftp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp -v X.X.X.X -c get pxelinux.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*From a Windows PC run at the cmd prompt: ([[Windows TFTP]] Service must be Installed first)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 tftp x.x.x.x get pxelinux.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0.33 and 1.x.x ===&lt;br /&gt;
*From your FOG server test out tftp&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tftp -v X.X.X.X -c get undionly.kpxe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*From a Windows PC run at the cmd prompt: ([[Windows TFTP]] Service must be Installed first)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 tftp x.x.x.x get undionly.kpxe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Expected Results====&lt;br /&gt;
*If tftp &amp;amp; xinetd are running your should get:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Received XXXX bytes in X.X seconds....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Restart TFTP Service=&lt;br /&gt;
*Restart the TFTP service.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
service tftpd-hpa restart&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Check DHCP Option 67=&lt;br /&gt;
* Go to your DHCP and confirm that option 67 is set to undionly.kpxe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Rights to tftpboot folder=&lt;br /&gt;
* Are the rights to your tftpboot folder correct?&lt;br /&gt;
** If you tried the above Section-1.5.2 and you get the &amp;quot;Expected results&amp;quot; then the rights are correct.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7984</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7984"/>
				<updated>2014-06-05T18:52:47Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32,x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 11.04 x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 12.04, 12.10 LTS x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 13.04, 13.10 x32, x64&lt;br /&gt;
| Fog 0.32, Fog 1.0.1, Fog 1.1.0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
'''***FIRST*** Update the schema by navigating to your fog management page and install the update.'''&lt;br /&gt;
&lt;br /&gt;
Make the following changes to your ltsp.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename, Server name, Server Ip Address&lt;br /&gt;
dhcp-boot=undionly.kpxe,,x.x.x.x&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
#dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
#dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, undionly&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=10.0.0.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your file and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a symlink for the undionly.kpxe file so dnsmasq can find it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo ln -s undionly.kpxe undionly.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=7973</id>
		<title>Ubuntu 14.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=7973"/>
				<updated>2014-05-27T18:15:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''DO NOT USE THIS VERSION OF LINUX, IT IS TOO NEW AND THERE ARE ISSUES WITH TFTP UPSTART AGAIN, WHEN TIME ALLOWS AND MAJOR ISSUES WITH FOG HAVE BEEN RESOLVED, WE WILL TACKLE FIXES FOR THE UBUNTU 14.04 OPERATING SYSTEM!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''USE AT YOUR OWN RISK: We are not responsible for any damage to yourself, hardware, or co-workers. Use at your own risk. This is a set up that was proven to work in at LEAST 3 test environments. Any misuse or replication of this walk through in any other form is STRICTLY PROHIBITED.'''&lt;br /&gt;
== Ubuntu 14.04 Setup &amp;amp; Installation ==&lt;br /&gt;
&lt;br /&gt;
# Insert your Ubuntu installation disc and reboot the computer. Boot from the disc, Ubuntu will launch in it’s live form for you to get a feel for the OS or install. You will be presented with two options, install Ubuntu or run a Live instance. Click the “Install Ubuntu” Option when it is presented to you at the Welcome screen.&lt;br /&gt;
# Proceed with a normal install of Ubuntu.  It is recommended to make the choice to Download the Latest updates while installing by Ticking the checkbox. Ubuntu will now examine hardware and alert you of any previously existing operating systems.  Recommended that you remove all information unless you have other OS's you want to keep on the system. During the install Ubuntu will ask you to set your timezone, Layout, and some user information such as a user name and password.  Set this information to your liking. In the latest flavors of Ubuntu the Root user account is disabled, after installation this guide will show you how to enable it. Ubuntu will copy files and begin the installation.&lt;br /&gt;
# After installation is complete, reboot. Remove the installation disc and press enter, your computer will reboot and boot up in it’s new operating system that is much faster and more durable than it’s squishy, virus prone, partners. Log in with the Password and the User you specified during installation.&lt;br /&gt;
&lt;br /&gt;
Your system should now be installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
== Enabling Root on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
# Please open up a terminal or console and log in as the user you created.&lt;br /&gt;
# To gain access, enter the following command and re-type the user password.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Then type the following command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;passwd root&amp;lt;/pre&amp;gt;&lt;br /&gt;
#*It will ask you to enter the new password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*It will ask you to confirm the password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*The terminal will return with &amp;lt;code&amp;gt;Password updated successfully!&amp;lt;/code&amp;gt;&lt;br /&gt;
#Type or copy the following code into the terminal and press enter.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;echo &amp;quot;greeter-show-manual-login=true&amp;quot; &amp;gt;&amp;gt; /etc/lightdm/lightdm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Please restart the machine with the command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;shutdown -r now&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Once the system returns, you can now login as the root user even from the GUI.  Just type the username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;  in the Password field, you'll type the password you set in the passwd root command above.&lt;br /&gt;
&lt;br /&gt;
== Setting static IP ==&lt;br /&gt;
# Click the “Dash Home” icon again, in the text box at the top type “Network” and select the first icon in the list displayed as “Network”. Select Wired and click Options. Select the “IPV4 Settings” tab and change the method from Automatic to Manual, Add, and supply the server with a proper IP address and information. Click Save. Your connection will reconnect.&lt;br /&gt;
# Next click on FireFox and in the browser navigate to the webpage http://www.fogproject.org and follow the download links to download the latest version of FOG, at the time of writing it is 0.32. Right mouse click and select show in folder and close your browser and all other open windows. Move the file to your desktop if you haven’t already. Right mouse click and select “Extract Here”.&lt;br /&gt;
&lt;br /&gt;
''' NOTE: GIVEN THE DATE OF THE FOG 0.32 REVISION SOME PACKAGES ARE NO LONGER SUPPORTED AND MUST BE UPDATED WE WILL DO THIS FIRST!!! '''&lt;br /&gt;
== Update and Install Packages ==&lt;br /&gt;
# Click on the “Dash Home” Icon again, type “Terminal” into the search box and select the first Icon. Now we are going to install FOG and configure it. We will do the installation through the Terminal with a number of commands, please follow them and remember to press enter after each line. Note the Capital and lower case letters, linux is VERY picky, “A” is not the same as “a”.&lt;br /&gt;
# From the terminal Type the following Commands:&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd Desktop/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd fog_0.32/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd packages&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;wget https://svn.code.sf.net/p/freeghost/code/trunk/packages/udpcast-20120424.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;rm -f udpcast-20071228.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastout=&amp;quot;udpcast-20071228&amp;quot;:udpcastout=&amp;quot;udpcast-20120424&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastsrc=&amp;quot;../packages/udpcast-20071228.tar.gz&amp;quot;:udpcastsrc=&amp;quot;../packages/udpcast-20120424.tar.gz&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd ../bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sudo ./installfog.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
# The following commands are for the installfog.sh installer information.  '''Change the relevant values for your particular system.'''&lt;br /&gt;
#* Type 2 and press Enter for Ubuntu installation.&lt;br /&gt;
#* Type N and press Enter for Normal installation&lt;br /&gt;
#* Supply IP Address, it SHOULD be the static IP address you set up earlier, if it is not please revert to step 5 and try again.&lt;br /&gt;
#* Type Y and press Enter setup DHCP Server.&lt;br /&gt;
#* Enter the IP Address associated with your DHCP Server&lt;br /&gt;
#* Type Y and press Enter to set up DNS.&lt;br /&gt;
#* Enter the DNS Server address and press Enter.&lt;br /&gt;
#* Type N and press Enter to leave the default Network Card the same.&lt;br /&gt;
#* Type N to disable DHCP Service.&lt;br /&gt;
#* '''NOTE: It tells you that in order to use your PXE server you have to run a few commands on your DHCP server, this is not entirely true, but it definitely helps, this will point your clients to your server, or you can disconnect your server from the outside world while you image.'''&lt;br /&gt;
#* Type N to not install Additional Languages.&lt;br /&gt;
#* Type Y and press Enter.&lt;br /&gt;
# Next it will verify the settings, make sure everything has been entered correctly.&lt;br /&gt;
#* '''NOTE: I set up Fog with default passwords for MYSQL and users, you can supply information if you like, just make notes.'''&lt;br /&gt;
#* Type a password for the “root” user in MySQL and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type Y to send your install information to the Project, and it will take some time to complete.&lt;br /&gt;
&lt;br /&gt;
== New Web Layout ==&lt;br /&gt;
'''Ubuntu 14.04 moved from the /var/www document root to /var/www/html document root layout.  Because of this, we have to either move the /var/www/fog directory to /var/www/html or simply create a link.'''&lt;br /&gt;
=== Open a terminal and sudo up to root. ===&lt;br /&gt;
* &amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Move fog folder so it's accessible.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;mv /var/www/fog /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Link the folder instead of move.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;ln -s /var/www/fog /var/www/html/fog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Complete the configuration ==&lt;br /&gt;
# Now we need to set up the web GUI for FOG. Open your browser and navigate to http://(serveripaddress)/fog/management. Or click the link in the Terminal window.&lt;br /&gt;
# The web GUI will alert you to back up your database for MYSQL Server and install the upgrades, do so and follow the upgrade instructions.&lt;br /&gt;
# Next log in, default user name is FOG and the password is password.&lt;br /&gt;
# Click “User Management” the Second Icon from the Left. Click “New User” on the left and set up a new user. Supply the name, password, and check the “Mobile/Quick Access only” box and press create user. In the PXE menu when doing a Quick Image, you will need to provide the username and password specified here to complete the image process.&lt;br /&gt;
# Image Management will allow you to create images, '''NOTE: MUST BE DONE PRIOR TO IMPORTING A HOST TO YOUR FOG SERVER''', otherwise you will have to create one and select it later. Click “New Image” on the left. Give the image a name, a description, select “Default” for Storage, and give the file a name, no spaces. Select Multiple Partition image – Single Disk (Not resizeable) or Multiple Partition image – All Disks (Not resizeable) I have never had a problem using these settings. However Single Partition (NTFS, Only Re-sizable) will work as well. DO NOT use the RAW format, it takes a long time to upload and does so sector by sector. This would be a recommendation if you are backing up a Linux partition. Click Add.&lt;br /&gt;
# Host Management will allow you to manually add or manage a host, I recommend using the PXE menu to register your hosts, but if you need to change information or the image type you can do it here.&lt;br /&gt;
# Your FOG server is configured and setup, register a host via the PXE menu.&lt;br /&gt;
# On your FOG Server in the WEB GUI, click on Task Management. On the left hand side, select “List all hosts” click on the “Upload” arrow for the host you just added. Select when you want the task to run, I set it a few minutes in the future. FOG has the ability to reboot your machine into the PXE menu to begin it’s process, but I simply reboot the computer, fog will find it and begin the image process&lt;br /&gt;
# CONGRATULATIONS you now have a working FOG Server and a host image ready to deploy. In order to deploy an Image, boot into the PXE menu and register the host, next select “Quick Image” and begin the image process, or select the host from the “Task Management” screen and select “Deploy” and reboot the workstation after supplying a time to begin the task, the workstation will begin its image process.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=7972</id>
		<title>Ubuntu 14.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=7972"/>
				<updated>2014-05-27T18:13:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''&lt;br /&gt;
== DO NOT USE THIS VERSION OF LINUX, IT IS TOO NEW AND THERE ARE ISSUES WITH TFTP UPSTART AGAIN, WHEN TIME ALLOWS AND MAJOR ISSUES WITH FOG HAVE BEEN RESOLVED, WE WILL TACKLE FIXES FOR THE UBUNTU 14.04 OPERATING SYSTEM! ==&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''USE AT YOUR OWN RISK: We are not responsible for any damage to yourself, hardware, or co-workers. Use at your own risk. This is a set up that was proven to work in at LEAST 3 test environments. Any misuse or replication of this walk through in any other form is STRICTLY PROHIBITED.'''&lt;br /&gt;
== Ubuntu 14.04 Setup &amp;amp; Installation ==&lt;br /&gt;
&lt;br /&gt;
# Insert your Ubuntu installation disc and reboot the computer. Boot from the disc, Ubuntu will launch in it’s live form for you to get a feel for the OS or install. You will be presented with two options, install Ubuntu or run a Live instance. Click the “Install Ubuntu” Option when it is presented to you at the Welcome screen.&lt;br /&gt;
# Proceed with a normal install of Ubuntu.  It is recommended to make the choice to Download the Latest updates while installing by Ticking the checkbox. Ubuntu will now examine hardware and alert you of any previously existing operating systems.  Recommended that you remove all information unless you have other OS's you want to keep on the system. During the install Ubuntu will ask you to set your timezone, Layout, and some user information such as a user name and password.  Set this information to your liking. In the latest flavors of Ubuntu the Root user account is disabled, after installation this guide will show you how to enable it. Ubuntu will copy files and begin the installation.&lt;br /&gt;
# After installation is complete, reboot. Remove the installation disc and press enter, your computer will reboot and boot up in it’s new operating system that is much faster and more durable than it’s squishy, virus prone, partners. Log in with the Password and the User you specified during installation.&lt;br /&gt;
&lt;br /&gt;
Your system should now be installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
== Enabling Root on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
# Please open up a terminal or console and log in as the user you created.&lt;br /&gt;
# To gain access, enter the following command and re-type the user password.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Then type the following command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;passwd root&amp;lt;/pre&amp;gt;&lt;br /&gt;
#*It will ask you to enter the new password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*It will ask you to confirm the password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*The terminal will return with &amp;lt;code&amp;gt;Password updated successfully!&amp;lt;/code&amp;gt;&lt;br /&gt;
#Type or copy the following code into the terminal and press enter.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;echo &amp;quot;greeter-show-manual-login=true&amp;quot; &amp;gt;&amp;gt; /etc/lightdm/lightdm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Please restart the machine with the command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;shutdown -r now&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Once the system returns, you can now login as the root user even from the GUI.  Just type the username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;  in the Password field, you'll type the password you set in the passwd root command above.&lt;br /&gt;
&lt;br /&gt;
== Setting static IP ==&lt;br /&gt;
# Click the “Dash Home” icon again, in the text box at the top type “Network” and select the first icon in the list displayed as “Network”. Select Wired and click Options. Select the “IPV4 Settings” tab and change the method from Automatic to Manual, Add, and supply the server with a proper IP address and information. Click Save. Your connection will reconnect.&lt;br /&gt;
# Next click on FireFox and in the browser navigate to the webpage http://www.fogproject.org and follow the download links to download the latest version of FOG, at the time of writing it is 0.32. Right mouse click and select show in folder and close your browser and all other open windows. Move the file to your desktop if you haven’t already. Right mouse click and select “Extract Here”.&lt;br /&gt;
&lt;br /&gt;
''' NOTE: GIVEN THE DATE OF THE FOG 0.32 REVISION SOME PACKAGES ARE NO LONGER SUPPORTED AND MUST BE UPDATED WE WILL DO THIS FIRST!!! '''&lt;br /&gt;
== Update and Install Packages ==&lt;br /&gt;
# Click on the “Dash Home” Icon again, type “Terminal” into the search box and select the first Icon. Now we are going to install FOG and configure it. We will do the installation through the Terminal with a number of commands, please follow them and remember to press enter after each line. Note the Capital and lower case letters, linux is VERY picky, “A” is not the same as “a”.&lt;br /&gt;
# From the terminal Type the following Commands:&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd Desktop/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd fog_0.32/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd packages&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;wget https://svn.code.sf.net/p/freeghost/code/trunk/packages/udpcast-20120424.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;rm -f udpcast-20071228.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastout=&amp;quot;udpcast-20071228&amp;quot;:udpcastout=&amp;quot;udpcast-20120424&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastsrc=&amp;quot;../packages/udpcast-20071228.tar.gz&amp;quot;:udpcastsrc=&amp;quot;../packages/udpcast-20120424.tar.gz&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd ../bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sudo ./installfog.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
# The following commands are for the installfog.sh installer information.  '''Change the relevant values for your particular system.'''&lt;br /&gt;
#* Type 2 and press Enter for Ubuntu installation.&lt;br /&gt;
#* Type N and press Enter for Normal installation&lt;br /&gt;
#* Supply IP Address, it SHOULD be the static IP address you set up earlier, if it is not please revert to step 5 and try again.&lt;br /&gt;
#* Type Y and press Enter setup DHCP Server.&lt;br /&gt;
#* Enter the IP Address associated with your DHCP Server&lt;br /&gt;
#* Type Y and press Enter to set up DNS.&lt;br /&gt;
#* Enter the DNS Server address and press Enter.&lt;br /&gt;
#* Type N and press Enter to leave the default Network Card the same.&lt;br /&gt;
#* Type N to disable DHCP Service.&lt;br /&gt;
#* '''NOTE: It tells you that in order to use your PXE server you have to run a few commands on your DHCP server, this is not entirely true, but it definitely helps, this will point your clients to your server, or you can disconnect your server from the outside world while you image.'''&lt;br /&gt;
#* Type N to not install Additional Languages.&lt;br /&gt;
#* Type Y and press Enter.&lt;br /&gt;
# Next it will verify the settings, make sure everything has been entered correctly.&lt;br /&gt;
#* '''NOTE: I set up Fog with default passwords for MYSQL and users, you can supply information if you like, just make notes.'''&lt;br /&gt;
#* Type a password for the “root” user in MySQL and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type Y to send your install information to the Project, and it will take some time to complete.&lt;br /&gt;
&lt;br /&gt;
== New Web Layout ==&lt;br /&gt;
'''Ubuntu 14.04 moved from the /var/www document root to /var/www/html document root layout.  Because of this, we have to either move the /var/www/fog directory to /var/www/html or simply create a link.'''&lt;br /&gt;
=== Open a terminal and sudo up to root. ===&lt;br /&gt;
* &amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Move fog folder so it's accessible.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;mv /var/www/fog /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Link the folder instead of move.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;ln -s /var/www/fog /var/www/html/fog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Complete the configuration ==&lt;br /&gt;
# Now we need to set up the web GUI for FOG. Open your browser and navigate to http://(serveripaddress)/fog/management. Or click the link in the Terminal window.&lt;br /&gt;
# The web GUI will alert you to back up your database for MYSQL Server and install the upgrades, do so and follow the upgrade instructions.&lt;br /&gt;
# Next log in, default user name is FOG and the password is password.&lt;br /&gt;
# Click “User Management” the Second Icon from the Left. Click “New User” on the left and set up a new user. Supply the name, password, and check the “Mobile/Quick Access only” box and press create user. In the PXE menu when doing a Quick Image, you will need to provide the username and password specified here to complete the image process.&lt;br /&gt;
# Image Management will allow you to create images, '''NOTE: MUST BE DONE PRIOR TO IMPORTING A HOST TO YOUR FOG SERVER''', otherwise you will have to create one and select it later. Click “New Image” on the left. Give the image a name, a description, select “Default” for Storage, and give the file a name, no spaces. Select Multiple Partition image – Single Disk (Not resizeable) or Multiple Partition image – All Disks (Not resizeable) I have never had a problem using these settings. However Single Partition (NTFS, Only Re-sizable) will work as well. DO NOT use the RAW format, it takes a long time to upload and does so sector by sector. This would be a recommendation if you are backing up a Linux partition. Click Add.&lt;br /&gt;
# Host Management will allow you to manually add or manage a host, I recommend using the PXE menu to register your hosts, but if you need to change information or the image type you can do it here.&lt;br /&gt;
# Your FOG server is configured and setup, register a host via the PXE menu.&lt;br /&gt;
# On your FOG Server in the WEB GUI, click on Task Management. On the left hand side, select “List all hosts” click on the “Upload” arrow for the host you just added. Select when you want the task to run, I set it a few minutes in the future. FOG has the ability to reboot your machine into the PXE menu to begin it’s process, but I simply reboot the computer, fog will find it and begin the image process&lt;br /&gt;
# CONGRATULATIONS you now have a working FOG Server and a host image ready to deploy. In order to deploy an Image, boot into the PXE menu and register the host, next select “Quick Image” and begin the image process, or select the host from the “Task Management” screen and select “Deploy” and reboot the workstation after supplying a time to begin the task, the workstation will begin its image process.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=7971</id>
		<title>Ubuntu 14.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_14.04&amp;diff=7971"/>
				<updated>2014-05-27T18:13:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''DO NOT USE THIS VERSION OF LINUX, IT IS TOO NEW AND THERE ARE ISSUES WITH TFTP UPSTART AGAIN, WHEN TIME ALLOWS AND MAJOR ISSUES WITH FOG HAVE BEEN RESOLVED, WE WILL TACKLE FIXES FOR THE UBUNTU 14.04 OPERATING SYSTEM!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''USE AT YOUR OWN RISK: We are not responsible for any damage to yourself, hardware, or co-workers. Use at your own risk. This is a set up that was proven to work in at LEAST 3 test environments. Any misuse or replication of this walk through in any other form is STRICTLY PROHIBITED.'''&lt;br /&gt;
== Ubuntu 14.04 Setup &amp;amp; Installation ==&lt;br /&gt;
&lt;br /&gt;
# Insert your Ubuntu installation disc and reboot the computer. Boot from the disc, Ubuntu will launch in it’s live form for you to get a feel for the OS or install. You will be presented with two options, install Ubuntu or run a Live instance. Click the “Install Ubuntu” Option when it is presented to you at the Welcome screen.&lt;br /&gt;
# Proceed with a normal install of Ubuntu.  It is recommended to make the choice to Download the Latest updates while installing by Ticking the checkbox. Ubuntu will now examine hardware and alert you of any previously existing operating systems.  Recommended that you remove all information unless you have other OS's you want to keep on the system. During the install Ubuntu will ask you to set your timezone, Layout, and some user information such as a user name and password.  Set this information to your liking. In the latest flavors of Ubuntu the Root user account is disabled, after installation this guide will show you how to enable it. Ubuntu will copy files and begin the installation.&lt;br /&gt;
# After installation is complete, reboot. Remove the installation disc and press enter, your computer will reboot and boot up in it’s new operating system that is much faster and more durable than it’s squishy, virus prone, partners. Log in with the Password and the User you specified during installation.&lt;br /&gt;
&lt;br /&gt;
Your system should now be installed and ready to go.&lt;br /&gt;
&lt;br /&gt;
== Enabling Root on Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
# Please open up a terminal or console and log in as the user you created.&lt;br /&gt;
# To gain access, enter the following command and re-type the user password.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Then type the following command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;passwd root&amp;lt;/pre&amp;gt;&lt;br /&gt;
#*It will ask you to enter the new password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*It will ask you to confirm the password.  You will not see anything being entered, but it is typing.  Once complete Press Enter.&lt;br /&gt;
#*The terminal will return with &amp;lt;code&amp;gt;Password updated successfully!&amp;lt;/code&amp;gt;&lt;br /&gt;
#Type or copy the following code into the terminal and press enter.&lt;br /&gt;
#*&amp;lt;pre&amp;gt;echo &amp;quot;greeter-show-manual-login=true&amp;quot; &amp;gt;&amp;gt; /etc/lightdm/lightdm.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Please restart the machine with the command:&lt;br /&gt;
#*&amp;lt;pre&amp;gt;shutdown -r now&amp;lt;/pre&amp;gt;&lt;br /&gt;
#Once the system returns, you can now login as the root user even from the GUI.  Just type the username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;  in the Password field, you'll type the password you set in the passwd root command above.&lt;br /&gt;
&lt;br /&gt;
== Setting static IP ==&lt;br /&gt;
# Click the “Dash Home” icon again, in the text box at the top type “Network” and select the first icon in the list displayed as “Network”. Select Wired and click Options. Select the “IPV4 Settings” tab and change the method from Automatic to Manual, Add, and supply the server with a proper IP address and information. Click Save. Your connection will reconnect.&lt;br /&gt;
# Next click on FireFox and in the browser navigate to the webpage http://www.fogproject.org and follow the download links to download the latest version of FOG, at the time of writing it is 0.32. Right mouse click and select show in folder and close your browser and all other open windows. Move the file to your desktop if you haven’t already. Right mouse click and select “Extract Here”.&lt;br /&gt;
&lt;br /&gt;
''' NOTE: GIVEN THE DATE OF THE FOG 0.32 REVISION SOME PACKAGES ARE NO LONGER SUPPORTED AND MUST BE UPDATED WE WILL DO THIS FIRST!!! '''&lt;br /&gt;
== Update and Install Packages ==&lt;br /&gt;
# Click on the “Dash Home” Icon again, type “Terminal” into the search box and select the first Icon. Now we are going to install FOG and configure it. We will do the installation through the Terminal with a number of commands, please follow them and remember to press enter after each line. Note the Capital and lower case letters, linux is VERY picky, “A” is not the same as “a”.&lt;br /&gt;
# From the terminal Type the following Commands:&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd Desktop/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd fog_0.32/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd packages&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;wget https://svn.code.sf.net/p/freeghost/code/trunk/packages/udpcast-20120424.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;rm -f udpcast-20071228.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastout=&amp;quot;udpcast-20071228&amp;quot;:udpcastout=&amp;quot;udpcast-20120424&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sed -i 's:udpcastsrc=&amp;quot;../packages/udpcast-20071228.tar.gz&amp;quot;:udpcastsrc=&amp;quot;../packages/udpcast-20120424.tar.gz&amp;quot;:' ../lib/common/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;cd ../bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
#* &amp;lt;pre&amp;gt;sudo ./installfog.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
# The following commands are for the installfog.sh installer information.  '''Change the relevant values for your particular system.'''&lt;br /&gt;
#* Type 2 and press Enter for Ubuntu installation.&lt;br /&gt;
#* Type N and press Enter for Normal installation&lt;br /&gt;
#* Supply IP Address, it SHOULD be the static IP address you set up earlier, if it is not please revert to step 5 and try again.&lt;br /&gt;
#* Type Y and press Enter setup DHCP Server.&lt;br /&gt;
#* Enter the IP Address associated with your DHCP Server&lt;br /&gt;
#* Type Y and press Enter to set up DNS.&lt;br /&gt;
#* Enter the DNS Server address and press Enter.&lt;br /&gt;
#* Type N and press Enter to leave the default Network Card the same.&lt;br /&gt;
#* Type N to disable DHCP Service.&lt;br /&gt;
#* '''NOTE: It tells you that in order to use your PXE server you have to run a few commands on your DHCP server, this is not entirely true, but it definitely helps, this will point your clients to your server, or you can disconnect your server from the outside world while you image.'''&lt;br /&gt;
#* Type N to not install Additional Languages.&lt;br /&gt;
#* Type Y and press Enter.&lt;br /&gt;
# Next it will verify the settings, make sure everything has been entered correctly.&lt;br /&gt;
#* '''NOTE: I set up Fog with default passwords for MYSQL and users, you can supply information if you like, just make notes.'''&lt;br /&gt;
#* Type a password for the “root” user in MySQL and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type the Password again and press enter.&lt;br /&gt;
#* Type Y to send your install information to the Project, and it will take some time to complete.&lt;br /&gt;
&lt;br /&gt;
== New Web Layout ==&lt;br /&gt;
'''Ubuntu 14.04 moved from the /var/www document root to /var/www/html document root layout.  Because of this, we have to either move the /var/www/fog directory to /var/www/html or simply create a link.'''&lt;br /&gt;
=== Open a terminal and sudo up to root. ===&lt;br /&gt;
* &amp;lt;pre&amp;gt;sudo su -&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Move fog folder so it's accessible.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;mv /var/www/fog /var/www/html/&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Link the folder instead of move.'''&lt;br /&gt;
* &amp;lt;pre&amp;gt;ln -s /var/www/fog /var/www/html/fog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Complete the configuration ==&lt;br /&gt;
# Now we need to set up the web GUI for FOG. Open your browser and navigate to http://(serveripaddress)/fog/management. Or click the link in the Terminal window.&lt;br /&gt;
# The web GUI will alert you to back up your database for MYSQL Server and install the upgrades, do so and follow the upgrade instructions.&lt;br /&gt;
# Next log in, default user name is FOG and the password is password.&lt;br /&gt;
# Click “User Management” the Second Icon from the Left. Click “New User” on the left and set up a new user. Supply the name, password, and check the “Mobile/Quick Access only” box and press create user. In the PXE menu when doing a Quick Image, you will need to provide the username and password specified here to complete the image process.&lt;br /&gt;
# Image Management will allow you to create images, '''NOTE: MUST BE DONE PRIOR TO IMPORTING A HOST TO YOUR FOG SERVER''', otherwise you will have to create one and select it later. Click “New Image” on the left. Give the image a name, a description, select “Default” for Storage, and give the file a name, no spaces. Select Multiple Partition image – Single Disk (Not resizeable) or Multiple Partition image – All Disks (Not resizeable) I have never had a problem using these settings. However Single Partition (NTFS, Only Re-sizable) will work as well. DO NOT use the RAW format, it takes a long time to upload and does so sector by sector. This would be a recommendation if you are backing up a Linux partition. Click Add.&lt;br /&gt;
# Host Management will allow you to manually add or manage a host, I recommend using the PXE menu to register your hosts, but if you need to change information or the image type you can do it here.&lt;br /&gt;
# Your FOG server is configured and setup, register a host via the PXE menu.&lt;br /&gt;
# On your FOG Server in the WEB GUI, click on Task Management. On the left hand side, select “List all hosts” click on the “Upload” arrow for the host you just added. Select when you want the task to run, I set it a few minutes in the future. FOG has the ability to reboot your machine into the PXE menu to begin it’s process, but I simply reboot the computer, fog will find it and begin the image process&lt;br /&gt;
# CONGRATULATIONS you now have a working FOG Server and a host image ready to deploy. In order to deploy an Image, boot into the PXE menu and register the host, next select “Quick Image” and begin the image process, or select the host from the “Task Management” screen and select “Deploy” and reboot the workstation after supplying a time to begin the task, the workstation will begin its image process.&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Chainload_iPXE_using_dnsmasq&amp;diff=7947</id>
		<title>Chainload iPXE using dnsmasq</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Chainload_iPXE_using_dnsmasq&amp;diff=7947"/>
				<updated>2014-05-06T18:27:11Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The information on this page has moved:&lt;br /&gt;
&lt;br /&gt;
http://fogproject.org/wiki/index.php/Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server#DNSMASQ_settings_for_iPXE&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Chainload_iPXE_using_dnsmasq&amp;diff=7946</id>
		<title>Chainload iPXE using dnsmasq</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Chainload_iPXE_using_dnsmasq&amp;diff=7946"/>
				<updated>2014-05-06T18:22:56Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://fogproject.org/wiki/index.php/Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server#DNSMASQ_settings_for_iPXE&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7940</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7940"/>
				<updated>2014-04-23T14:05:48Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* DNSMASQ settings for iPXE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
'''***FIRST*** Update the schema by navigating to your fog management page and install the update.'''&lt;br /&gt;
&lt;br /&gt;
Make the following changes to your ltsp.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename, Server name, Server Ip Address&lt;br /&gt;
dhcp-boot=undionly.kpxe,,x.x.x.x&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
#dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
#dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, undionly&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=10.0.0.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your file and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a symlink for the undionly.kpxe file so dnsmasq can find it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo ln -s undionly.kpxe undionly.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7925</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7925"/>
				<updated>2014-04-15T14:15:53Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* DNSMASQ settings for iPXE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
'''***FIRST*** Update the schema by navigating to your fog management page and install the update.'''&lt;br /&gt;
&lt;br /&gt;
Make the following changes to your ltsp.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename, Server name, Server Ip Address&lt;br /&gt;
dhcp-boot=undionly.kpxe,,x.x.x.x&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
#dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
#dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, undionly.0&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=10.0.0.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your file and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make a symlink for the undionly.kpxe file so dnsmasq can find it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo ln -s undionly.kpxe undionly.0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7920</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7920"/>
				<updated>2014-04-12T01:06:53Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* DNSMASQ settings for iPXE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
Make the following changes to your ltsp.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename, Server name, Server Ip Address&lt;br /&gt;
dhcp-boot=undionly.kpxe,,x.x.x.x&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
#dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
#dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
#pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=10.0.0.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save your file and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7919</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7919"/>
				<updated>2014-04-12T01:06:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* DNSMASQ settings for iPXE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
Make the following changes to your ltsp.conf file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename, Server name, Server Ip Address&lt;br /&gt;
dhcp-boot=undionly.kpxe,,x.x.x.x&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
#dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
#dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
#pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
#pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=10.0.0.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your file and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7918</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7918"/>
				<updated>2014-04-12T01:04:18Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=DNSMASQ settings for iPXE=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old, we will need to rename it to pxelinux.0 in order to use it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo mv pxelinux.0.old pxelinux.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for pxelinux.0 to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
sudo chmod 0775 pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server, if you changed the default nic, you may also want to change that setting here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT THE MOMENT I DO NOT HAVE A MACHINE WITH MULTIPLE NIC, IF SOMEONE WOULD LIKE TO TEST THESE SETTINGS ON A MULTIPLE NIC SETUP AND DOCUMENT THEM, THAT WOULD BE WONDERFUL!&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7917</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7917"/>
				<updated>2014-04-10T18:50:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old, we will need to rename it to pxelinux.0 in order to use it.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo mv pxelinux.0.old pxelinux.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for pxelinux.0 to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
sudo chmod 0775 pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server, if you changed the default nic, you may also want to change that setting here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT THE MOMENT I DO NOT HAVE A MACHINE WITH MULTIPLE NIC, IF SOMEONE WOULD LIKE TO TEST THESE SETTINGS ON A MULTIPLE NIC SETUP AND DOCUMENT THEM, THAT WOULD BE WONDERFUL!&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7916</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7916"/>
				<updated>2014-04-10T14:30:40Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.  &lt;br /&gt;
&lt;br /&gt;
Edit the dhcp-boot line of your /etc/dnsmasq.d/ltsp.conf file to reflect the following changes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=/tftpboot/undionly.kpxe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
sudo chmod 0775 pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server, if you changed the default nic, you may also want to change that setting here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT THE MOMENT I DO NOT HAVE A MACHINE WITH MULTIPLE NIC, IF SOMEONE WOULD LIKE TO TEST THESE SETTINGS ON A MULTIPLE NIC SETUP AND DOCUMENT THEM, THAT WOULD BE WONDERFUL!&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7915</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7915"/>
				<updated>2014-04-10T13:51:36Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.  &lt;br /&gt;
&lt;br /&gt;
Edit the dhcp-boot line of your /etc/dnsmasq.d/ltsp.conf file to reflect the following changes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=/tftpboot/undionly.kpxe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot&lt;br /&gt;
sudo mkdir /pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server, if you changed the default nic, you may also want to change that setting here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT THE MOMENT I DO NOT HAVE A MACHINE WITH MULTIPLE NIC, IF SOMEONE WOULD LIKE TO TEST THESE SETTINGS ON A MULTIPLE NIC SETUP AND DOCUMENT THEM, THAT WOULD BE WONDERFUL!&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7914</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7914"/>
				<updated>2014-04-09T18:05:33Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.  &lt;br /&gt;
&lt;br /&gt;
Edit the dhcp-boot line of your /etc/dnsmasq.d/ltsp.conf file to reflect the following changes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=/tftpboot/undionly.kpxe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server, if you changed the default nic, you may also want to change that setting here:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
AT THE MOMENT I DO NOT HAVE A MACHINE WITH MULTIPLE NIC, IF SOMEONE WOULD LIKE TO TEST THESE SETTINGS ON A MULTIPLE NIC SETUP AND DOCUMENT THEM, THAT WOULD BE WONDERFUL!&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7913</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7913"/>
				<updated>2014-04-09T18:03:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.  &lt;br /&gt;
&lt;br /&gt;
Edit the dhcp-boot line of your /etc/dnsmasq.d/ltsp.conf file to reflect the following changes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=/tftpboot/undionly.kpxe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7912</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7912"/>
				<updated>2014-04-09T17:58:02Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.  &lt;br /&gt;
&lt;br /&gt;
Edit the dhcp-boot line of your ltsp.conf file to reflect the following changes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=/tftpboot/undionly.kpxe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7911</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7911"/>
				<updated>2014-04-09T17:57:35Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.  Edit the dhcp-boot line of your ltsp.conf file to reflect the following changes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=/tftpboot/undionly.kpxe&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7907</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7907"/>
				<updated>2014-03-20T17:44:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Setup and Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7906</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7906"/>
				<updated>2014-03-20T17:43:38Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Setup and Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7905</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7905"/>
				<updated>2014-03-20T17:39:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
For information on using undionly.kpxe (pxelinux.0 replacement) to chainload iPXE please see the article http://www.fogproject.org/wiki/index.php/Chainload_iPXE_using_dnsmasq&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
Junkhacker - for help with iPXE chainloading&lt;br /&gt;
jbsclm - for his work on figuring out how to chainload 0.33b with 0.32 pxelinux.0&lt;br /&gt;
http://forum.ipxe.org/showthread.php?tid=6077 - documentation on chainloading with dnsmasq&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7904</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7904"/>
				<updated>2014-03-20T17:38:19Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
For information on using undionly.kpxe (pxelinux.0 replacement) to chainload iPXE please see the article http://www.fogproject.org/wiki/index.php/Chainload_iPXE_using_dnsmasq&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7903</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7903"/>
				<updated>2014-03-20T17:38:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
For information on using undionly.kpxe (pxelinux.0 replacement) to chainload iPXE please see the article http://www.fogproject.org/wiki/index.php/Chainload_iPXE_using_dnsmasq&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7902</id>
		<title>Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Using_FOG_with_an_unmodifiable_DHCP_server/_Using_FOG_with_no_DHCP_server&amp;diff=7902"/>
				<updated>2014-03-20T17:37:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jaymes-driver.3582: /* Chainloading iPXE using dnsmasq setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This combines FOG with a proxyDHCP server. What a proxyDHCP service does is listen to DHCP requests and respond to clients identifying themselves as PXE Clients. It leaves the role of assigning IP addresses to the other DHCP servers, but provides the necessary information so the client can PXE boot. ProxyDHCP is a solution for those of you who are working with an unmodifiable DHCP server or wish to avoid the hassle of editing the already existing DHCP server, or even as a portable imaging solution.&lt;br /&gt;
&lt;br /&gt;
=How ProxyDHCP works=&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;When a PXE client boots up, it sends a DHCP Discover broadcast on the network, which includes a list of information the client would like from the DHCP server, and some information identifying itself as a PXE capable device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A regular DHCP server responds with a DHCP Offer, which contains possible values for network settings requested by the client.Usually a possible IP address, subnet mask, router (gateway) address, dns domain name, etc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Because the client identified itself as a PXEClient, the proxyDHCP server also responds with a DHCP Offer with additional information, but not IP address info.  It leaves the IP address assigning to the regular DHCP server.  The proxyDHCP server provides the next-server-name and boot file name values, which is used by the client during the upcoming TFTP transaction.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The PXE Client responds to the DHCP Offer with a DHCP Request, where it officially requests the IP configuration information from the regular DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The regular DHCP server responds back with an ACK (acknowledgement), letting the client know it can use the IP configuration information it requested.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The client now has its IP configuration information, TFTP Server name, and boot file name and it initiate a TFTP transaction to download the boot file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Environment=&lt;br /&gt;
Tested working with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS Version&lt;br /&gt;
! FOG Version&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x64&lt;br /&gt;
| Fog 0.29&lt;br /&gt;
|-&lt;br /&gt;
| Ubuntu 10.04 LTS x32&lt;br /&gt;
| Fog 0.32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* dnsmasq&lt;br /&gt;
* LTSP Server, further documentation at [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP Ubuntu LTSP/ProxyDHCP].&lt;br /&gt;
&lt;br /&gt;
=Setup and Configuration=&lt;br /&gt;
For information on using undionly.kpxe (pxelinux.0 replacement) to chainload iPXE please see the article http://www.fogproject.org/wiki/index.php/Chainload_iPXE_using_dnsmasq&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First get your desired linux flavor installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install FOG (use instructions on wiki user manual)&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you do a normal server installation, don't setup a DHCP router address or a DNS server address, also don't use FOG as a DHCP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If you set a MySQL password make sure you change it in /var/www/fog/commons/config.php and also in /opt/fog/service/etc/config.php&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Edit /etc/exports to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/images                        *(ro,async,no_wdelay,insecure_locks,no_root_squash,insecure)&lt;br /&gt;
/images/dev                    *(rw,async,no_wdelay,no_root_squash,insecure)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Install dnsmasq using: &amp;lt;pre&amp;gt;sudo apt-get install dnsmasq&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Create /etc/dnsmasq.d/ltsp.conf using the following settings, modify as needed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Sample configuration for dnsmasq to function as a proxyDHCP server,&lt;br /&gt;
# enabling LTSP clients to boot when an external, unmodifiable DHCP&lt;br /&gt;
# server is present.&lt;br /&gt;
# The main dnsmasq configuration is in /etc/dnsmasq.conf;&lt;br /&gt;
# the contents of this script are added to the main configuration.&lt;br /&gt;
# You may modify the file to suit your needs.&lt;br /&gt;
&lt;br /&gt;
# Don't function as a DNS server:&lt;br /&gt;
port=0&lt;br /&gt;
&lt;br /&gt;
# Log lots of extra information about DHCP transactions.&lt;br /&gt;
log-dhcp&lt;br /&gt;
&lt;br /&gt;
# Dnsmasq can also function as a TFTP server. You may uninstall&lt;br /&gt;
# tftpd-hpa if you like, and uncomment the next line:&lt;br /&gt;
# enable-tftp&lt;br /&gt;
&lt;br /&gt;
# Set the root directory for files available via FTP.&lt;br /&gt;
tftp-root=/tftpboot&lt;br /&gt;
&lt;br /&gt;
# The boot filename.&lt;br /&gt;
dhcp-boot=pxelinux.0&lt;br /&gt;
&lt;br /&gt;
# rootpath option, for NFS&lt;br /&gt;
dhcp-option=17,/images&lt;br /&gt;
&lt;br /&gt;
# kill multicast&lt;br /&gt;
dhcp-option=vendor:PXEClient,6,2b&lt;br /&gt;
&lt;br /&gt;
# Disable re-use of the DHCP servername and filename fields as extra&lt;br /&gt;
# option space. That's to avoid confusing some old or broken DHCP clients.&lt;br /&gt;
dhcp-no-override&lt;br /&gt;
&lt;br /&gt;
# PXE menu.  The first part is the text displayed to the user.  The second is the timeout, in seconds.&lt;br /&gt;
pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&lt;br /&gt;
&lt;br /&gt;
# The known types are x86PC, PC98, IA64_EFI, Alpha, Arc_x86,&lt;br /&gt;
# Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI&lt;br /&gt;
# This option is first and will be the default if there is no input from the user.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from network&amp;quot;, pxelinux&lt;br /&gt;
&lt;br /&gt;
# A boot service type of 0 is special, and will abort the&lt;br /&gt;
# net boot procedure and continue booting from local media.&lt;br /&gt;
pxe-service=X86PC, &amp;quot;Boot from local hard disk&amp;quot;, 0&lt;br /&gt;
&lt;br /&gt;
# If an integer boot service type, rather than a basename is given, then the&lt;br /&gt;
# PXE client will search for a suitable boot service for that type on the&lt;br /&gt;
# network. This search may be done by multicast or broadcast, or direct to a&lt;br /&gt;
# server if its IP address is provided.&lt;br /&gt;
# pxe-service=x86PC, &amp;quot;Install windows from RIS server&amp;quot;, 1&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the public interface, where dnsmasq functions&lt;br /&gt;
# as a proxy DHCP server providing boot information but no IP leases.&lt;br /&gt;
# Any ip in the subnet will do, so you may just put your server NIC ip here.&lt;br /&gt;
# Since dnsmasq is not providing true DHCP services, you do not want it&lt;br /&gt;
# handing out IP addresses.  Just put your servers IP address for the interface&lt;br /&gt;
# that is connected to the network on which the FOG clients exist.&lt;br /&gt;
# If this setting is incorrect, the dnsmasq may not start, rendering&lt;br /&gt;
# your proxyDHCP ineffective.&lt;br /&gt;
dhcp-range=192.168.1.10,proxy&lt;br /&gt;
&lt;br /&gt;
# This range(s) is for the private network on 2-NIC servers,&lt;br /&gt;
# where dnsmasq functions as a normal DHCP server, providing IP leases.&lt;br /&gt;
# dhcp-range=192.168.0.20,192.168.0.250,8h&lt;br /&gt;
&lt;br /&gt;
# For static client IPs, and only for the private subnets,&lt;br /&gt;
# you may put entries like this:&lt;br /&gt;
# dhcp-host=00:20:e0:3b:13:af,10.160.31.111,client111,infinite&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Restart dnsmasq with &amp;lt;pre&amp;gt;sudo dnsmasq restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note:''' After getting everything working, you can change the timeout to 0 on the line: &amp;lt;pre&amp;gt;pxe-prompt=&amp;quot;Press F8 for boot menu&amp;quot;, 3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Chainloading iPXE using dnsmasq setup=&lt;br /&gt;
This information pertains to FOG 0.33 and the new iPXE boot method.&lt;br /&gt;
&lt;br /&gt;
In order to continue to use dnsmasq to dole out ip addresses and to help find the boot file, some changes need to be made to force the boot file to load the iPXE boot file.&lt;br /&gt;
&lt;br /&gt;
The old pxelinux.0 file is still included in the fog installation as pxelinux.0.old but this file has been replaced by a new file called '''undionly.kpxe'''.  We will use this file, undionly.kpxe, in place of the pxelinux.0 file when setting up the ltsp.conf file.&lt;br /&gt;
&lt;br /&gt;
The reason we are able to do this is because pxe boot looks for files that match a query of names, first starting with the MAC address of the machine and moving down the list until it reaches the default file. We are going to create a file for it to find every time it queries for the default file.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a default file for undionly.kpxe to load (you may substitute gedit for your favorite text editor):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mkdir pxelinux.cfg&lt;br /&gt;
cd pxelinux.cfg&lt;br /&gt;
sudo gedit default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Insert the following lines and edit the server ip address to reflect your own FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DEFAULT vesamenu.c32&lt;br /&gt;
LABEL fog&lt;br /&gt;
    MENU DEFAULT&lt;br /&gt;
    kernel ipxe.krn dhcp &amp;amp;&amp;amp; chain http://(fog-server-ip-address)/fog/service/ipxe/boot.php?mac=${net0/mac}&lt;br /&gt;
PROMPT 0&lt;br /&gt;
TIMEOUT 01&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Save your files and restart your dnsmasq service with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo service dnsmasq restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Serving ProxyDHCP to multiple subnets=&lt;br /&gt;
If you are serving ProxyDHCP to multiple subnets some changes must be made to your switches/routers and your server config.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your /etc/dnsmasq.d/ltsp.conf file by adding the subnet mask option to line: &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy&amp;lt;/pre&amp;gt; to make it &amp;lt;pre&amp;gt;dhcp-range=192.168.1.10,proxy,255.255.0.0&amp;lt;/pre&amp;gt; which will serve all 192.168.x.x subnets.  If you are using 10.x.x.x addressing, use subnet mask &amp;quot;255.0.0.0&amp;quot; (8-bit) and if you are using 172.16.x.x, use subnet mask &amp;quot;255.240.0.0&amp;quot; (12 bit).  Basically set the subnet mask so that all subnets on which ProxyDHCP should answer are covered.&lt;br /&gt;
&lt;br /&gt;
If you don't do this, the ProxyDHCP server will not respond to DHCP requests for hosts outside of it's own subnet.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add an IP Helper/DHCP Relay record to your router or switch so the DHCP broadcasts are sent to your normal DHCP server AND the Fog server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=References=&lt;br /&gt;
I gathered a lot of my ideas from peoples' questions on the FOG forums and the Ubuntu documentation on the [https://help.ubuntu.com/community/UbuntuLTSP/ProxyDHCP LTSP proxyDHCP] server, so thanks to them.&lt;br /&gt;
&lt;br /&gt;
=Additional Info=&lt;br /&gt;
A ProxyDHCP server can also help deal with PXE Clients that do not work with seperate DHCP and TFTP servers using option 66 &amp;amp;amp;67 (Windows), or next-server and filename (Linux). This can resolve situations where the clients are getting the tftp server IP address and filename, but are having issues with the TFTP Transaction, such as: PXE-T01: File not found, and other errors.&lt;br /&gt;
&lt;br /&gt;
This has successfully resolved issues with:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Device !! NIC&lt;br /&gt;
|-&lt;br /&gt;
| Acer Iconia Tab w500p || Asix AX88772B USB to Fast Ethernet adapter&lt;br /&gt;
|-&lt;br /&gt;
|Compal JHL91 || Realtek RTL8139&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Customization]][[Category:Dhcp]][[Category:Pxe]]&lt;/div&gt;</summary>
		<author><name>Jaymes-driver.3582</name></author>	</entry>

	</feed>