<?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=Chad-bisd</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=Chad-bisd"/>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Special:Contributions/Chad-bisd"/>
		<updated>2026-04-07T19:09:46Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Active_Directory_-_FOG_Setting&amp;diff=7936</id>
		<title>Active Directory - FOG Setting</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Active_Directory_-_FOG_Setting&amp;diff=7936"/>
				<updated>2014-04-21T14:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: added overview and requirements and some descriptions to various subsections and tried to clarify wording in a few places.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
FOG can automatically join computers to an Active Directory domain.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
*FOG client application installed on hosts (usually as part of the image)&lt;br /&gt;
*FOG server configured to join computer computers to the domain&lt;br /&gt;
*FOG HostNameChanger module active on server, client, and in host configuration&lt;br /&gt;
*FOG 0.31 and earlier may require netdom.exe on hosts&lt;br /&gt;
&lt;br /&gt;
==Where to Configure==&lt;br /&gt;
&lt;br /&gt;
===Turn on HostNameChanger module===&lt;br /&gt;
This module determines if a host will join the domain. It must be enabled in several locations for it to work properly.&lt;br /&gt;
&lt;br /&gt;
*When installing or reconfiguring the FOG client application on the host, this module must be made active for the computer to auto-join the domain.&lt;br /&gt;
*On the host record in the fog WebUI, Active Directory menu option must be checked to enable &amp;quot;Join domain after image task&amp;quot;.&lt;br /&gt;
*In the server webUI, FOG configuration menu option, HostNameChanger menu option on the left, service must be enabled.&lt;br /&gt;
&lt;br /&gt;
===FOG Defaults===&lt;br /&gt;
Set the default domain, username, password, and organization unit (OU) for joining computer accounts to the domain. See [[#Syntax]] details about the values for each field.&lt;br /&gt;
&lt;br /&gt;
*Web UI: Other Information -&amp;gt; FOG Settings&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Groups===&lt;br /&gt;
Set the domain, username, password, and organization unit (OU) for joining hosts to the domain for all hosts currently in this group. See [[#Syntax]] details about the values for each field.&lt;br /&gt;
&lt;br /&gt;
*Web UI: Group Management&lt;br /&gt;
*Search for Group name or click &amp;quot;List Groups&amp;quot;&lt;br /&gt;
*Click on the name of the group in the list&lt;br /&gt;
*Active Directory option in the menu on the left&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This is a applied in a batch for each host in the group when saved. These settings are not stored in the group settings permanently, nor applied to future hosts automatically when added to the group.&lt;br /&gt;
&lt;br /&gt;
===Individual Hosts===&lt;br /&gt;
Set the domain, username, password, and organization unit (OU) for joining the host to the domain. See [[#Syntax]] details about the values for each field.&lt;br /&gt;
&lt;br /&gt;
*Web UI: Host Management&lt;br /&gt;
*Search for host name or click &amp;quot;List All Hosts&amp;quot;&lt;br /&gt;
*Select the host computer&lt;br /&gt;
*Active Directory option in the menu on the left&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntax==&lt;br /&gt;
&lt;br /&gt;
===Domain Name===&lt;br /&gt;
The fully qualified domain name.&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
&lt;br /&gt;
*company&lt;br /&gt;
*company.ad&lt;br /&gt;
*company.com&lt;br /&gt;
*company.local&lt;br /&gt;
&lt;br /&gt;
===Organizational Unit===&lt;br /&gt;
The organizational unit, in LDAP format.&lt;br /&gt;
&lt;br /&gt;
Exmaples:&lt;br /&gt;
&lt;br /&gt;
*OU=PCs,DC=company,DC=com&lt;br /&gt;
*OU=Lab Computers,OU=PCs,DC=company,DC=com&lt;br /&gt;
*[Blank] Leaving this blank will join the default OU for new PCs, usually &amp;quot;Computers&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Domain Username===&lt;br /&gt;
The user in your domain you wish to use to add the computers to Active Directory.&lt;br /&gt;
&lt;br /&gt;
[domain]\[account]&lt;br /&gt;
&lt;br /&gt;
Exmaple:&lt;br /&gt;
&lt;br /&gt;
*company\FOGServiceAccount&lt;br /&gt;
&lt;br /&gt;
'''Note: Domain does not need to be fully qualified for Domain Username'''&lt;br /&gt;
&lt;br /&gt;
===Domain Password===&lt;br /&gt;
The password for your domain-join account, encrypted using [[FOGCrypt]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Testing with Netdom to troubleshoot==&lt;br /&gt;
&lt;br /&gt;
Windows Command Line(cmd)&lt;br /&gt;
&lt;br /&gt;
'''FOGPassword is NOT encrypted for the command line test.'''&lt;br /&gt;
&lt;br /&gt;
===Join Domain===&lt;br /&gt;
&lt;br /&gt;
netdom JOIN mypcHostname /Domain:SyperiorSoft  /OU:FOGou  /UserD:FOGUser /passwordd:FOGPassword /reboot:35&lt;br /&gt;
&lt;br /&gt;
===Remove from Domain===&lt;br /&gt;
&lt;br /&gt;
netdom REMOVE mypcHostname /domain:SyperiorSoft /UserD:FOGUser /passwordd:FOGPassword&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Windows]] [[category:Active Directory]]&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=FOGUserGuide&amp;diff=7795</id>
		<title>FOGUserGuide</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=FOGUserGuide&amp;diff=7795"/>
				<updated>2013-06-11T01:37:18Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Preface */  Minor wording changes and additions&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;&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.2.1+&lt;br /&gt;
*MySql 5+&lt;br /&gt;
*Apache 2+&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;
&amp;lt;UL&amp;gt;&amp;lt;LI&amp;gt;The Capone plugin allows FOG to recognize similar hardware platforms and push your specified image to them with minimal (or no) interaction.&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;/UL&amp;gt;&lt;br /&gt;
See [[Plugins]] to activate and manage plugins.&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;
&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;[[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;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Clamav&amp;diff=7788</id>
		<title>Clamav</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Clamav&amp;diff=7788"/>
				<updated>2013-03-02T22:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Ubuntu 10.04 LTS */ removed note at the end.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Clamav on Debian Lenny==&lt;br /&gt;
The current version of clam with Debian stable aka Lenny does not seem to work with FOG.  I did the following to get clam working.&lt;br /&gt;
&lt;br /&gt;
#First remove stable version of clam:  '''aptitude purge clamav-freshclam clamav clamav-daemon'''&lt;br /&gt;
#Now add the source for the newer version of clam:  '''nano /etc/apt/sources.list'''&lt;br /&gt;
#I added:  &lt;br /&gt;
&amp;lt;nowiki&amp;gt;#clam&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;deb http://volatile.debian.org/debian-volatile stable/volatile main contrib non-free&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
#'''aptitude update'''&lt;br /&gt;
#Now proceed with the fog installation script&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Note:'''  The above must be done before you install fog.  For testing download the [http://en.wikipedia.org/wiki/EICAR_test_file Eicar Test Virus] to a test workstation and run the clam task on that system.  Once the scan has finished the result can be found in the reports section of the FOG web interface.&lt;br /&gt;
&lt;br /&gt;
==ClamAV on Ubuntu==&lt;br /&gt;
===Ubuntu 10.04 LTS===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;*Optional Steps*&lt;br /&gt;
    &amp;lt;ol&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Remove ClamAV installed with Fog because it's out of date and generates too many warnings when trying to update, if it updates at all&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Add the PPA to your sources list: ppa:ubuntu-clamav/ppa&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Get the newest clamav installed on your Fog Server&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;Update your definitions by running freshclam&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Disable scripted updates and let ClamAV download definitions to the root of the web server. Add &amp;quot;ScriptedUpdates off&amp;quot; to the freshclam.conf file on the Fog Server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Expand the Fog init file. (from [[Modifying_the_Init_Image]])&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;cd /tftpboot/fog/images&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;gunzip init.gz&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;mkdir initmountdir&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;mount -o loop init initmountdir&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify the freshclam.conf file inside the init. Add &amp;quot;DatabaseMirror MyFogServerNameOrIP&amp;quot; and &amp;quot;ScriptedUpdates off&amp;quot; to this file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Compress the init file.&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;cd /tftpboot/fog/images&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;umount initmountdir/&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;rmdir initmountdir&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;gzip init&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make symbolic links to the ClamAV files in the root of the web server&lt;br /&gt;
  &amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;cd /var/www&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;ln -s /var/lib/clamav/bytecode.cvd&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;ln -s /var/lib/clamav/daily.cvd&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;ln -s /var/lib/clamav/main.cvd&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Setup a virus scan task for a host and watch your client download the definitions from your Fog server and run the scan&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Main_Page&amp;diff=7785</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Main_Page&amp;diff=7785"/>
				<updated>2013-03-01T06:36:58Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Added link to new forums&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Welcome to the FOG Wiki pages'''&lt;br /&gt;
&lt;br /&gt;
FOG is a free, open source computer cloning solution and this wiki contains the bulk of documentation for the project.  If you feel you have something to offer the documentation, please feel free to edit it.  We just ask that you keep it in good taste.  &lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
&lt;br /&gt;
The FOG Project Team&lt;br /&gt;
&lt;br /&gt;
''' The Spammers Win '''&lt;br /&gt;
&lt;br /&gt;
We can no longer keep up with the spam that is posted to this WIKI, so we have disabled account creation.  If you would like an account, please request one in our [http://www.fogproject.org/forum forums].  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Change Log'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Version 0.32&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: July 22nd, 2011&lt;br /&gt;
&lt;br /&gt;
*Added ability to disable chkdsk after imaging (doesn't function with scheduled jobs)&lt;br /&gt;
*Added ability to change the computer's hostname from init.gz&lt;br /&gt;
*Remoted need for fogprep&lt;br /&gt;
*Installer now will attempt to install dhcp3-server if isc-dhcp-server doesn't exist&lt;br /&gt;
*Extended use of OO classes&lt;br /&gt;
*Fixed imaging listing overflow on manual registration&lt;br /&gt;
*Init now mounts NFS using TCP.&lt;br /&gt;
*Fixed issue: 3324065 - typo on snap in page&lt;br /&gt;
*Fixed issue: 3367423 - AD auto population issue with '/'&lt;br /&gt;
&lt;br /&gt;
Version 0.31&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: Jun 20th, 2011&lt;br /&gt;
&lt;br /&gt;
*New web UI (All thanks to Peter Gilchrist)&lt;br /&gt;
*Updated kernel version 2.6.39.1&lt;br /&gt;
*Added Spanish translation (Thanks Pablo J. Mayordomo García)&lt;br /&gt;
*Updated chntpw to version 110511&lt;br /&gt;
*Updated clamav to 0.97.1&lt;br /&gt;
*Fixed spelling error in Inventory report&lt;br /&gt;
*Fixed issue: 3157703 - disk space reporting (thanks Corey Edwards)&lt;br /&gt;
*Fixed issue: 3194588 - Spelling error in help dialog (thanks Nathan Lock)&lt;br /&gt;
&lt;br /&gt;
Version 0.30&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: Feb 23th, 2011&lt;br /&gt;
&lt;br /&gt;
*Rebuilt init image (ALL Thanks to Aaron Bergz!!!!) details below&lt;br /&gt;
**Converted to Busy Box&lt;br /&gt;
**Added detection for number of CPUs&lt;br /&gt;
**Parallel upload image compression &lt;br /&gt;
**Added drive write cache check.&lt;br /&gt;
&lt;br /&gt;
*Update memtest from 4.0 to 4.2&lt;br /&gt;
*Updated kernel to version 2.6.37 (core)&lt;br /&gt;
*Added kernel branch - core&lt;br /&gt;
*Added additional search fields to the host search from the inventory table&lt;br /&gt;
*Updated chntpass support to scan partitions looking for sam file&lt;br /&gt;
&lt;br /&gt;
Version 0.29&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: May 25th, 2010&lt;br /&gt;
&lt;br /&gt;
*Removed the need for etherwake, implemented WOL in php code.&lt;br /&gt;
*Fixed issue with upstart vs sysvinit with tftpd-hpa&lt;br /&gt;
*Fixed issue with scheduled tasks and Windows 7 failing&lt;br /&gt;
*Fixed program files path issue on FOG Service installer&lt;br /&gt;
*Updated AV Scan to check for a two partition setup with Windows 7&lt;br /&gt;
*Added Follow page to about&lt;br /&gt;
*Added silient install option for the FOG service&lt;br /&gt;
*Added Pending MAC address report&lt;br /&gt;
*Added DMI Information to the Client System Information pxe menu item&lt;br /&gt;
*Updated pxelinux.0 to version 3.86 and added memdisk&lt;br /&gt;
*Got Capone ready for production use.&lt;br /&gt;
*Updated dmidecode from 2.7 to 2.9&lt;br /&gt;
*Updated Memtest86+ to 4.0&lt;br /&gt;
*Updated device IDS (pci.ids)&lt;br /&gt;
*Updated ClamAV to version 0.96-exp&lt;br /&gt;
*Added ability for ClamAV to scan rars&lt;br /&gt;
*ClamAV now caches virus defs. on the server.&lt;br /&gt;
*Updated photorec and testdisk to 6.11.3&lt;br /&gt;
*Added Host Status (basic ping)&lt;br /&gt;
*Fixed background image streching issue on Login History Image.&lt;br /&gt;
*Added Chinese (Simplified) translation&lt;br /&gt;
*Added FOG Prep for Windows 7 image upload&lt;br /&gt;
*Added Italian translations&lt;br /&gt;
*Added internationalization support (Thanks Luca Berton!)&lt;br /&gt;
*Changed to a sprite for the menu bar (Thanks John Deery!)&lt;br /&gt;
*Removed dependency &amp;quot;libmd5-perl&amp;quot; from installation as it is not needed.&lt;br /&gt;
*Upgraded jpggraph to version 3.0.7&lt;br /&gt;
*Removed ereg functions and replaced with preg_match as they are deprecated in php 5.3.x+&lt;br /&gt;
*Fixed bug (2882606) spelling error on Loan Form. Thanks neodawg&lt;br /&gt;
*Applied patch (2886212) to allow Quick registration to set default values. Thanks Andrew Single&lt;br /&gt;
*Fixed mkswap issue (2962069) Thanks Acacha&lt;br /&gt;
*Cleaned up the Kernel Updater&lt;br /&gt;
*Updated kernel to 2.6.33.3&lt;br /&gt;
*Added ability to search for hosts by additional macs&lt;br /&gt;
*Added MAC Manufacturer Lookup&lt;br /&gt;
*Multiple MAC address support&lt;br /&gt;
*changed hostname changer to use unmanaged code to (un)join domain&lt;br /&gt;
*Network bandwidth graph should no longer flicker&lt;br /&gt;
*Started migration to OO API&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.28&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: September 28th, 2009&lt;br /&gt;
&lt;br /&gt;
*Updated Kernel to version 2.6.31.1&lt;br /&gt;
*Fixed issue with multicasting a mutli-part image for windows 7&lt;br /&gt;
*Added ajax based active task listing&lt;br /&gt;
*Added nombr kernel option which will not blow away mbr (Thanks Line Noise)&lt;br /&gt;
*If storage node MAX_CLIENTS is set to 0, it is no longer a random candidate.&lt;br /&gt;
*Updated syslinux to version 3.82&lt;br /&gt;
*Added client information to pxe menu.&lt;br /&gt;
*Installation script checks if it is being run as root.&lt;br /&gt;
*Fixed tftp installation to NOT overwrite customizations.&lt;br /&gt;
*Fixed HD information on hardware info page (2857507).&lt;br /&gt;
*Added ability to add custom PXE menu items.&lt;br /&gt;
*Decreased loading time for login page.&lt;br /&gt;
*Fixed typo in tasks.advanced.include.php&lt;br /&gt;
*Replaced append argument &amp;quot;quiet&amp;quot; with loglevel=4&lt;br /&gt;
*Added Hidden Menu option to PXE Menu builder&lt;br /&gt;
*Added primary group to host quick info section. (Thanks sam wilson)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.27&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: July 15th, 2009&lt;br /&gt;
&lt;br /&gt;
*Added support for Windows 7&lt;br /&gt;
*Added Scheduled Task Support&lt;br /&gt;
*Fixed Fedora 11 issue where apache would fail to start.&lt;br /&gt;
*Fixed to support Fedora 11 change of dhcpd configuration file&lt;br /&gt;
*Fixed Ubuntu services to terminate more gracefully.&lt;br /&gt;
*Fixed issue with installer not configuring services correctly&lt;br /&gt;
*Updated syslinux tools 3.81&lt;br /&gt;
*Added web based log viewer&lt;br /&gt;
*Updated Kernel to version 2.6.30.1&lt;br /&gt;
*Allowed Kernel updater to specifiy a alternate file name.&lt;br /&gt;
*Changed default username for password reset to &amp;quot;Administrator&amp;quot; from &amp;quot;administrator&amp;quot; thanks schmalenegger&lt;br /&gt;
*Fixed spelling error in fog script (2629489)&lt;br /&gt;
*Fixed bug (2669367) for use of mysql_real_escape_string before a connection was defined, thanks schmalenegger&lt;br /&gt;
*Applied patch (2654529) , thanks schmalenegger&lt;br /&gt;
*Applied patch (2767897), thanks Matthew Fusaro&lt;br /&gt;
*Set PXE timeout value to save in db (2654680), thanks schmalenegger&lt;br /&gt;
*Added proxy support to web UI (2716741), thanks schmalenegger&lt;br /&gt;
*Added pci.ids so lspci will give usefull description.&lt;br /&gt;
*Changed ascii logo.&lt;br /&gt;
*Added auto-populate of image file name for new image files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.26&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: February 27, 2009&lt;br /&gt;
&lt;br /&gt;
*Added Quick Image Function&lt;br /&gt;
*Added advanced tasks to host -&amp;gt; basic tasks page&lt;br /&gt;
*Updated kernel to 2.6.28.7&lt;br /&gt;
*Applied patch (2616743) from schmalenegger adding keymap to default pxe boot file&lt;br /&gt;
*Applied patch (2537449) from schmalenegger fixing the getIPAddress for non-english installs.&lt;br /&gt;
*Applied patch (2512766) from schmalenegger fixing spelling errors in hosts.edit.include.php&lt;br /&gt;
*Added Windows 7 to supported OS List (Do not yet use, not functional!)&lt;br /&gt;
*Added Windows Password reset tool.&lt;br /&gt;
*Added Windows Password reset script for debug mode (no task needed)&lt;br /&gt;
&lt;br /&gt;
Version 0.25 &lt;br /&gt;
------------ &lt;br /&gt;
 &lt;br /&gt;
Release date: January 13, 2009&lt;br /&gt;
&lt;br /&gt;
* Updated capone to (hopefully) work with storage nodes. &lt;br /&gt;
* Updated kernel to 2.6.28 &lt;br /&gt;
* Changed Image tmp directory to no longer include colons. &lt;br /&gt;
* Slight improvements to mutliple partition support &lt;br /&gt;
* Fixed possible premature exit of loop in service functions file. (Thanks Pierre Rognant) &lt;br /&gt;
* Added default page display option. &lt;br /&gt;
* Added config setting for ssh username. &lt;br /&gt;
* Added config setting for ssh port number. &lt;br /&gt;
* Fixed Disk Information on Dashboard. &lt;br /&gt;
* Allow for viewing disk information of storage nodes &lt;br /&gt;
* Fixed Image Log/Report &lt;br /&gt;
* Fixed ??? forcing of a task. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.24&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: December 1, 2008&lt;br /&gt;
&lt;br /&gt;
* Added Storage Group framework.&lt;br /&gt;
* Added SSH Java Client&lt;br /&gt;
* Added task stats for unicast transfers to the active tasks page.&lt;br /&gt;
* Added Image ID to image listing&lt;br /&gt;
* Upgraded memtest86+ to 2.10&lt;br /&gt;
* Used modifed partimage to allow printing status to stderr.&lt;br /&gt;
* Fixed error thrown when partition is already resized to correct size during upload.&lt;br /&gt;
* Fixed issue with blank hard disk detection&lt;br /&gt;
* Updated functions.include.php to include better error message for upload task creation failures.&lt;br /&gt;
&lt;br /&gt;
Known Issues&lt;br /&gt;
* Capone not yet updated, if you are using admin plugin, *capone*, DON'T UPDATE TO THIS VERSION!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.23&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: October 27, 2008&lt;br /&gt;
&lt;br /&gt;
* Fixed wipe tasks' kernel argument issue&lt;br /&gt;
* (2076993) Added option to add computer to domain from fog.reginput&lt;br /&gt;
* (2089168) Fixed quotes in snapin args.&lt;br /&gt;
* Added nicer error on IE's failing to display disk information.&lt;br /&gt;
* Added icon on task page to signify is task is active on host&lt;br /&gt;
* Minor Updates to Module capone (Thanks: Peter Sykes)&lt;br /&gt;
* Updated Kernel to 2.6.27&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.22&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: September 24, 2008&lt;br /&gt;
&lt;br /&gt;
* Change client modules to unmanaged shutdown/reboot methods: TaskReboot, AutoLogout, GreenFog&lt;br /&gt;
* Update PrinterManager to support Windows Shared Style Printers (Thanks: elishughes)&lt;br /&gt;
* Updated ClamAv to version 0.94&lt;br /&gt;
* Updated MemTest86+ to Version 2.01&lt;br /&gt;
* Added option to force device for hard disk per host.&lt;br /&gt;
* Added option to specify alternative kernel per host.&lt;br /&gt;
* (2078165) Improved ajax script that displays remaining disk space.&lt;br /&gt;
* Added option to set timeout on pxe menu builder.&lt;br /&gt;
* (2085281) Incorrect error message on PXEMENU page.&lt;br /&gt;
* (2100818) Fixed default populations of AD information.&lt;br /&gt;
* Improved MulticastTask.class.php added --max-wait param (Thanks: mikrorechner)&lt;br /&gt;
* Improved MulticastTask.class.php to support missing part (Thanks: mikrorechner)&lt;br /&gt;
* Updated Kernel to 2.6.26.5&lt;br /&gt;
* Added Equipment Loan Report&lt;br /&gt;
* Added Capone (client specific extension)&lt;br /&gt;
* Added Plugin System&lt;br /&gt;
* (2078618) Fixed wol.php to function on ubuntu (thanks: Phil G)&lt;br /&gt;
* (2063135) Fixed Stale tasks after removal of host. (thanks: Mark Featherston)&lt;br /&gt;
&lt;br /&gt;
Version 0.21&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: August 22, 2008&lt;br /&gt;
&lt;br /&gt;
* Added FOG Mobile Portal&lt;br /&gt;
* modified user to include mobile account type&lt;br /&gt;
* Changed mac address field in new host screen to parse mac address&lt;br /&gt;
* Added graphical pxe boot as default&lt;br /&gt;
* Added PXE Boot Menu configuration options&lt;br /&gt;
&lt;br /&gt;
Version 0.20&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: August 18, 2008&lt;br /&gt;
&lt;br /&gt;
* Added default values for AD support in fog settings section.&lt;br /&gt;
* Changed service installer image&lt;br /&gt;
* Removed brownbark theme&lt;br /&gt;
* Added ability to delete large number of hosts via groups.&lt;br /&gt;
* (2043261) PXELinux.0 updated to version 3.71&lt;br /&gt;
* Add ability to sort tables a few sections.&lt;br /&gt;
* Added retry to set default printer in printer manager&lt;br /&gt;
* Updated remaining modules to now check server for status.&lt;br /&gt;
* Fixed: On host service module update, screen resolution would be set to disabled (0,0,0)&lt;br /&gt;
* Changed login form to track logins on new server as well as current server.&lt;br /&gt;
* Updated kernel 2.6.26&lt;br /&gt;
* (2025167) Fixed update process when default md5 sum is not used.&lt;br /&gt;
* Added very basic update script.&lt;br /&gt;
&lt;br /&gt;
Version 0.19&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: July 21, 2008&lt;br /&gt;
&lt;br /&gt;
* (2002771) Fixed installtion of dhcp, when user selects not to use fog for dhcpd.&lt;br /&gt;
* Improved installer for faster upgrades.&lt;br /&gt;
* Added redirect page in web root, if a file doesn't exist.&lt;br /&gt;
* (2021536) Fixed force task issue.&lt;br /&gt;
* (1992895) Added Date/Time to image listing&lt;br /&gt;
* Modified service modules to handle delayed connections.&lt;br /&gt;
* Added kernel argument per host.&lt;br /&gt;
* Added global kernel argument setting.&lt;br /&gt;
* Minor interface improvements.&lt;br /&gt;
* Fixed: PrinterManager user state error, where new user logins not detected.&lt;br /&gt;
&lt;br /&gt;
Version 0.18&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: June 25, 2008&lt;br /&gt;
&lt;br /&gt;
* Fixed: Image IDs not showing up in IE7&lt;br /&gt;
* (1991304) Fixed: Turned off Magic Quotes at runtime.&lt;br /&gt;
* Removed shutdown option from wake on lan task, for obvious reasons.&lt;br /&gt;
* (2001844) Fixed: Fixed PhotoRec&lt;br /&gt;
* (1998697) Added: --no-htmldoc option to fog installer&lt;br /&gt;
* (1997803) Fixed dd error during file upload. (Patched by Elis Hughes)&lt;br /&gt;
* Added grub/swap support to Linux multiple partition support (Patched by elishughes)&lt;br /&gt;
&lt;br /&gt;
Version 0.17&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: June 19, 2008&lt;br /&gt;
&lt;br /&gt;
* Updated installer to remove tftpboot.fogbackup if it exists&lt;br /&gt;
* Added image listing and os listing to for.reginput&lt;br /&gt;
* Added Snapin Log Report&lt;br /&gt;
* Added return code on snapin installations. (Patched by Stonekeeper)&lt;br /&gt;
* Added ability to deploy msi/headless executables snapins.&lt;br /&gt;
* Added logging/reporting of unicast image tasks (Patched by Stonekeeper)&lt;br /&gt;
* Added delay to PrinterManager, DisplayManager &amp;amp; UserTracker to account for slow logins&lt;br /&gt;
* (1990265) Fixed race conditions with multicast manager; starting invalid number of clients (Patched by Dan Fego)&lt;br /&gt;
* Fixed Post_Wipe.php to user new database settings (Patched by Stonekeeper)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.16&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: June 9, 2008&lt;br /&gt;
&lt;br /&gt;
* Fixed problem with restarting of FOG service installer when a module is disabled.&lt;br /&gt;
* Fixed CSS on Floating Alert Box for IE7 to position the OK button correctly on the form&lt;br /&gt;
* (1977697)Fixed Inability to link a printer to a host/group under ie7.&lt;br /&gt;
* Fixed Floating Alert Box to now move above menu bar in Firefox 3.0&lt;br /&gt;
* Added make to package list to better support fedora 9&lt;br /&gt;
* Added Poweroff support to kernel via ACPI and APM&lt;br /&gt;
* Update Kernel to 2.6.25-4&lt;br /&gt;
* Added keymap support for alt. keyboard layouts&lt;br /&gt;
* Added debug module to output various information to the log&lt;br /&gt;
* Added User Cleanup Module&lt;br /&gt;
* Added Directory Cleaning module&lt;br /&gt;
* Added Auto Log Off module&lt;br /&gt;
* (1967052) Added work around for schema installer when database already exists.&lt;br /&gt;
* Added table globalSettings, moduleStatusByHost, and a few others&lt;br /&gt;
* Updated schema version to 9&lt;br /&gt;
* Updated FOG_Printer_Manager module to allow access to the named pipes from non-admin users.&lt;br /&gt;
* Added &amp;quot;--no-upgrade&amp;quot; option to fog installer&lt;br /&gt;
* Added Easy Update to make upgrading from version to version easier in the future.&lt;br /&gt;
* Added FOG Settings page to the &amp;quot;other information&amp;quot; section of fog management.&lt;br /&gt;
* Added option to make page animations optional.&lt;br /&gt;
* (1940447) Fixed Password validation issue.&lt;br /&gt;
* Cleaned up the task confirmation page.&lt;br /&gt;
&lt;br /&gt;
Version 0.15&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: April 18, 2008&lt;br /&gt;
&lt;br /&gt;
* Fixed - Deploy all snapins to group.&lt;br /&gt;
* Added FTP connection information for NFS server&lt;br /&gt;
* Fixed user tracker report to include host.&lt;br /&gt;
* Updated kernel with atl2 patch 2.04&lt;br /&gt;
* Fixed dd issue introduced in version 0.14&lt;br /&gt;
&lt;br /&gt;
Version 0.14&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: April 8, 2008&lt;br /&gt;
&lt;br /&gt;
* Added basic multiple partition support&lt;br /&gt;
* Improved installer with default values&lt;br /&gt;
* (1920830) After host removal, all tasks linked with host are deleted.&lt;br /&gt;
* Modified S01reboot in boot image to disable saving of random seed&lt;br /&gt;
* Added fogpartinfo binary to boot image for better disk detection&lt;br /&gt;
* Added 3 new operating systems to the support OS table.&lt;br /&gt;
* Added basic backup utility.&lt;br /&gt;
* Added ability to replace an existing snapin file.&lt;br /&gt;
&lt;br /&gt;
Known/Outstanding Issues&lt;br /&gt;
* Percentage reported by multipartition multicast session is incorrect.&lt;br /&gt;
* Multipartition has issues with grub.  &lt;br /&gt;
* Multipartition will not work with extended partitions.&lt;br /&gt;
&lt;br /&gt;
Version 0.13&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: March 21, 2008&lt;br /&gt;
&lt;br /&gt;
* Made installer language independent&lt;br /&gt;
* Made DHCP startup optional&lt;br /&gt;
* Added build-essential to the ubuntu install list&lt;br /&gt;
* Added FOG Tray Icon&lt;br /&gt;
* Changed TaskReboot to optionally reboot with user logged in&lt;br /&gt;
&lt;br /&gt;
Version 0.12&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
Release date: March 4, 2008&lt;br /&gt;
&lt;br /&gt;
* Added Hardware Inventory Task&lt;br /&gt;
* Added Printer Installation Service Module&lt;br /&gt;
* Added User Tracking Service Module&lt;br /&gt;
* Added FOG Reporting&lt;br /&gt;
* Added Enhanced Registration Method&lt;br /&gt;
* Added Client FOG Service Updater&lt;br /&gt;
* Feature Request #1902517 - Change FOG upload behavior to include removal of Page File and Hibernate file.&lt;br /&gt;
* Added Basic Tasks to Host management screen&lt;br /&gt;
* Added Login History to the Host management screen&lt;br /&gt;
* Added Hardware Inventory to host management screen&lt;br /&gt;
* Added printer management to host management screen&lt;br /&gt;
* Updated Kernel to 2.6.25-rc3&lt;br /&gt;
* Fix # 1901545 - Add insecure option to all exports&lt;br /&gt;
* Fix # 1892693 - New user passwords only characters&lt;br /&gt;
* Added HTMLDoc to list of install packages&lt;br /&gt;
* Added 3 sec pause to pxe boot&lt;br /&gt;
* Added pxe boot option fog.memtest&lt;br /&gt;
* Added pxe boot option fog.reg&lt;br /&gt;
* Added pxe boot option fog.reginput&lt;br /&gt;
* Updated Partprobe to 1.8.6&lt;br /&gt;
* Put a freeze on changes to AbstartFOGService.dll&lt;br /&gt;
* Put a freeze on changes to FOGService.exe&lt;br /&gt;
&lt;br /&gt;
  Known Issues&lt;br /&gt;
* Setting of default printer is currently not functional.&lt;br /&gt;
&lt;br /&gt;
Version 0.11&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
* Cleaned up group removal page.&lt;br /&gt;
* Cleaned up user removal page.&lt;br /&gt;
* Fixed CSS on footer&lt;br /&gt;
* Moved delete button to the bottom of the group edit page to keep a consistant look and feel.&lt;br /&gt;
* Added FUSE to the kernel&lt;br /&gt;
* Added ClamAV to the boot image&lt;br /&gt;
* Added Virus History to the Host Edit pages&lt;br /&gt;
* Added Virus Summary to Information Section&lt;br /&gt;
* Feature Request #1886328: Added insecure option to exports&lt;br /&gt;
&lt;br /&gt;
Version 0.10&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
* Fix #1881264: GPT/MSDOS MBR Error&lt;br /&gt;
* Added client kernel updater &lt;br /&gt;
* Branched to two kernel types: kitchensink and skinny&lt;br /&gt;
* Added FOG version and estimated users to login screen.&lt;br /&gt;
* Added DNS and router configuration to the installation script.&lt;br /&gt;
* Added interface configuration to the installation script.&lt;br /&gt;
* Added DD disk imaging support.&lt;br /&gt;
* Updated schema to version 5.&lt;br /&gt;
&lt;br /&gt;
Version 0.09&lt;br /&gt;
------------&lt;br /&gt;
&lt;br /&gt;
* Added Multicast support using UDPCast&lt;br /&gt;
* Added FOGMulticastManager service&lt;br /&gt;
* Feature Request #1860234: Added &amp;quot;List all Hosts&amp;quot; to hosts section&lt;br /&gt;
* Feature Request #1860774: Added ability to modify all the oses for a group&lt;br /&gt;
	- Thanks bjornan&lt;br /&gt;
* Added unmanaged api call to reboot client in FOG service&lt;br /&gt;
* Added Search to Groups section of FOG Management&lt;br /&gt;
* Added Search to Images section of FOG Management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.08&lt;br /&gt;
------------&lt;br /&gt;
* Fix #1843328: changed constant()'s to define()'s in functions.include.php&lt;br /&gt;
	- Thanks Gabor Halasz&lt;br /&gt;
* Fix #1845874: fixed image by group problem.&lt;br /&gt;
	- Thanks Gabor Halasz&lt;br /&gt;
* Fix #1848708: Replaced hardcoded image directory with STORAGE_DATADIR&lt;br /&gt;
	- Thanks Gabor Halasz&lt;br /&gt;
* Fix #1850687: WOL enhancement merged.&lt;br /&gt;
	- Thanks Gabor Halasz&lt;br /&gt;
* Fix #1850700: Hardcoded webroot in dashboard.include.php&lt;br /&gt;
	- Thanks Gabor Halasz&lt;br /&gt;
* Fix #1850854: hardcoded dns server in intrd &amp;amp; tmp cleanup&lt;br /&gt;
	- Thanks Gabor Halasz&lt;br /&gt;
* Fix #N/A:     Fixed capital Y/N response in installer returning: &amp;quot;Invalid repsonse&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Added Ubuntu installer support&lt;br /&gt;
* Added Snapin support&lt;br /&gt;
* Added Snapin subservice&lt;br /&gt;
* Added domain registration&lt;br /&gt;
* Added patition resize percent to config.php&lt;br /&gt;
* Added advanced option Send without Snapins&lt;br /&gt;
* Added advanced option Deploy Snapins&lt;br /&gt;
* Added advanced option Deploy sinlge snapin&lt;br /&gt;
* Changed function getNumberOfTasks to not include orphaned tasks&lt;br /&gt;
* Updated jpgraph to version 2.3&lt;br /&gt;
* updated db schema to version 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Version 0.07&lt;br /&gt;
------------&lt;br /&gt;
* Changed default theme from BrownBark to BlackEye.&lt;br /&gt;
* Added theme option to config file.&lt;br /&gt;
* Added Fast Disk wipe.&lt;br /&gt;
* Added Disk Surface test.&lt;br /&gt;
* Updated Linux Kernel to 2.6.23.8.&lt;br /&gt;
* Removed Kernel module support.&lt;br /&gt;
* Removed Kernel swap disk support.&lt;br /&gt;
* Added ramdisk size option to config file.&lt;br /&gt;
* Added GUI support to the FOG Service.&lt;br /&gt;
* Added graphical config to the FOG Service.&lt;br /&gt;
* Added Task Reboot sub service.&lt;br /&gt;
* Changed IP address from a mandatory to optional field.&lt;br /&gt;
* Modified host upload making IP address optional here too.&lt;br /&gt;
* Added ability to delete image files from web GUI.&lt;br /&gt;
&lt;br /&gt;
Version 0.06&lt;br /&gt;
------------&lt;br /&gt;
* Fixed Upload Resize Bug.&lt;br /&gt;
* Added CSV host import&lt;br /&gt;
* Added Vista support to hostname change module.&lt;br /&gt;
* Added Host Registration module with XP and Vista support&lt;br /&gt;
* Corrected join in Active Tasks page&lt;br /&gt;
&lt;br /&gt;
Version 0.05&lt;br /&gt;
------------&lt;br /&gt;
* Added memtest86+&lt;br /&gt;
* Added testdisk&lt;br /&gt;
* Added photorec&lt;br /&gt;
* Cleaned up GUI a little&lt;br /&gt;
* Added AJAX bandwidth monitor&lt;br /&gt;
* Added AJAX HD monitor&lt;br /&gt;
&lt;br /&gt;
Version 0.04&lt;br /&gt;
------------&lt;br /&gt;
* Added advanced boot options&lt;br /&gt;
&lt;br /&gt;
Version 0.03&lt;br /&gt;
------------&lt;br /&gt;
* Added Windows Vista Support^&lt;br /&gt;
* Added vista MBR to boot image&lt;br /&gt;
* Added FOGVistaMbr Fix application to image&lt;br /&gt;
* Added xxd to the image&lt;br /&gt;
* updated ntfsutils to version 2.0&lt;br /&gt;
* updated db schema to version 2&lt;br /&gt;
* Added url to download the client installation package&lt;br /&gt;
&lt;br /&gt;
Bug Fixes&lt;br /&gt;
* Added alternate method to detect hard disks, which&lt;br /&gt;
  will detect a disk that has not partition on it.&lt;br /&gt;
* Fixed sudo to allow apache to run etherwake.&lt;br /&gt;
  &lt;br /&gt;
^  In order for vista to work, the following commands&lt;br /&gt;
   must be run as administrator BEFORE uploading the image.&lt;br /&gt;
   &lt;br /&gt;
bcdedit /set {bootmgr} device boot&lt;br /&gt;
bcdedit /set {default} device boot&lt;br /&gt;
bcdedit /set {default} osdevice boot   &lt;br /&gt;
&lt;br /&gt;
Version 0.02&lt;br /&gt;
------------&lt;br /&gt;
* Moved user config settings from the main install script to lib/config.sh&lt;br /&gt;
* Cleaned up Kernel and included new .config file&lt;br /&gt;
* added installation notification&lt;br /&gt;
* added fog service with hostname changer&lt;br /&gt;
* minor bug fixes&lt;br /&gt;
&lt;br /&gt;
Version 0.01&lt;br /&gt;
------------&lt;br /&gt;
Initial Product Release&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Modifying_the_Init_Image&amp;diff=7784</id>
		<title>Modifying the Init Image</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Modifying_the_Init_Image&amp;diff=7784"/>
				<updated>2013-02-11T23:03:05Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: fixed grammar errors on last line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Modifying the Boot Image==&lt;br /&gt;
If you wish to modify the way that the pxe/tftp works files in the /tftpboot directory can be edited.&lt;br /&gt;
===Using scripts===&lt;br /&gt;
Modifying the boot image is easy to do. FOG comes with a script that enables you to easily modify the init image.&lt;br /&gt;
&lt;br /&gt;
The script mounts the image and decompress it so you can view its files to modify them, however it tries to open nautilus to show you the files. Bear in mind that if you have no GUI (or your connected via ssh) you will have to browse the files manually in &lt;br /&gt;
&lt;br /&gt;
 /tmp/tmpMnt/&lt;br /&gt;
&lt;br /&gt;
To run the script execute the file in here&lt;br /&gt;
&lt;br /&gt;
 /opt/fog/utils/Boot Image Editor/FOGMountBootImage.sh&lt;br /&gt;
&lt;br /&gt;
That will execute the script, when your done modifying the Init image hit Enter and the file will be re compress and set ready to use.&lt;br /&gt;
&lt;br /&gt;
===By Hand===&lt;br /&gt;
Or, to do it by hand:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot/fog/images&lt;br /&gt;
gunzip init.gz&lt;br /&gt;
mkdir initmountdir&lt;br /&gt;
mount -o loop init initmountdir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you're done making changes, you have to clean up and unmount the init image:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /tftpboot/fog/images&lt;br /&gt;
umount initmountdir/&lt;br /&gt;
rmdir initmountdir&lt;br /&gt;
gzip init&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
===Adding sfdisk to the /sbin directory===&lt;br /&gt;
This will add the &amp;lt;tt&amp;gt;sfdisk&amp;lt;/tt&amp;gt; program into the boot environment:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /tftpboot/fog/images&lt;br /&gt;
gunzip init.gz&lt;br /&gt;
mkdir initmountdir&lt;br /&gt;
mount -o loop init initmountdir&amp;lt;/pre&amp;gt;&lt;br /&gt;
init is now ready for modification. Make your changes:&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /sbin/sfdisk /tftpboot/fog/images/initmountdir/sbin&amp;lt;/pre&amp;gt;&lt;br /&gt;
Modifications Complete. Unmount and re-gzip it:&amp;lt;pre&amp;gt;&lt;br /&gt;
umount initmountdir&lt;br /&gt;
rmdir initmountdir&lt;br /&gt;
gzip init&amp;lt;/pre&amp;gt;Now you can use the sfdisk program from the PXE environment.&lt;br /&gt;
===Remove Authentication from Quick Image===&lt;br /&gt;
This example will show how to automatically authenticate users when they select Quick Image. If you are happy to allow anybody to deploy an image to a hardrive this is for you.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /tftpboot/fog/images&lt;br /&gt;
gunzip init.gz&lt;br /&gt;
mkdir initmountdir&lt;br /&gt;
mount -o loop init initmountdir&lt;br /&gt;
cd /tftpboot/fog/images/initmountdir/bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit fog.quickimage&amp;lt;br&amp;gt;&lt;br /&gt;
Comment out the followig lines by putting a # in front&lt;br /&gt;
&amp;lt;pre&amp;gt; #echo &amp;quot;  Enter a valid FOG username and password.&amp;quot;;&lt;br /&gt;
 #echo &amp;quot;&amp;quot;;&lt;br /&gt;
 #echo -n &amp;quot;      Username: &amp;quot;;&lt;br /&gt;
 #read username;&lt;br /&gt;
 #echo &amp;quot;&amp;quot;&lt;br /&gt;
 #echo -n &amp;quot;      Password: &amp;quot;;&lt;br /&gt;
 #stty -echo&lt;br /&gt;
 #read password;&lt;br /&gt;
 #stty echo;&lt;br /&gt;
 #echo &amp;quot;&amp;quot;;&lt;br /&gt;
 #echo &amp;quot;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace with:&lt;br /&gt;
&amp;lt;pre&amp;gt; username=&amp;quot;a valid username&amp;quot;&lt;br /&gt;
 password=&amp;quot;a valid password&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the modification&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ../..&lt;br /&gt;
umount initmountdir/&lt;br /&gt;
rmdir initmountdir&lt;br /&gt;
gzip init&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You are done and now users can image without the need for a username and a password.&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=User:Chad-bisd/Using_FOG_in_VirtualBox&amp;diff=7742</id>
		<title>User:Chad-bisd/Using FOG in VirtualBox</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=User:Chad-bisd/Using_FOG_in_VirtualBox&amp;diff=7742"/>
				<updated>2012-09-15T06:26:29Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Creating the Client */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
This tutorial is meant to introduce the reader to using FOG in a virtual environment using Oracle VM Virtualbox.&lt;br /&gt;
&lt;br /&gt;
==Requirements==&lt;br /&gt;
*Host computer with dual/quad core process and 4GB+ RAM running a VirtualBox compatible OS&lt;br /&gt;
*Oracle VM VirtualBox installed on host computer&lt;br /&gt;
*OS Install images (ISO or CD/DVD)&lt;br /&gt;
** Linux for FOG server (Ubuntu 10.04 LTS)&lt;br /&gt;
** Windows XP, Vista, 7, etc for clients&lt;br /&gt;
*Internet connection&lt;br /&gt;
&lt;br /&gt;
'''Note:''' VirtualBox works best on processors that support Hardware Virtualization (VT-x/AMD-V).  While it will run on other processors, the performance suffers.&lt;br /&gt;
==Creating the virtual FOG Server==&lt;br /&gt;
Once you have Oracle VM VirtualBox installed, start it and create a new virtual machine definition by clicking the &amp;quot;New&amp;quot; button.  This will start the wizard that guides you through creating a virtual machine definition.&lt;br /&gt;
&lt;br /&gt;
Name the virtual machine and select the Operating System (Linux) and Version (Ubuntu).  Select the amount of memory to allocate to the virtual machine depending on how much memory is in the host. Usually 1GB is plenty for a FOG server for testing.  Create a new startup disk, select VDI type, dynamically allocated.  The size of the virtual disk depends on just how much you plan to test with it. For this test client, only the base install of Windows is used, so 20 GB is plenty.  Continue through the wizard and finish creating the virtual machine definition.&lt;br /&gt;
&lt;br /&gt;
Select your virtual machine definition and click Settings.  Go to the Network section, click on Adapter 2, and enable it.  Change the Attached to: value to Internal Network, and name the network &amp;quot;FogPXE&amp;quot;. Click OK to save.  Start the virtual machine by double clicking the definition name or by selecting it from the list and clicking the Start button in the VirtualBox top menu.&lt;br /&gt;
&lt;br /&gt;
The First Run Wizard! should start and help you install the operating system.  Click Next. Choose the ISO or CD/DVD that contains your OS install.  We'll choose an Ubuntu 10.04 Server i386 ISO file that we downloaded earlier.  '''Don't worry about having  GUI at this time, we'll install one later if needed.'''  Click Next after selecting the install file. Click Start to begin the OS install on our first virtual machine.&lt;br /&gt;
&lt;br /&gt;
===Installing Ubuntu===&lt;br /&gt;
The virtual machine reboots and launches the ISO, which launches the Ubuntu install.  Select English for the language and hit Enter. Select &amp;quot;Install Ubuntu Server&amp;quot; from the menu and hit Enter. '''If your mouse gets stuck in the virtual machine, the right control key will break it out for you.'''  Select English again for the language and hit Enter. Select United States for the country and hit Enter. Select No to detect keyboard layout unless you have a really really special keyboard. Select USA as origin of the keyboard and hit Enter. Select USA as the keyboard layout and hit Enter. The installer begins the process of installing Ubuntu. This may take several minutes.&lt;br /&gt;
&lt;br /&gt;
====Configuring the Network====&lt;br /&gt;
When prompted for the Primary Network Interface, choose eth0 and hit Enter. At this point, it's hard to tell which interface is the NAT'ed one and which is the internal network one, so let's just hope they are detected in the right order. If you chose the right one, it will get IP configuration info from the DHCP server built into VirtualBox. Don't get confused at this point, it's just how VirtualBox assigns IP addresses to the virtual network interfaces that are inside VirtualBox.&lt;br /&gt;
&lt;br /&gt;
Set the hostname when prompted. Choose something meaningful, like FOGMaster, and hit Enter.  You'll be prompted for time zone info with an educated guess already chosen.  It's usually right, so just hit Enter or select No and choose the right time zone.&lt;br /&gt;
&lt;br /&gt;
====Partitioning the Disk====&lt;br /&gt;
When prompted for disk partition info, select the default: Guided - use entire disk and set up LVM, and hit Enter. You should only have one disk shown in the next screen, so select it and hit Enter. On the next screen you'll have to move the selection to Yes in order to write the changes to disk and configure LVM. So just arrow over to Yes and hit Enter. Leave the default size for the volume group and hit Enter to continue. At the prompt to write the changes to disk, arrow over to Yes and hit Enter. The installer creates the volume group, partitions, and file systems necessary for the OS.&lt;br /&gt;
&lt;br /&gt;
The installer now installs the OS onto the virtual disk. This may take a few minutes depending the speed of the host.&lt;br /&gt;
&lt;br /&gt;
====Setting up the Primary User====&lt;br /&gt;
When prompted for the Full Name of the new user, select almost anything other than &amp;quot;fog&amp;quot;. Your first and last name will do just fine.  Enter them and hit Enter. The installer prompts for a username and defaults to your first name. This is probably fine unless your first name is &amp;quot;fog&amp;quot;.  If your first name really is &amp;quot;fog&amp;quot;, just make the username &amp;quot;admin&amp;quot; or something simple one word and not a Linux reserved user name (do not use root, nobody, fog, wwwroot, etc...) Hit Enter to accept the username.  Type in a password and hit enter. Confirm password and hit enter. Do not encrypt your home directory, so choose No and hit Enter.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' Remember the username and password from here.&lt;br /&gt;
&lt;br /&gt;
====Updating Software Packages====&lt;br /&gt;
If you use a proxy server to get to the internet, type that information in when prompted and hit Enter. If you do not use a proxy server, leave it blank and hit Enter. The installer goes through a few more steps setting up the system, retrieving a bunch of files from somewhere, whatever.  The installer prompts for update settings.  Choose No Automatic Updates and hit Enter.&lt;br /&gt;
&lt;br /&gt;
When prompted for addition software to install, leave the options blank and tab down to Continue and hit Enter. All the software we'll need we will install later either via the FOG install script or manually using apt.&lt;br /&gt;
&lt;br /&gt;
====Finalizing the Install====&lt;br /&gt;
Select Yes when prompted to install GRUB boot loader to the master boot record and hit Enter. At the Installation Complete prompt, select Continue and hit Enter. VirtualBox will automatically unmount the install files and boot straight into Ubuntu.&lt;br /&gt;
&lt;br /&gt;
===Configuring Ubuntu===&lt;br /&gt;
There are a few things to do to the Ubuntu OS after the install. First we'll login as the user we created during the install.  The user account does not have root privileges without using the sudo command.  Almost every command from here on will begin with sudo.&lt;br /&gt;
&lt;br /&gt;
====Setting a static IP====&lt;br /&gt;
Because the virtual machine has two network adapters, we need to determine which is the NAT'd one and which is the private one. Run the command:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
When prompted, enter your password again.  You should see the interface configuration printed to the screen.  If we selected the correct primary interface during setup, we should see eth0 having an inet addr: 10.0.2.X.  If you only have a &amp;quot;lo&amp;quot; interface listed, then we got something wrong. Keep reading and see if you can figure out what is wrong as we continue to configure the network settings.&lt;br /&gt;
&lt;br /&gt;
This virtual machine has two network adapters, but only one is showing up. This is because we have not told Ubuntu how to bring the other interface up, i.e. static IP or dhcp, or even told it we want the other interface to come up at boot time.  To do that, we'll edit the /etc/network/interfaces file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano -wS /etc/network/interfaces&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Let's break down that command and explain what each part does. &amp;quot;sudo&amp;quot; makes the command run in privileged mode. &amp;quot;nano&amp;quot; is the name of the editor. &amp;quot;-wS&amp;quot; are arguments to nano. &amp;quot;-w&amp;quot; means don't wrap long files.  Very important when editing configuration files.  &amp;quot;S&amp;quot; means smooth scrolling, or line by line scrolling rather that page by page. &amp;quot;/etc/network/interfaces&amp;quot; is the name of the configuration file for Ubuntu's networking interfaces.&lt;br /&gt;
&lt;br /&gt;
Arrow down to the bottom of the page and add a section for the other adapter.  In most cases, the second adapter will be &amp;quot;eth1&amp;quot;. So hit Enter to leave a blank line and type the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;# The internal FOG PXE interface&lt;br /&gt;
auto eth1&lt;br /&gt;
iface eth1 inet static&lt;br /&gt;
    address 10.1.1.12&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Don't worry about the static IP address too much here. Since this interface is on an &amp;quot;internal network&amp;quot; inside VirtualBox, only interfaces specifically setup to be part of the same internal network will be able to see it.  Hit Ctrl+O to save, hit Enter to write to the file /etc/network/interfaces when prompted. Hit Ctrl+X to quit nano.&lt;br /&gt;
&lt;br /&gt;
Bring up the second adapter.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo ifup eth1&amp;lt;/pre&amp;gt;&lt;br /&gt;
and check it with&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo ifconfig&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see eth0, eth1, and lo adapters. If you do, then we're done configuring the network. If you don't, verify your /etc/network/interfaces file is correct.&lt;br /&gt;
&lt;br /&gt;
====Updating Ubuntu====&lt;br /&gt;
It is very important to update Ubuntu before moving forward with the FOG installation. Many issues can be avoided by installing up to date packages for this release.&lt;br /&gt;
&lt;br /&gt;
First, we'll update the package repository since it is out of date. The current repository may only know about the packages from the install file.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Next, we'll upgrade all the base packages that need them. This does not upgrade us from Lucid to the next version, only upgrades the packages within this release.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This takes a while, but when it's done, install the dkms package in preparation for installing the VirtualBox Guest Additions later.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install dkms&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also had problems with the console scrolling really slow.  To resolve this, I added&lt;br /&gt;
&amp;lt;pre&amp;gt;blacklist vga16fb&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the end of the /etc/modprobe.d/blacklist-framebuffer.conf file and rebooted.  The console was much snappier.&lt;br /&gt;
&lt;br /&gt;
===Installing FOG===&lt;br /&gt;
The FOG install is very standard for Ubuntu 10.04.  Please review the [[Ubuntu_10.04#Setting_up_FOG]] installation guide.&lt;br /&gt;
&lt;br /&gt;
Some differences from a basic install. You'll want to change the IP address to the one you gave to eth1 when you configured it static.  You'll change the interface FOG uses from eth0 to eth1, and you install the DHCP server.&lt;br /&gt;
&lt;br /&gt;
The settings should be:&lt;br /&gt;
Ubuntu&lt;br /&gt;
Normal Server&lt;br /&gt;
10.1.1.12&lt;br /&gt;
no dhcp router address&lt;br /&gt;
no dhcp dns address&lt;br /&gt;
interface: eth1&lt;br /&gt;
yes to dhcp&lt;br /&gt;
no to internationalization&lt;br /&gt;
&lt;br /&gt;
FOG will then download and install the various packages used such as Apache2, PHP, MySQL, etc. Since this is a virtualbox install, do NOT put in a mysql root user password. After a while, all the packages will be installed and verified and you'll having a working FOG server.&lt;br /&gt;
&lt;br /&gt;
Leave this virtual machine running for now.&lt;br /&gt;
&lt;br /&gt;
==Creating the Client==&lt;br /&gt;
===Defining the Virtual Machine===&lt;br /&gt;
In the Oracle VM VirtualBox Manager window, click New to make a new virtual machine definition. Our first client will be just to make sure that PXE booting is working, so it doesn't really matter what Operating System or Version we choose.  Name the VM &amp;quot;FOG Client 1&amp;quot; for now, choose Microsoft Windows, and whatever version of windows you have a licensed.  Specify enough RAM for the machine to work but not run your host system out of memory. Create a new Virtual Hard Disk accepting the defaults.  Now select the &amp;quot;FOG Client 1&amp;quot; definition and click Settings. Click the System section on the left and the Motherboard tab in the right side panel.&lt;br /&gt;
&lt;br /&gt;
We're going to adjust the boot device order so the computer tries to PXE boot first. Check the Network option in the Boot Order list, and then use the arrows on the right to move it to the top.  Now we need to adjust the network settings, so choose Network on the left panel.  We want 1 adapter to be for PXE boot.  Change Adapter 1 to Internal Network.  From the drop down box for the Internal Network name, choose FogPXE, which must match what you specified for the FOG Server virtual machine adapter.  If you select it from the drop down list you're pretty safe it will be the same.  Enable Adapter 2 and set it for NAT. This will give out client access to the internet for updates, etc. Click OK to save the settings then start the virtual machine by selecting it from the list and pressing the Start option in the top menu or double clicking the VM Name.&lt;br /&gt;
&lt;br /&gt;
You will get the First Run Wizard.  For this time, we're going to ignore this so we can get to PXE boot. Just hit Cancel.  After a few seconds, you should be greeted with PXE boot messages and finally the FOG menu.  Arrow down to stop the timer so you can read the menu before it disappears.&lt;br /&gt;
&lt;br /&gt;
===Installing the client OS===&lt;br /&gt;
Since we cancelled out of the First Run Wizard! we have to manually start up the OS installer.  You can install from a CD/DVD or ISO file. Once you have the disc or ISO file, use the devices menu to attach the device to the virtual machine and then reboot/start the virtual machine and let it run through the boot order, which should be Network, floppy, CD/DVD, Hard Drive.  The OS installer should kick off shortly after the FOG menu times out.&lt;br /&gt;
&lt;br /&gt;
Install a minimal OS for now just so we can test upload and deploy.&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_10.04&amp;diff=7739</id>
		<title>Ubuntu 10.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_10.04&amp;diff=7739"/>
				<updated>2012-09-15T05:53:24Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Making FOG accessible at the root of the server (optional) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
&lt;br /&gt;
This guide uses a live installer cd version of Ubuntu, and then covers the installation of FOG.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
=== Language issue ===&lt;br /&gt;
&lt;br /&gt;
This tutorial will probably only work with the English Installation of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
=== FOG version issues ===&lt;br /&gt;
&lt;br /&gt;
With Ubuntu 10.04, FOG versions 0.30 and 0.31 will not install cleanly.  So it is recommended to only use versions 0.29 or 0.32 or greater, or carefully follow the guidance below.&lt;br /&gt;
&lt;br /&gt;
==== Libmd5-perl installation issue (FOG versions &amp;lt; 0.29) ====&lt;br /&gt;
&lt;br /&gt;
If you get an error during installfog.sh regarding libmd5-perl (FOG 0.28 and earlier -- dependency removed in FOG 0.29), you need to manually download and apply the package:&lt;br /&gt;
&lt;br /&gt;
 wget http://ftp.us.debian.org/debian/pool/main/libm/libmd5-perl/libmd5-perl_2.03-1_all.deb&lt;br /&gt;
 sudo dpkg -i libmd5-perl_2.03-1_all.deb&lt;br /&gt;
&lt;br /&gt;
==== PXE Error - Boot file not found (FOG versions &amp;lt; 0.29) ====&lt;br /&gt;
&lt;br /&gt;
If PXE can't locate your boot file, Ubuntu and FOG may be expecting it to be in different places. Creating a symbolic link may resolve the issue:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 sudo rmdir /var/lib/tftpboot&lt;br /&gt;
 sudo ln -s /tftpboot /var/lib/tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Installing Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
An Ubuntu cd/dvd can be obtained from:&lt;br /&gt;
&lt;br /&gt;
http://www.ubuntu.com/&lt;br /&gt;
&lt;br /&gt;
After burning a cd/dvd of the ISO image, we must boot the live cd.&lt;br /&gt;
&lt;br /&gt;
During boot select '''Install Ubuntu 10.04 LTS''' menu item.&lt;br /&gt;
&lt;br /&gt;
[[Image:10.04.install.png]]&lt;br /&gt;
&lt;br /&gt;
The next screen(Step 2 of 7) will ask you about your time zone settings, in our example we will select '''Chicago''' and click '''forward'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:10.04.tz.png]]&lt;br /&gt;
&lt;br /&gt;
The following screen(Step 3 of 7) will ask you for your keyboard layout, in our example we will select '''USA''' and click '''forward'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:10.04.keyboard.png]]&lt;br /&gt;
&lt;br /&gt;
The next screen(Step 4 of 7) will prompt you for partitioning information, we will select to '''Erase and use entire disk''', and click '''forward'''.&lt;br /&gt;
&lt;br /&gt;
[[Image:10.04.part.png]]&lt;br /&gt;
&lt;br /&gt;
Now(Step 5 of 7) you will need to enter some user account information, enter the required information and click, '''forward'''.  In this example, we used the username '''administrator''', please '''do not''' use '''fog''', this account will be created for use by the FOG system.&lt;br /&gt;
&lt;br /&gt;
[[Image:10.04.user.png]]&lt;br /&gt;
&lt;br /&gt;
On the final screen(Step 7 of 7), click '''install''' to start the installation process.&lt;br /&gt;
&lt;br /&gt;
At this point the installer will take over, this process may take a long time, so please be patient.&lt;br /&gt;
&lt;br /&gt;
When you are prompted, restart the server.&lt;br /&gt;
&lt;br /&gt;
== Setting a static IP address ==&lt;br /&gt;
&lt;br /&gt;
After the server restarts, log in with the account your created during installation.&lt;br /&gt;
&lt;br /&gt;
[[Image:10.04.nm.png]] or [[File:Othernm.png]]&lt;br /&gt;
&lt;br /&gt;
Right-click on the Network-Manager icon, and select '''edit connections...'''&lt;br /&gt;
&lt;br /&gt;
[[Image:10.04.ec.png]]&lt;br /&gt;
&lt;br /&gt;
In the Network Connections window select profile '''Auto eth0''' and click '''Edit'''&lt;br /&gt;
&lt;br /&gt;
[[Image:10.04.ip.png]]&lt;br /&gt;
&lt;br /&gt;
Go to the IPv4 Settings tab:&lt;br /&gt;
&lt;br /&gt;
*Change Method to Manual&lt;br /&gt;
*Make sure '''Connect Automatically''' is checked&lt;br /&gt;
*Add your static IP address with netmask and gateway.&lt;br /&gt;
*Add a DNS Server address&lt;br /&gt;
*Add a DNS suffic/Search domain&lt;br /&gt;
*Ensure that '''Available to all users''' is checked.&lt;br /&gt;
&lt;br /&gt;
Hit '''Apply'''&lt;br /&gt;
&lt;br /&gt;
At this point you may need to click on the Network Manager icon and select '''Auto eth0''' for the profile to be applied.&lt;br /&gt;
&lt;br /&gt;
Confirm your new settings are active by right-clicking on Network-Manager again and selecting '''Connection Information'''.&lt;br /&gt;
&lt;br /&gt;
== Updating Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
This step is optional, but highly recommended especially if you are running this server in a production environment.&lt;br /&gt;
&lt;br /&gt;
#Click the '''System Menu -&amp;gt; Administration -&amp;gt; Update Manager'''&lt;br /&gt;
#Click the '''Check''' button.&lt;br /&gt;
#Enter your password&lt;br /&gt;
#Click '''Install Updates'''&lt;br /&gt;
&lt;br /&gt;
If a restart is required, then do so at this time.&lt;br /&gt;
&lt;br /&gt;
== Setting up FOG ==&lt;br /&gt;
Now we must download the FOG package from sourceforge.&lt;br /&gt;
&lt;br /&gt;
Option 1: To do this click on Applications -&amp;gt; Internet -&amp;gt; Firefox Web Browser and enter the URL: http://sourceforge.net/projects/freeghost/files/&lt;br /&gt;
:Then click on the Download link.&lt;br /&gt;
:Then click on the latest release (version 0.29 or later) to start the download. It should be named something like fog_x.xx.tar.gz &lt;br /&gt;
&lt;br /&gt;
Option 2: At the Ubuntu Server console, type the following to download the .32 version. Search for the latest version at link above: &lt;br /&gt;
:&amp;lt;pre&amp;gt;sudo wget http://sourceforge.net/projects/freeghost/files/FOG/fog_0.32/fog_0.32.tar.gz&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open a terminal (Applications -&amp;gt; Accessories -&amp;gt; Terminal) &lt;br /&gt;
&lt;br /&gt;
Now let's create a directory to store the downloaded FOG installers: &amp;lt;pre&amp;gt;sudo mkdir -p /opt/fog-setup&amp;lt;/pre&amp;gt;&lt;br /&gt;
:'''Note:''' don't use /opt/fog for this directory because the installer script will create that directory for application files later.&lt;br /&gt;
&lt;br /&gt;
Now let's copy that file into the fog-setup directory with:&amp;lt;pre&amp;gt;sudo cp ~/Downloads/fog_*.tar.gz /opt/fog-setup/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we can extract the file, and perform the installation with the following commands.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cd /opt/fog-setup&lt;br /&gt;
 sudo tar -xvzf fog*&lt;br /&gt;
 cd fog*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Note:''' If you run FOG inside an OpenVZ container, you now want to [[Ubuntu_and_OpenVZ|edit some files]] before continuing.&lt;br /&gt;
&lt;br /&gt;
Now run the installer script with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cd bin&lt;br /&gt;
 sudo ./installfog.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Your answers to the setup questions will depend on whether you are installing FOG in an [[FOG on an Isolated Network|isolated network]] or an [[Integrating FOG into an Existing Network|existing network]] that already has a functioning DHCP server.  Please read the appropriate guide and adjust your answers accordingly.'''&lt;br /&gt;
&lt;br /&gt;
You will be prompted for the Linux distro you are installing, enter '''2''' and press '''enter'''.&lt;br /&gt;
&lt;br /&gt;
You will be prompted for the installation mode, either '''N''' (Normal Server) or '''S''' (Storage Server).  If you are not sure which option to select, use '''N''' for Normal Installation. &lt;br /&gt;
&lt;br /&gt;
The installer will ask you for the IP address of the server, then press '''enter'''.&lt;br /&gt;
&lt;br /&gt;
The installer will ask if you would like to enter a router address for DHCP, if you would like to press '''y''' and press '''enter''', then enter the address, then press '''enter'''.&lt;br /&gt;
&lt;br /&gt;
The installer will ask if you would like to enter a DNS address for DHCP and the boot image, if you would like to press '''y''' and press '''enter''', then enter the address, then press '''enter'''.&lt;br /&gt;
&lt;br /&gt;
You would then be prompted if you would like to change the default interface from eth0, if you would like press '''y''', press '''enter''' and add the interface (if you are unsure, select '''n''').  &lt;br /&gt;
&lt;br /&gt;
You will be prompted to select if you would like to install the packages required for translations, if you would like to, press '''y''''.&lt;br /&gt;
&lt;br /&gt;
Acknowledge and follow the on screen instructions for &amp;quot;MySQL&amp;quot;. '''DO NOT SET A PASSWORD''' for the root account.&lt;br /&gt;
&lt;br /&gt;
After the installation has completed open Firefox again and enter the URL: http://localhost/fog/management. You will then be prompted to install the database schema.  Click on the '''Install/Update Now''' button.&lt;br /&gt;
[[Image:0.29.schema.png]]&lt;br /&gt;
&lt;br /&gt;
When the schema is up to date, attempt to go to the URL: http://localhost/fog/management again. This time you should be prompted to login:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 username: '''fog''' &lt;br /&gt;
 password: '''password'''&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:0.29.login.png]]&lt;br /&gt;
&lt;br /&gt;
== Final preparation of the FOG server ==&lt;br /&gt;
&lt;br /&gt;
=== Making FOG accessible at the root of the server (optional) ===&lt;br /&gt;
&lt;br /&gt;
Edit the apache index.html via nano or your chosen editor: &amp;lt;pre&amp;gt;sudo nano -w /var/www/index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change the content to look like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
 &amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;meta http-equiv=&amp;quot;Refresh&amp;quot; content=&amp;quot;0; URL=fog/index.php&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save (ctrl+o), quit (ctrl+x) and you should now be able to access FOG at http://server-name-or-ip/.&lt;br /&gt;
&lt;br /&gt;
=== Increasing the PHP file size upload ===&lt;br /&gt;
After Ubuntu is installed, we need to modify the server to allow Snapin's of larger sizes.&lt;br /&gt;
&lt;br /&gt;
Modifying PHP for FOG Snapin use - http://www.fogproject.org/wiki/index.php/Managing_FOG#Ubuntu&lt;br /&gt;
&lt;br /&gt;
=== MySQL configuration ===&lt;br /&gt;
{{MySQL Configuration}}&lt;br /&gt;
&lt;br /&gt;
== Testing your installation ==&lt;br /&gt;
{{Testing your installation}}&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Moving_your_images_directory/Adding_Storage_to_the_Images_directory&amp;diff=7718</id>
		<title>Moving your images directory/Adding Storage to the Images directory</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Moving_your_images_directory/Adding_Storage_to_the_Images_directory&amp;diff=7718"/>
				<updated>2012-09-06T23:02:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: added section headers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Merge|target=Adding Storage to a FOG Server|discuss=Talk:Adding Storage to a FOG Server}}&lt;br /&gt;
==Overview==&lt;br /&gt;
If you need to add storage capacity to your images directory or you would like to replace your /images directory with a larger capacity array/hard drive here are the basic steps.  We are going through the steps on Ubuntu, but they should be very similar on Fedora.&lt;br /&gt;
&lt;br /&gt;
==Prepping the new disk==&lt;br /&gt;
*Determine the device node by running &lt;br /&gt;
 sudo fdisk -l&lt;br /&gt;
*Locate the entry the matches your device you are adding for something like /dev/sdX where X is a letter.&lt;br /&gt;
&lt;br /&gt;
*Make sure the device is formatted with ext3/4.  Your should see a partion listed like this:&lt;br /&gt;
    Device Boot      Start         End      Blocks   Id  System&lt;br /&gt;
 /dev/sdX1               1      121601   976760001   83  Linux&lt;br /&gt;
*If you have a partition that isn't either ext3/4, you will need to delete them with the following commands.  '''Note: This WILL make the data on the partition unreadable!'''&lt;br /&gt;
 sudo fdisk /dev/sdX&lt;br /&gt;
 p&lt;br /&gt;
*Take note the number of partitions you need to delete and for each of them do:&lt;br /&gt;
 d&lt;br /&gt;
 [parition number]&lt;br /&gt;
*When you are done removing the partitions type:&lt;br /&gt;
 w&lt;br /&gt;
 q&lt;br /&gt;
*At this point if you don't have any partitions on the disk we can create it with the following commands:&lt;br /&gt;
 sudo fdisk /dev/sdX&lt;br /&gt;
 n&lt;br /&gt;
 1&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 [enter]&lt;br /&gt;
 [enter]&lt;br /&gt;
 t&lt;br /&gt;
 83&lt;br /&gt;
 w&lt;br /&gt;
&lt;br /&gt;
*Now we can format our partition with:&lt;br /&gt;
&lt;br /&gt;
 mkfs.ext3  /dev/sdX1&lt;br /&gt;
&lt;br /&gt;
Please note the 1 at the end.&lt;br /&gt;
&lt;br /&gt;
*Now we are going to get the UUID of the device using:&lt;br /&gt;
&lt;br /&gt;
 sudo blkid /dev/sdX1&lt;br /&gt;
&lt;br /&gt;
record the UUID value&lt;br /&gt;
&lt;br /&gt;
==Moving images folder to new storage==&lt;br /&gt;
&lt;br /&gt;
*Move and recreate the image directory with:&lt;br /&gt;
&lt;br /&gt;
 sudo mv /images /images1&lt;br /&gt;
 sudo mkdir /images&lt;br /&gt;
&lt;br /&gt;
*Now we want to setup /etc/fstab to make sure the device gets mount during boot up.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/fstab&lt;br /&gt;
&lt;br /&gt;
or &lt;br /&gt;
&lt;br /&gt;
 sudo gedit /etc/fstab&lt;br /&gt;
&lt;br /&gt;
*Add the following line to the bottom&lt;br /&gt;
&lt;br /&gt;
 UUID=XXXXXXXXXXXXXXXXXXXXXX    /images      ext3 defaults 0 0&lt;br /&gt;
&lt;br /&gt;
*Mount it with:&lt;br /&gt;
&lt;br /&gt;
 sudo mount -a&lt;br /&gt;
&lt;br /&gt;
*Check that is mounted with:&lt;br /&gt;
&lt;br /&gt;
 mount&lt;br /&gt;
&lt;br /&gt;
*Copy your images back to your new directory &lt;br /&gt;
&lt;br /&gt;
 sudo cp -Rf /images1/* /images/&lt;br /&gt;
&lt;br /&gt;
*Change permissions with:&lt;br /&gt;
&lt;br /&gt;
 suco chown -R fog /images&lt;br /&gt;
 sudo chmod -R 755 /images&lt;br /&gt;
 sudo chmod -R 777 /images/dev&lt;br /&gt;
&lt;br /&gt;
If you want to just add capacity to your images directory, you could instead mount your new device as a subfolder of the /images directory.  In this case your wouldn't need to move the original directory to /images1, and your fstab line would look like:&lt;br /&gt;
&lt;br /&gt;
 UUID=XXXXXXXXXXXXXXXXXXXXXX    /images/newdisk      ext3 defaults 0 0&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Reset_WebUI_FOG_password&amp;diff=7711</id>
		<title>Reset WebUI FOG password</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Reset_WebUI_FOG_password&amp;diff=7711"/>
				<updated>2012-08-01T02:38:30Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: tidied up the article a bit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
If somehow you lose access to the FOG server web interface, you can use the following procedure to connect to the MySQL database and reset the password for any existing FOG user.  These user accounts and passwords are only for logging into the FOG server web interface and should not be confused with other fog users in the operating system.&lt;br /&gt;
&lt;br /&gt;
== Reset password ==&lt;br /&gt;
&lt;br /&gt;
On the FOG server where the MySQL &amp;quot;fog&amp;quot; database is installed, execute the commands:&lt;br /&gt;
&lt;br /&gt;
*If the root user in MySQL does not have a password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mysql -u root fog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If the root user in MySQL does have a password:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo mysql -u root -pROOTUSERPASSWORD fog&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Run this query to reset the password.  You can change users other than &amp;quot;fog&amp;quot; by changing the uName value in the query.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
UPDATE users SET uPass = MD5('password') WHERE uName = 'fog';&lt;br /&gt;
exit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Login to the WebUI with:&lt;br /&gt;
*Username: fog&lt;br /&gt;
*Password: password (or whatever you used in the query above inside the MD5 call)&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=User:Treydock&amp;diff=7710</id>
		<title>User:Treydock</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=User:Treydock&amp;diff=7710"/>
				<updated>2012-07-31T05:55:42Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;Are you still around and available to finish the article on Fog deployment nodes? ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Are you still around and available to finish the article on [[Fog deployment nodes]]? [[User:Chad-bisd|Chad-bisd]] 23:55, 30 July 2012 (MDT)&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Fog_deployment_nodes&amp;diff=7709</id>
		<title>Fog deployment nodes</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Fog_deployment_nodes&amp;diff=7709"/>
				<updated>2012-07-31T05:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: moved overview section to top and heading 2 level since page title is the only heading 1 preferred on the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
This article will cover how to extend the functionality of FOG to host multiple FOG &amp;quot;nodes&amp;quot; that are controlled by a central FOG &amp;quot;master&amp;quot;.  Much of the credit for this can be found on the page [[Multiple_TFTP_servers|Including multiple PXE / TFTP servers]].  What I've done is refined this process a bit, and also will cover some additional techniques for managing the nodes.&lt;br /&gt;
&lt;br /&gt;
Currently I operate 4 &amp;quot;nodes&amp;quot; and a single master.  Each node is dedicated to it's own building and/or department to allow them to perform their own imaging without the need to manage a full FOG install.  Where this differs slightly from the previously mentioned article is that these nodes can both capture and deploy images to their own subnets or use images from the master server.&lt;br /&gt;
&lt;br /&gt;
This setup has been tested and implemented using FOG-0.30 on CentOS 5.6 both i386 and x86_64 systems.&lt;br /&gt;
&lt;br /&gt;
==FOG Master Role==&lt;br /&gt;
The master has the following primary functions&lt;br /&gt;
* Web front end to manage FOG&lt;br /&gt;
* Controls all tasks for FOG nodes&lt;br /&gt;
* Provides the necessary PXE boot files and menus&lt;br /&gt;
* Capture and deploy images using DHCP, TFTP, and PXE&lt;br /&gt;
&lt;br /&gt;
== FOG Node Role ==&lt;br /&gt;
The nodes have the following functions&lt;br /&gt;
* Capture and deploy images using DHCP, TFTP, and PXE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Installing a FOG node =&lt;br /&gt;
The process for installing a node is identical to the normal install except for a few minor changes to the install scripts.&lt;br /&gt;
&lt;br /&gt;
In the fog_0.30 folder where the install files were extracted, you need to modify the '''bin/installfog.sh''' to add '''configureDHCP;''' and '''configureTFTPandPXE;''' under the &amp;quot;# Storage Node installation&amp;quot; section.&lt;br /&gt;
&lt;br /&gt;
Here is what the resulting list should look like.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            configureUsers;&lt;br /&gt;
            configureMinHttpd;&lt;br /&gt;
            configureStorage;&lt;br /&gt;
            configureNFS;&lt;br /&gt;
            configureDHCP;&lt;br /&gt;
            configureFTP;&lt;br /&gt;
            configureTFTPandPXE;&lt;br /&gt;
            configureUDPCast;&lt;br /&gt;
            installInitScript;&lt;br /&gt;
            installFOGServices;&lt;br /&gt;
            configureFOGService;&lt;br /&gt;
            sendInstallationNotice;&lt;br /&gt;
            writeUpdateFile;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You also need to add the appropriate packages to be installed at '''lib/redhat/config.sh'''.  On the line '''storageNodePackages''' add '''tftp-server dhcp'''.  Adjust this for your distribution.&lt;br /&gt;
&lt;br /&gt;
Here's the full line on my install&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
storageNodePackages=&amp;quot;httpd php php-cli mysql php-mysql nfs-utils vsftpd xinetd tar gzip make m4 gcc gcc-c++ lftp tftp-server dhcp&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Further Details =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a work in progress...more to come.&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Integrating_FOG_into_an_Existing_Network_in_non_intrusive_mode&amp;diff=7708</id>
		<title>Integrating FOG into an Existing Network in non intrusive mode</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Integrating_FOG_into_an_Existing_Network_in_non_intrusive_mode&amp;diff=7708"/>
				<updated>2012-07-30T05:00:40Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Installation */ fixed link to user guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
An existing network is assumed to have DHCP and DNS services already functioning on separate server(s), as well as full Internet connectivity. No changes will be required on existing infrastructure. Also network operation will not be affected. The only inconvenience is that in order to image computer one had to know it's MAC address.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The FOG installation makes several queries to resources on the Internet. The server must be connected to the Internet during the initial installation.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the base OS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Connect to the Internet and update the base OS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[FOGUserGuide#Installing_FOG|Install FOG]]&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;What type of installation would you like to do? [N] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Choose Normal. Read the on-screen explanation for details.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  What is the IP address to be used by this FOG Server? [current address]'''192.168.1.1'''&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Your server's current Internet address is displayed. It is better to use static IP address&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to setup a router address for the DHCP server? [Y/n] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to setup a DNS address for the DHCP server and client boot image? [Y/n] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to change the default network interface from eth0?&amp;lt;br&amp;gt;&lt;br /&gt;
:  If you are not sure, select No. [y/N] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This would allow us to keep one network card connected to the Internet, and use a second network card for the internal private network. This is beyond the scope of this guide.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to use the FOG server for dhcp service? [Y/n] Y&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes. This allows clients to get IP addresses on the network and connect to the FOG server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  This version of FOG has internationalization support, would you like to install the additional language packs? [Y/n]&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Choose Yes if you'd like to install additional languages&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;  #####################################################################&lt;br /&gt;
&lt;br /&gt;
  FOG now has everything it needs to setup your server, but please&lt;br /&gt;
  understand that this script will overwrite any setting you may&lt;br /&gt;
  have setup for services like DHCP, apache, pxe, tftp, and NFS.&lt;br /&gt;
  &lt;br /&gt;
  It is not recommended that you install this on a production system&lt;br /&gt;
  as this script modifies many of your system settings.&lt;br /&gt;
&lt;br /&gt;
  This script should be run by the root user on Fedora, or with sudo on Ubuntu.&lt;br /&gt;
&lt;br /&gt;
  Here are the settings FOG will use:&lt;br /&gt;
         Distro: Ubuntu&lt;br /&gt;
         Installation Type: Normal Server&lt;br /&gt;
         Server IP Address: X.X.X.X (your IP address)&lt;br /&gt;
         DHCP router Address: &lt;br /&gt;
         DHCP DNS Address: &lt;br /&gt;
         Interface: eth0&lt;br /&gt;
         Using FOG DHCP: 1&lt;br /&gt;
         Internationalization: 1&lt;br /&gt;
&lt;br /&gt;
  Are you sure you wish to continue (Y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If it all looks good, enter Y&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
  Installation Started...&lt;br /&gt;
&lt;br /&gt;
  Installing required packages, if this fails&lt;br /&gt;
  make sure you have an active internet connection.&lt;br /&gt;
&lt;br /&gt;
  * Preparing apt-get&lt;br /&gt;
  * Installing package: apache2&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
...&amp;lt;/pre&amp;gt;The install continues...&amp;lt;br&amp;gt;&lt;br /&gt;
The following message is displayed:&amp;lt;pre&amp;gt;  * Installing package: mysql-server&lt;br /&gt;
&lt;br /&gt;
     We are about to install MySQL Server on &lt;br /&gt;
     this server, if MySQL isn't installed already&lt;br /&gt;
     you will be prompted for a root password.  If&lt;br /&gt;
     you don't leave it blank you will need to change&lt;br /&gt;
     it in the config.php file located at:&lt;br /&gt;
     &lt;br /&gt;
     /var/www/fog/commons/config.php&lt;br /&gt;
&lt;br /&gt;
     Press enter to acknowledge this message.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Just press enter a couple times.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt; Send notification? (Y/N)y&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;  * Thank you, sending notification...&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In one person's experience, this step freezes more often than not. If you choose Yes and it takes longer than a few seconds, it is likely frozen. &lt;br /&gt;
Here is a solution: [[Thank_you,_sending_notification]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Setup complete!&lt;br /&gt;
&lt;br /&gt;
  You still need to install/update your database schema.&lt;br /&gt;
  This can be done by opening a web browser and going to:&lt;br /&gt;
&lt;br /&gt;
      http://192.168.1.5/fog/management&lt;br /&gt;
&lt;br /&gt;
      Default User:&lt;br /&gt;
             Username: fog&lt;br /&gt;
             Password: password&lt;br /&gt;
&lt;br /&gt;
$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Immediately stop Fog's DHCP server not to affect the network&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Edit Fog's dhcpd.conf the following way:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# DHCP Server Configuration file.&lt;br /&gt;
# see /usr/share/doc/dhcp*/dhcpd.conf.sample&lt;br /&gt;
# This file was created by FOG&lt;br /&gt;
use-host-decl-names on;&lt;br /&gt;
ddns-update-style interim;&lt;br /&gt;
ignore client-updates;&lt;br /&gt;
# Fog's IP address:&lt;br /&gt;
next-server 172.16.23.195; &lt;br /&gt;
&lt;br /&gt;
# Subnet where you are going to use Fog&lt;br /&gt;
subnet 172.16.23.0 netmask 255.255.255.0 {&lt;br /&gt;
        option subnet-mask              255.255.255.0;&lt;br /&gt;
        default-lease-time 21600;&lt;br /&gt;
        max-lease-time 43200;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# This machine will receive DHCP offer from Fog's DHCP&lt;br /&gt;
host optiplex990_1 {&lt;br /&gt;
        hardware ethernet 78:2B:CB:CC:CC:CC;&lt;br /&gt;
        fixed-address 172.16.23.251;&lt;br /&gt;
        option host-name &amp;quot;test1&amp;quot;;&lt;br /&gt;
        filename &amp;quot;pxelinux.0&amp;quot;;&lt;br /&gt;
        #Default router (if needed)&lt;br /&gt;
        option routers      172.16.23.1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Start Fog's dhcpd server&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Ensure that only machine which MAC address were entered to dhcpd.conf can receive DHCP offer from Fog server&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you want to add another machine edit dhcpd.conf and add the new host section:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host NewHost {&lt;br /&gt;
        hardware ethernet 78:2B:CB:CC:CC:1F;&lt;br /&gt;
        fixed-address 172.16.23.252;&lt;br /&gt;
        option host-name &amp;quot;test2&amp;quot;;&lt;br /&gt;
        filename &amp;quot;pxelinux.0&amp;quot;;&lt;br /&gt;
        #Default router (if needed)&lt;br /&gt;
        option routers      172.16.23.1;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating config files for non-empty MySQL root password ==&lt;br /&gt;
{{Updating config files for non-empty MySQL root password}}&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Integrating_FOG_into_an_Existing_Network&amp;diff=7707</id>
		<title>Integrating FOG into an Existing Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Integrating_FOG_into_an_Existing_Network&amp;diff=7707"/>
				<updated>2012-07-30T04:59:55Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Added overview and section header for installation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
An existing network is assumed to have DHCP and DNS services already functioning on separate server(s), as well as full Internet connectivity. Changes will have to be made on the DHCP server to forward PXE traffic to the FOG server. See [[Modifying existing DHCP server to work with FOG]] for assistance with this setting.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The FOG installation makes several queries to resources on the Internet. The server must be connected to the Internet during the initial installation.&lt;br /&gt;
== Installation ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the base OS and set a static IP address for this server&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Connect to the Internet and update the base OS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[FOGUserGuide#Installing_FOG|Install FOG]]&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;What type of installation would you like to do? [N] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Choose Normal. Read the on-screen explanation for details.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;What is the IP address to be used by this FOG Server? [current address]&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Your server's current Internet address is pre-filled. Just press enter to accept it.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;Would you like to setup a router address for the DHCP server? [Y/n] Y&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
We assumed there is already exists a DHCP server, so choose yes.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;LI&amp;gt;&amp;lt;tt&amp;gt;What is the IP address to be used for the router on the DHCP server? [preFilled?] type.your.DHCP.address&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Enter the IP address of your network's DHCP server. FOG may have filled this in automatically.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;Would you like to setup a DNS address for the DHCP server and client boot image? [Y/n] y&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Enter the IP address of your network's DNS server. FOG may have filled this in automatically.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;What is the IP address to be used for DNS on the DHCP server and client boot image? [preFilled?] type.your.DNS.address&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Enter the IP address of your network's DHCP server. FOG may have filled this in automatically.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to change the default network interface from eth0?&amp;lt;br&amp;gt;&lt;br /&gt;
:  If you are not sure, select No. [y/N] n&amp;lt;/tt&amp;gt;&lt;br /&gt;
This would allow us to have multiple network cards. This is beyond the scope of this simple guide.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;Would you like to use the FOG server for dhcp service? [Y/n] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No. DHCP addresses will be provided by the infrastructure's DHCP server. Having multiple DHCP servers on a single network causes a race condition for the clients, and potentially conflicting IP addresses if they are issuing out addresses within the same range.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;  DHCP will not be setup but you must setup your&lt;br /&gt;
  current DHCP server to use FOG for pxe services.&lt;br /&gt;
&lt;br /&gt;
  On a Linux DHCP server you must set:&lt;br /&gt;
      next-server&lt;br /&gt;
&lt;br /&gt;
  On a Windows DHCP server you must set:&lt;br /&gt;
      option 066 &amp;amp; 067&amp;lt;/pre&amp;gt;&lt;br /&gt;
Noted. Be sure to work with the DHCP admins to get PXE services forwarding to your FOG server. See [[FOGUserGuide#Modifying_existing_DHCP_server_to_work_with_FOG|Modifying existing DHCP server to work with FOG]] for assistance with this.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  This version of FOG has internationalization support, would you like to install the additional language packs? [Y/n]&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Choose Yes if you'd like to install additional languages&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;  #####################################################################&lt;br /&gt;
&lt;br /&gt;
  FOG now has everything it needs to setup your server, but please&lt;br /&gt;
  understand that this script will overwrite any setting you may&lt;br /&gt;
  have setup for services like DHCP, apache, pxe, tftp, and NFS.&lt;br /&gt;
  &lt;br /&gt;
  It is not recommended that you install this on a production system&lt;br /&gt;
  as this script modifies many of your system settings.&lt;br /&gt;
&lt;br /&gt;
  This script should be run by the root user on Fedora, or with sudo on Ubuntu.&lt;br /&gt;
&lt;br /&gt;
  Here are the settings FOG will use:&lt;br /&gt;
         Distro: Ubuntu&lt;br /&gt;
         Installation Type: Normal Server&lt;br /&gt;
         Server IP Address: your.FOG.server.address&lt;br /&gt;
         DHCP router Address: your.DHCP.address&lt;br /&gt;
         DHCP DNS Address: your.DNS.address&lt;br /&gt;
         Interface: eth0&lt;br /&gt;
         Using FOG DHCP: 0&lt;br /&gt;
         Internationalization: 1&lt;br /&gt;
&lt;br /&gt;
  Are you sure you wish to continue (Y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If it all looks good, enter Y&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
  Installation Started...&lt;br /&gt;
&lt;br /&gt;
  Installing required packages, if this fails&lt;br /&gt;
  make sure you have an active internet connection.&lt;br /&gt;
&lt;br /&gt;
  * Preparing apt-get&lt;br /&gt;
  * Installing package: apache2&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
...&amp;lt;/pre&amp;gt;The install continues...&amp;lt;br&amp;gt;&lt;br /&gt;
The following message is displayed:&amp;lt;pre&amp;gt;  * Installing package: mysql-server&lt;br /&gt;
&lt;br /&gt;
     We are about to install MySQL Server on &lt;br /&gt;
     this server, if MySQL isn't installed already&lt;br /&gt;
     you will be prompted for a root password.  If&lt;br /&gt;
     you don't leave it blank you will need to change&lt;br /&gt;
     it in the config.php file located at:&lt;br /&gt;
     &lt;br /&gt;
     /var/www/fog/commons/config.php&lt;br /&gt;
&lt;br /&gt;
     Press enter to acknowledge this message.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Choose a root password for your MySQL service. Take note of the file name above as it will have to be edited post-install.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt; Send notification? (Y/N)y&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;  * Thank you, sending notification...&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In one person's experience, this step freezes more often than not. If you choose Yes and it takes longer than a few seconds, it is likely frozen. &lt;br /&gt;
Here is a solution: [[Thank_you,_sending_notification]]&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
The Installation script is complete:&lt;br /&gt;
&amp;lt;pre&amp;gt;Done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Setup complete!&lt;br /&gt;
&lt;br /&gt;
  You still need to install/update your database schema.&lt;br /&gt;
  This can be done by opening a web browser and going to:&lt;br /&gt;
&lt;br /&gt;
      http://192.168.1.5/fog/management&lt;br /&gt;
&lt;br /&gt;
      Default User:&lt;br /&gt;
             Username: fog&lt;br /&gt;
             Password: password&lt;br /&gt;
&lt;br /&gt;
$&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
==Updating config files for non-empty MySQL root password==&lt;br /&gt;
{{Updating config files for non-empty MySQL root password}}&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=FOG_on_an_Isolated_Network&amp;diff=7706</id>
		<title>FOG on an Isolated Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=FOG_on_an_Isolated_Network&amp;diff=7706"/>
				<updated>2012-07-30T04:57:08Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Installation */ updated link to section in fog user guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
The physical layout of this type of installation is a server (or robust desktop), a high-speed multi-port switch, a handful of Ethernet cables, and of course your target machines.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Note: The FOG installation makes several queries to resources on the Internet. The server must be connected to the Internet during the initial installation. In the example below, we are removing that connectivity after installation. This will break a few built-in features such as ClamAV updating.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
== Installation ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the base OS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Connect to the Internet and update the base OS&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[FOGUserGuide#Installing_FOG|Install FOG]]&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;What type of installation would you like to do? [N] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Choose Normal. Read the on-screen explanation for details.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  What is the IP address to be used by this FOG Server? [current address]'''192.168.1.1'''&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Your server's current Internet address is displayed. When FOG is installed we will be disconnecting from the Internet and defining our own private IP address. Enter your future static IP private address: 192.168.1.1&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to setup a router address for the DHCP server? [Y/n] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No. A router is not part of this simple isolated network.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to setup a DNS address for the DHCP server and client boot image? [Y/n] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
No. Also unnecessary in this simple network&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to change the default network interface from eth0?&amp;lt;br&amp;gt;&lt;br /&gt;
:  If you are not sure, select No. [y/N] n&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This would allow us to keep one network card connected to the Internet, and use a second network card for the internal private network. This is beyond the scope of this simple guide.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  Would you like to use the FOG server for dhcp service? [Y/n] Y&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Yes. This allows clients to get IP addresses on our private network and connect to the FOG server.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;  This version of FOG has internationalization support, would you like to install the additional language packs? [Y/n]&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Choose Yes if you'd like to install additional languages&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;  #####################################################################&lt;br /&gt;
&lt;br /&gt;
  FOG now has everything it needs to setup your server, but please&lt;br /&gt;
  understand that this script will overwrite any setting you may&lt;br /&gt;
  have setup for services like DHCP, apache, pxe, tftp, and NFS.&lt;br /&gt;
  &lt;br /&gt;
  It is not recommended that you install this on a production system&lt;br /&gt;
  as this script modifies many of your system settings.&lt;br /&gt;
&lt;br /&gt;
  This script should be run by the root user on Fedora, or with sudo on Ubuntu.&lt;br /&gt;
&lt;br /&gt;
  Here are the settings FOG will use:&lt;br /&gt;
         Distro: Ubuntu&lt;br /&gt;
         Installation Type: Normal Server&lt;br /&gt;
         Server IP Address: 192.168.1.1&lt;br /&gt;
         DHCP router Address: &lt;br /&gt;
         DHCP DNS Address: &lt;br /&gt;
         Interface: eth0&lt;br /&gt;
         Using FOG DHCP: 1&lt;br /&gt;
         Internationalization: 1&lt;br /&gt;
&lt;br /&gt;
  Are you sure you wish to continue (Y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If it all looks good, enter Y&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
  Installation Started...&lt;br /&gt;
&lt;br /&gt;
  Installing required packages, if this fails&lt;br /&gt;
  make sure you have an active internet connection.&lt;br /&gt;
&lt;br /&gt;
  * Preparing apt-get&lt;br /&gt;
  * Installing package: apache2&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
...&amp;lt;/pre&amp;gt;The install continues...&amp;lt;br&amp;gt;&lt;br /&gt;
The following message is displayed:&amp;lt;pre&amp;gt;  * Installing package: mysql-server&lt;br /&gt;
&lt;br /&gt;
     We are about to install MySQL Server on &lt;br /&gt;
     this server, if MySQL isn't installed already&lt;br /&gt;
     you will be prompted for a root password.  If&lt;br /&gt;
     you don't leave it blank you will need to change&lt;br /&gt;
     it in the config.php file located at:&lt;br /&gt;
     &lt;br /&gt;
     /var/www/fog/commons/config.php&lt;br /&gt;
&lt;br /&gt;
     Press enter to acknowledge this message.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Just press enter a couple times. We will not be setting a MySQL password since this is your own private network.&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt; Send notification? (Y/N)y&amp;lt;br&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
::&amp;lt;tt&amp;gt;  * Thank you, sending notification...&amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
In one person's experience, this step freezes more often than not. If you choose Yes and it takes longer than a few seconds, it is likely frozen. &lt;br /&gt;
Here is a solution: [[Thank_you,_sending_notification]]&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  Setup complete!&lt;br /&gt;
&lt;br /&gt;
  You still need to install/update your database schema.&lt;br /&gt;
  This can be done by opening a web browser and going to:&lt;br /&gt;
&lt;br /&gt;
      http://192.168.1.5/fog/management&lt;br /&gt;
&lt;br /&gt;
      Default User:&lt;br /&gt;
             Username: fog&lt;br /&gt;
             Password: password&lt;br /&gt;
&lt;br /&gt;
$&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Updating config files for non-empty MySQL root password ==&lt;br /&gt;
{{Updating_config_files_for_non-empty_MySQL_root_password}}&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Template:Updating_config_files_for_non-empty_MySQL_root_password&amp;diff=7697</id>
		<title>Template:Updating config files for non-empty MySQL root password</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Template:Updating_config_files_for_non-empty_MySQL_root_password&amp;diff=7697"/>
				<updated>2012-07-30T04:25:41Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: removed extra &amp;quot;password' in the instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you choose to set a password for the MySQL root user, there are two files that must be updated on the server.  This only applies to the &amp;quot;N&amp;quot; (Normal) installation mode.  FOG servers installed in &amp;quot;S&amp;quot; (storage) mode will use the &amp;quot;fogstorage&amp;quot; username and appropriate password to connect back to the MySQL database on the main fog server.&lt;br /&gt;
&lt;br /&gt;
edit &amp;lt;tt&amp;gt;     /var/www/fog/commons/config.php&amp;lt;/tt&amp;gt; and enter your MySQL root password in this line:&amp;lt;pre&amp;gt;define( &amp;quot;MYSQL_PASSWORD&amp;quot;, &amp;quot;password&amp;quot; );&amp;lt;/pre&amp;gt;&lt;br /&gt;
edit &amp;lt;tt&amp;gt;     /opt/fog/service/etc/config.php&amp;lt;/tt&amp;gt; and enter your MySQL root password in this line:&amp;lt;pre&amp;gt;define( &amp;quot;MYSQL_PASSWORD&amp;quot;, &amp;quot;password&amp;quot; );&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_10.10&amp;diff=7693</id>
		<title>Ubuntu 10.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_10.10&amp;diff=7693"/>
				<updated>2012-07-30T03:47:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: initial creation: moved 10.10 specific info out of the 10.04 LTS article.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
Installing FOG on Ubuntu 10.10 follows the same steps as installing FOG on [[Ubuntu 10.04|Ubuntu 10.04 LTS]], with the following exceptions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PCMCIA NIC initialization issue (Ubuntu issue) ==&lt;br /&gt;
&lt;br /&gt;
The installer for Ubuntu 10.10 server properly initializes PCMCIA NICs during the installation process, but it does not configure the server to automatically initialize the NICs after installation is completed.  Therefore when the server starts up, it has no network connectivity.&lt;br /&gt;
&lt;br /&gt;
There are two ways to work around this:&lt;br /&gt;
&lt;br /&gt;
#The easy way - Use the &amp;quot;Alternate Install&amp;quot; disc, currently at version 10.04.01 LTS.  Select the language that you want.  Before clicking &amp;quot;Install&amp;quot;, press F4 and select &amp;quot;Install a command-line system&amp;quot;.  Now click &amp;quot;Install&amp;quot;.  The installer on this CD will automatically set up the server to properly initialize the PCMCIA NICs.&lt;br /&gt;
#The harder way - Use the &amp;quot;Server&amp;quot; installation disc but add the &amp;quot;pcmciautils&amp;quot; package, which automagically fixes this problem.  The machine will need an active Internet connection in order to download this package.  Go through most of the installation steps in the normal way.  When it prompts you to install the boot loader, press the F2 key to open another console.  Type the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install pcmciautils&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_11.04&amp;diff=7690</id>
		<title>Ubuntu 11.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Ubuntu_11.04&amp;diff=7690"/>
				<updated>2012-07-30T03:43:51Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: added link to 10.04 LTS install article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
&lt;br /&gt;
Installing FOG on Ubuntu 11.04 follows the same steps as [[Ubuntu 10.04|installing FOG on 10.04 LTS]] with these exceptions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- more might be added later, which is why the heading/subheading is used even though there is only 1 subheading initially --&amp;gt;&lt;br /&gt;
== Known (FOG) version issues ==&lt;br /&gt;
=== FOG 0.31 ===&lt;br /&gt;
==== dhcp3-server to isc-dhcp-server ====&lt;br /&gt;
&lt;br /&gt;
With Ubuntu 11.04, the standard dhcp package was changed to isc-dhcp-server. FOG 0.31 only looks for isc-dhcp-server (this was fixed in .32), therefore to use FOG version .31  with Ubuntu 11.04 you will need to edit the following files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/opt/fog_0.31/lib/ubuntu/config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|Line&lt;br /&gt;
|Original&lt;br /&gt;
|Change&lt;br /&gt;
|-&lt;br /&gt;
|24&lt;br /&gt;
|isc-dhcp-server&lt;br /&gt;
|dhcp3-server&lt;br /&gt;
|-&lt;br /&gt;
|27&lt;br /&gt;
|isc-dhcp-server&lt;br /&gt;
|dhcp3-server&lt;br /&gt;
|-&lt;br /&gt;
|46&lt;br /&gt;
|/etc/dhcp/dhcpd.conf&lt;br /&gt;
|/etc/dhcp3/dhcpd.conf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/opt/fog_0.31/lib/ubuntu/function.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|Line&lt;br /&gt;
|Original&lt;br /&gt;
|Change&lt;br /&gt;
|-&lt;br /&gt;
|353&lt;br /&gt;
|isc-dhcp-server&lt;br /&gt;
|dhcp3-server&lt;br /&gt;
|-&lt;br /&gt;
|354&lt;br /&gt;
|isc-dhcp-server&lt;br /&gt;
|dhcp3-server&lt;br /&gt;
|-&lt;br /&gt;
|355&lt;br /&gt;
|isc-dhcp-server&lt;br /&gt;
|dhcp3-server&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Talk:Integrating_FOG_into_an_Existing_Network&amp;diff=7684</id>
		<title>Talk:Integrating FOG into an Existing Network</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Talk:Integrating_FOG_into_an_Existing_Network&amp;diff=7684"/>
				<updated>2012-07-30T02:18:42Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;==Rewrite Needed?== I think this article needs a rewrite.  It should list what is different than the isolated network install only and link back or transclude the appropriate ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Rewrite Needed?==&lt;br /&gt;
I think this article needs a rewrite.  It should list what is different than the isolated network install only and link back or transclude the appropriate information to keep from duplicating info that may become out of date if it's not edited in all the different places. [[User:Chad-bisd|Chad-bisd]] 20:18, 29 July 2012 (MDT)&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Template:Testing_your_installation&amp;diff=7673</id>
		<title>Template:Testing your installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Template:Testing_your_installation&amp;diff=7673"/>
				<updated>2012-07-30T01:19:35Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Initial creation: moving this to a template because it could be reused in various installation articles but is non-specific enough to allow transclusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Now that everything is installed, you will need a client to test your installation.&lt;br /&gt;
&lt;br /&gt;
#On a client, change the boot order to boot from network or PXE boot as the first boot device.&lt;br /&gt;
#You may also need to enable network booting in some BIOSes&lt;br /&gt;
#Boot up the computer and you should see the FOG boot menu that will give you a few options&lt;br /&gt;
#select '''memory test''' and if memtest loads you should be ready to run!&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Template:MySQL_Configuration&amp;diff=7672</id>
		<title>Template:MySQL Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Template:MySQL_Configuration&amp;diff=7672"/>
				<updated>2012-07-30T01:17:12Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: removed header layer to make the template more flexible by allowing the transcluding page to set the header level&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MySQL needs to be setup to accept connections from remote machines. This is not the default behaviour on many distros.&lt;br /&gt;
&lt;br /&gt;
Check the file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/mysql/my.cnf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and look for the line beginning with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bind-address=&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This should read:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bind-address=&amp;lt;IP of FOG Server&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rather than:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;bind-address=127.0.0.1 or bind-address=localhost&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remember to restart MySQL if you make changes to this file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo /etc/init.d/mysql restart&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Talk:Ubuntu_10.04&amp;diff=7669</id>
		<title>Talk:Ubuntu 10.04</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Talk:Ubuntu_10.04&amp;diff=7669"/>
				<updated>2012-07-30T00:50:18Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 11.04 info on the 10.04 page ==&lt;br /&gt;
It is my thought that the 11.04 info be removed from this page and moved to the article on 11.04 install, which should be created if not already present.  As it stands now, it's just confusing and the line seems to be inserted fro nowhere. [[User:Chad-bisd|Chad-bisd]] 18:50, 29 July 2012 (MDT)&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
Question:&lt;br /&gt;
&lt;br /&gt;
during isntallation, there are 2 questions I don't understand and don't know what to enter.&lt;br /&gt;
&lt;br /&gt;
The installer will ask if you would like to enter a router address for DHCP, if you would like to press y and press enter, then enter the address, then press enter.&lt;br /&gt;
The installer will ask if you would like to enter a DNS address for DHCP and the boot image, if you would like to press y and press enter, then enter the address, then press enter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If I am NOT going to use the server as DHCP server, do I need to put here th eDHCP and DNS of my own?&lt;br /&gt;
&lt;br /&gt;
The question is tricky for me.&lt;br /&gt;
&lt;br /&gt;
== Why ask questions on a wiki discussion page??? ==&lt;br /&gt;
&lt;br /&gt;
The wiki is akin to 'the manual' and these discussion tabs are intended to discuss proposed changes to or comments about the manual. Please use the forum:&lt;br /&gt;
http://www.fogproject.org/forum/&lt;br /&gt;
[[User:Itismike|Itismike]] 23:26, 7 July 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Password_Central&amp;diff=7666</id>
		<title>Password Central</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Password_Central&amp;diff=7666"/>
				<updated>2012-07-12T16:24:19Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Common Knowledge */ removed reference to old forum post since old forum is no longer visible.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= This page is a work in progress - feel free to help! =&lt;br /&gt;
See the Discussions tab at the top for templates and known password locations.&lt;br /&gt;
And please, feel free to make adjustments and add content!&amp;lt;HR&amp;gt;&lt;br /&gt;
FOG relies on many passwords. On a simple installation most of these are handled automatically. On more advanced installations troubleshooting password mismatches can be challenging. The page linked below aims to be a single resource to explain all passwords necessary for FOG in all its various configurations.&lt;br /&gt;
=== Common Knowledge ===&lt;br /&gt;
&lt;br /&gt;
The only password that is encrypted in FOG is the password used for joining computers to a domain; Info-&amp;gt;FOG Settings-&amp;gt;Active Directory Defaults; all other passwords are listed in plain text.&lt;br /&gt;
&lt;br /&gt;
=== Basic Installation ===&lt;br /&gt;
====&amp;lt;!-- A simple explanation of the password --&amp;gt;Fog's user account on main FOG server====&lt;br /&gt;
	&amp;lt;!-- Additional explanation, if necessary --&amp;gt;This is a standard user account on the server. It is named 'fog'&amp;lt;br&amp;gt;&lt;br /&gt;
Common errors associated with this mismatched password:&lt;br /&gt;
	&amp;lt;ul&amp;gt;&lt;br /&gt;
		&amp;lt;li&amp;gt;&amp;lt;!-- first likely error --&amp;gt;FOG can't do anything&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li&amp;gt;&amp;lt;!-- second likely error --&amp;gt;Unexpected, strange errors&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li&amp;gt;&amp;lt;!-- third likely error, etc --&amp;gt;...&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
How to modify this password:&lt;br /&gt;
:The location varies per operating system.&lt;br /&gt;
:To reset it, type this at the command line on the Main FOG server:&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo passwd fog&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====FOG user on web interface====&lt;br /&gt;
Common errors associated with a mismatched password:&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Can't log into FOG web interface&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;...&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;How to update it:&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;tt&amp;gt;sudo ...&amp;lt;/tt&amp;gt;&lt;br /&gt;
====MySQL root user ====&lt;br /&gt;
The MySQL root user is normally only used on the main Fog server.  Storage nodes use the &amp;lt;tt&amp;gt;fogstorage&amp;lt;/tt&amp;gt; user instead of root.&lt;br /&gt;
&lt;br /&gt;
Common errors associated with a mismatched password:&lt;br /&gt;
&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;pre&amp;gt;Unable to connect to Database &lt;br /&gt;
Msg: Failed to connect to server: localhost Server returned: Access denied for user 'root'@'localhost' (using password: YES) &amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;[https://sourceforge.net/projects/freeghost/forums/forum/716419/topic/4859086/index/page/1 Scheduled Tasks fail to run]&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
How to update it:&amp;lt;br&amp;gt;&lt;br /&gt;
:Changing the root admin password in MySQL is not simple. It's a lot easier to enter a known root password in the file mentioned below. This is an older guide, but might be helpful if a root password is lost:&lt;br /&gt;
http://www.debian-administration.org/articles/442&lt;br /&gt;
&amp;lt;ul&amp;gt;Additional notes&amp;lt;li&amp;gt;In a private network this is usually not set. The installer urges a blank password.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The password is also in the following files:&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;/var/www/fog/commons/config.php&amp;lt;/tt&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;/opt/fog/service/etc/config.php&amp;lt;/tt&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====FOG Quick Image password====&lt;br /&gt;
How to update it:&amp;lt;br&amp;gt;&lt;br /&gt;
From the GUI: &lt;br /&gt;
:About &amp;gt; PXE Boot Menu &amp;gt; &lt;br /&gt;
From command line (note this will be overwritten if the GUI is updated)&lt;br /&gt;
:&amp;lt;tt&amp;gt;sudo vi tftpboot\pxelinux.cfg\default&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Additional Passwords Outside of a Basic Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Storage Nodes ===&lt;br /&gt;
====FOG user account on storage node====&lt;br /&gt;
	&amp;lt;ul&amp;gt;Common errors associated with this mismatched password:&lt;br /&gt;
		&amp;lt;li&amp;gt;&amp;lt;unknown&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
How to update it:&lt;br /&gt;
:On the Storage Node: &amp;lt;tt&amp;gt;sudo passwd fog&amp;lt;/tt&amp;gt;&lt;br /&gt;
====MySQL connector back to Main FOG server====&lt;br /&gt;
	&amp;lt;ul&amp;gt;Common errors associated with this mismatched password:&lt;br /&gt;
		&amp;lt;li&amp;gt;&amp;lt;tt&amp;gt;/images/&amp;lt;/tt&amp;gt; directory does not update - contains no images&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li&amp;gt;...&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
How to update it:&lt;br /&gt;
&amp;lt;pre&amp;gt;vi /var/www/fog/commons/config.php&lt;br /&gt;
define( &amp;quot;MYSQL_DATABASE&amp;quot;, &amp;quot;fog&amp;quot; ); &lt;br /&gt;
define( &amp;quot;MYSQL_USERNAME&amp;quot;, &amp;quot;fogstorage&amp;quot; ); &lt;br /&gt;
define( &amp;quot;MYSQL_PASSWORD&amp;quot;, &amp;quot;b83cd3&amp;quot; );&amp;lt;/pre&amp;gt;&lt;br /&gt;
====FTP Connection from Storage Node to Master FOG Server====&lt;br /&gt;
	&amp;lt;ul&amp;gt;Common errors associated with this mismatched password:&lt;br /&gt;
		&amp;lt;li&amp;gt;&amp;lt;unknown at this time&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
How to test it:&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;On the Master FOG Server, copy the password from this file: &lt;br /&gt;
&amp;lt;pre&amp;gt;cat /var/www/fog/commons/config.php&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
define( &amp;quot;STORAGE_FTP_USERNAME&amp;quot;, &amp;quot;fog&amp;quot; );&lt;br /&gt;
define( &amp;quot;STORAGE_FTP_PASSWORD&amp;quot;, &amp;quot;[---------longPassword---------]&amp;quot; );&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Using the above credentials, attempt an FTP session back to the Main FOG Server&amp;lt;br&amp;gt;&lt;br /&gt;
From the Storage Node:&amp;lt;pre&amp;gt;ftp [FOG_Main_Server_IPAddr]&lt;br /&gt;
Connected to [IPAddr].&lt;br /&gt;
220 (vsFTPd 2.2.2)&lt;br /&gt;
Name ([IPAddr]:[user]):fog&lt;br /&gt;
331 Please specify the password.&lt;br /&gt;
Password: [paste that longPassword from above]&lt;br /&gt;
230 Login successful.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/LI&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
To verify that FTP is functional:&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;li&amp;gt;&amp;lt;unknown at this time&amp;gt;&amp;lt;/LI&amp;gt;&lt;br /&gt;
&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Dell_Dimension_2400_with_Broadcom_4401_Onboard_NIC/Cisco_Catalyst_2950_Switch&amp;diff=7662</id>
		<title>Dell Dimension 2400 with Broadcom 4401 Onboard NIC/Cisco Catalyst 2950 Switch</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Dell_Dimension_2400_with_Broadcom_4401_Onboard_NIC/Cisco_Catalyst_2950_Switch&amp;diff=7662"/>
				<updated>2012-06-27T06:02:23Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: added info about portfast and STP settings.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ethernet card takes too long to negotiate with Cisco switch and fails to get DHCP Address. '''Resolution''': Press ''Pause/Break'' on keyboard after BIOS until port is negotiated on switch (port is green), hit ESC, and DHCP will get address.&lt;br /&gt;
&lt;br /&gt;
Another option might be to adjust your spanning tree protocol (STP) settings to allow portfast for all non-uplink ports (ports that connect to a leaf object, not another switch/router).&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Managing_FOG&amp;diff=7661</id>
		<title>Managing FOG</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Managing_FOG&amp;diff=7661"/>
				<updated>2012-06-27T05:57:21Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Installing the Node */  added username and password info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Managing FOG ==&lt;br /&gt;
&lt;br /&gt;
=== Dashboard ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
[[Image:fogmainpage.jpg]]&lt;br /&gt;
&lt;br /&gt;
The FOG dashboard is the first page you are presented with after login.  This page just gives you an overview of what is happening on your FOG server.&lt;br /&gt;
&lt;br /&gt;
==== System Overview ====&lt;br /&gt;
&lt;br /&gt;
The system overview box is the the top left hand box on this page.  The information presented in this box is the current user, the server IP addresse or hostnames for your web server, tftp server and storage server (which can all be different).  This section also gives you the system uptime or how long the system has been running without restart, the number of users logged into the Linux box, and lastly the system load.  &lt;br /&gt;
&lt;br /&gt;
==== System Activity ====&lt;br /&gt;
&lt;br /&gt;
The system activity box is in the top row, the middle box.  What this section shows is the unicast queue, or the number of unicast downloads that are currently in progress, which on a default setup, the maximum value is 10.  This means that after 10 hosts are receiving images (at once) the 11th will wait for one of the hosts in progress to complete before starting.  The reason this was created was so that you could queue up 100 machines with different images (all unicast) and still keep the system functional.  We have heard of this queue being used to re-image an entire building of computers ( ~ 1000+ ) overnight.  This section only updates on page refresh, and not in real time.&lt;br /&gt;
&lt;br /&gt;
==== Disk Information ====&lt;br /&gt;
&lt;br /&gt;
The disk information box is the top, right hand section of the dashboard page.  This is a semi-realtime display of the storage remaining on the storage server.  If you get an error in this box, please see [[Dashboard Error: Permission denied...]]&lt;br /&gt;
&lt;br /&gt;
==== 30 Day Imaging History ====&lt;br /&gt;
&lt;br /&gt;
This image shows your imaging trends for the past 30 days&lt;br /&gt;
&lt;br /&gt;
==== Menu Bar ====&lt;br /&gt;
&lt;br /&gt;
[[Image:fogmenu.jpg]]&lt;br /&gt;
&lt;br /&gt;
This menu appears at the top of every page on Fog's web UI. The icons are, from left to right:&lt;br /&gt;
&lt;br /&gt;
'''Home/Dashboard''' -  This is the home screen of the FOG management portal.&lt;br /&gt;
&lt;br /&gt;
'''Users''' - Individual administrators of the FOG resources.&lt;br /&gt;
&lt;br /&gt;
'''Hosts''' - This section houses the hosts, which are the pcs to be imaged or to extract images from.&lt;br /&gt;
&lt;br /&gt;
'''Groups''' - This section houses groups, which are similar PCS’ that need tasks done en-masse.&lt;br /&gt;
&lt;br /&gt;
'''Images''' - This section allows you to manage the image files stored on the FOG server.&lt;br /&gt;
&lt;br /&gt;
'''Storage Management''' - This section allows you to add/remove storage nodes from the FOG system.&lt;br /&gt;
&lt;br /&gt;
'''Snap-ins''' - This section provides ways to automate various post-imaging tasks, not covered in this document&lt;br /&gt;
&lt;br /&gt;
'''Printers'''' - This section allows for management of printers, allowing you create printer objects that can later be assigned to hosts or groups.&lt;br /&gt;
&lt;br /&gt;
'''FOG Service Configuration'''' - This section allows you to control how the client service functions.&lt;br /&gt;
&lt;br /&gt;
'''Tasks''' - This section allow you to perform imaging tasks such as acquiring or deploying images.&lt;br /&gt;
&lt;br /&gt;
'''Reports''' - Reports let you pull information from the FOG database either as HTML, pdf, or csv.&lt;br /&gt;
&lt;br /&gt;
'''About''' - The section has the rest of the settings that don't fit anywhere else like the kernel updater and the client service updater.&lt;br /&gt;
&lt;br /&gt;
'''Logoff''' - Click this to log off of the Fog web UI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note:  “Groups” do not control group memberships.  Group memberships are controlled via the ‘host’ icon.&lt;br /&gt;
&lt;br /&gt;
=== Hosts ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
[http://freeghost.sourceforge.net/videotutorials/hostinfo.html Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
A host in FOG is typically a computer, but it can be any network device. Hosts are used to identify a computer on the network and are used to manage the device.  &lt;br /&gt;
&lt;br /&gt;
==== Adding a new host ====&lt;br /&gt;
&lt;br /&gt;
===== Method 1: Manually Adding =====&lt;br /&gt;
&lt;br /&gt;
[http://www.fogproject.org/videotutorials/addimghost.html Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
Adding a new host can be done in the hosts section of FOG (the single monitor).  Then by clicking on the &amp;quot;Add New Host&amp;quot; button on the left hand menu.  At least a hostname and a MAC address must be entered in order to add the host to the FOG database. &lt;br /&gt;
&lt;br /&gt;
A host consists of the required fields: &lt;br /&gt;
&lt;br /&gt;
*'''Hostname''' - A string used for the Windows Hostname of client, this must be less than 15 characters long. &lt;br /&gt;
*'''MAC address''' - This field is used in for for a unique identifier for the host.  The string must be separated by : (colon), in the format of 00:11:22:33:44:55. &lt;br /&gt;
&lt;br /&gt;
Hosts can also include, but are not required:&lt;br /&gt;
&lt;br /&gt;
*'''IP address''' - Just your typical IP address, in the typical formation of X.X.X.X or 192.168.1.1.&lt;br /&gt;
*'''Description''' - Information for your own reference.&lt;br /&gt;
*'''Image Association''' - This field is a drop down box that will allow you select an image object created in the '''Images''' section.  &lt;br /&gt;
*'''Operating System''' - Drop down box that allow you to select the primary type of operating system running on this host.&lt;br /&gt;
*'''Kernel''' - This is only used if you want to overwrite the default kernel used for FOG. Needs to be specified as fog/kernel/mybzImage&lt;br /&gt;
*'''Kernel Arguments''' - This allow you to add additional kernel arguments for booting the host (ie: vga=6, or irqpoll).  &lt;br /&gt;
*'''Primary Disk''' - This option allows you to force a device to use during imaging if fog fails to detect the correct device node.&lt;br /&gt;
&lt;br /&gt;
This page also allows for configuration of Active Directory integration, but this topic will be covered later.  When all settings are added, click on the &amp;quot;Add&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
===== Method 2: Adding a new host via Full Registration =====&lt;br /&gt;
&lt;br /&gt;
This is the preferred method (as of version 0.12), and maybe the easiest method for getting a host into the FOG database, but it requires you to visit the host.  When at the client computer, during the boot up process when you see the pxe boot menu select '''Perform Full Host Registration and Inventory'''.  If you are using the text based pxe boot menu, type '''fog.reginput'''.  During this phase you will be prompted for general information about the host like hostname, operation system, and even image.  If you enter a valid operating system and image id, you will be able to deploy and image to this computer directly from registration.  If you would like to push an image down to this computer, select '''y''' when prompted.  &lt;br /&gt;
&lt;br /&gt;
After the requested information is entered, FOG will pull a quick hardware inventory the client.&lt;br /&gt;
&lt;br /&gt;
This method of registration will only register the primary, wired mac address with the FOG server.&lt;br /&gt;
&lt;br /&gt;
For more information on these commands please see:&lt;br /&gt;
&lt;br /&gt;
[http://www.fogproject.org/wiki/index.php?title=FOGUserGuide#Client_Side_Tasks Client Side Tasks]&lt;br /&gt;
&lt;br /&gt;
===== Method 3: Adding a new host via Quick Registration =====&lt;br /&gt;
&lt;br /&gt;
Quick registration is very much like the Full host registration, with the exception that it will not prompt you for any input, nor give you the option to image the computer directly from the registration screen.  When the host is added to the FOG server, it will be named with the hosts primary mac address.  This method is great for adding a lab of 30 computers to FOG quickly and easily.&lt;br /&gt;
&lt;br /&gt;
To enable this feature&lt;br /&gt;
&lt;br /&gt;
#Go to '''Other Information'''&lt;br /&gt;
#select '''FOG Settings'''&lt;br /&gt;
#Find section '''FOG Quick Registration'''&lt;br /&gt;
#change value '''FOG_QUICKREG_AUTOPOP''' to '''1'''&lt;br /&gt;
#Set '''FOG_QUICKREG_IMG_ID''' to the image ID you would like to use for all newly created hosts.&lt;br /&gt;
#Set '''FOG_QUICKREG_OS_ID''' to the OS ID you would like to use for all newly created hosts.&lt;br /&gt;
#Change '''FOG_QUICKREG_SYS_NAME''' to what you would like to name you new machines, where * will be replaced by a number.  If you would like to zero pad numbers you can use '''LAB300-**''' which would result with '''LAB300-03''' or '''LAB300-09'''.&lt;br /&gt;
#Set '''FOG_QUICKREG_SYS_NUMBER''' to the first number you would like to use.&lt;br /&gt;
&lt;br /&gt;
After each registration the computer will automatically image and the '''FOG_QUICKREG_SYS_NUMBER''' will incremented by 1.&lt;br /&gt;
&lt;br /&gt;
===== Method 4: Uploading Host Information =====&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
&lt;br /&gt;
When getting started with FOG, you need to enter the host information for the devices on your network.  We understand this can be a long difficult process, so in order to make this process easier we created a page that allows you to upload most of the host information from a CSV file.   &lt;br /&gt;
&lt;br /&gt;
The CSV file that is uploaded to FOG must be in the following format, and the file should not have a header row. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;MAC Address&amp;lt;/b&amp;gt;,&lt;br /&gt;
&amp;lt;b&amp;gt;Host name&amp;lt;/b&amp;gt;,&lt;br /&gt;
IP Address,&lt;br /&gt;
Description,&lt;br /&gt;
OSID ,&lt;br /&gt;
ImageID&lt;br /&gt;
&lt;br /&gt;
===== Other notes =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The MAC Address (required)  is the NIC's MAC address seperated by : (colon).&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The Host name (required) is the computer's Host name (must be less than 15 characters, should not include underscores, according to [http://tools.ietf.org/html/rfc952]).&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The IP Address is the computer's IP address (format x.x.x.x).  This field is currently not used by FOG.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The Description is any text description you would like associated with the computer.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The OSID is the number representing the operating system.  It can be found in the table &amp;quot;supportedOS&amp;quot; in the field osID.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The ImageID is the number representing the images file linked to this image.  The image definition must already exist and this number can be found in the table &amp;quot;images&amp;quot; in the field imageID.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The bold fields are required.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;The file must be saved as a CSV without a header row.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Uploading the File =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the file is prepared and saved, you will need to log into the FOG Management Portal.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Then click on the Hosts icon.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the left-hand menu, click on Upload Hosts.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Browse for your file, then click Upload CSV.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Managing Hosts ====&lt;br /&gt;
&lt;br /&gt;
===== General =====&lt;br /&gt;
&lt;br /&gt;
Once hosts have been added to the FOG database you can modify or delete them.  Finding a host which you wish to edit can be done in two ways, the first is by listing all the hosts that exist. This is done by clicking on the &amp;quot;List All Hosts&amp;quot; button.  The second way to locate a host is to use the search function.  To search for hosts click on the &amp;quot;New Search&amp;quot; button, if you would like to search for all hosts you can enter a &amp;quot;*&amp;quot; or &amp;quot;%&amp;quot;.  The search function will search in the host's name, description, IP and MAC address.  &lt;br /&gt;
&lt;br /&gt;
Once a host is located, it can be edited by clicking on the edit button.  Clicking on the edit button will display all the properties that were shown during host creation with the addition of snapin, printers, active directory, service settings, hardware, virus history, and login information.  &lt;br /&gt;
&lt;br /&gt;
The entire host object can be removed from the FOG system by clicking on the delete option at the bottom of the Host Menu.&lt;br /&gt;
&lt;br /&gt;
===== Multiple MAC Address Support =====&lt;br /&gt;
&lt;br /&gt;
(Content not yet complete.)&lt;br /&gt;
&lt;br /&gt;
==== Host Status ====&lt;br /&gt;
&lt;br /&gt;
New in version 0.29 of FOG is the Host Status which will basically display an indicator icon next to the host within the FOG UI showing the status of the machine.  This function basically does a ping based on the host's name.  So in order for this to work you must have an internal DNS server that is tied in with your DHCP server, so that when a DHCP address is given out, the DNS server is notified with the new IP.  If that is setup correctly, you must make sure your FOG server is able to ping a host from the command line using:&lt;br /&gt;
&lt;br /&gt;
 ping somehostname&lt;br /&gt;
&lt;br /&gt;
If the server isn't able to ping the client, then the status of the host in the UI with always show as unreachable.  If you can ping the client using the FQDN, like&lt;br /&gt;
&lt;br /&gt;
 #Replace forproject.org with your domain suffix&lt;br /&gt;
 ping somehostname.fogproject.org &lt;br /&gt;
&lt;br /&gt;
Then you will need to adjust the DNS '''Search domains:''' setting on your sever.  After making this change you will need to restart the apache server for it to take affect.&lt;br /&gt;
&lt;br /&gt;
If after this, you still can't ping your clients, the problem may be due to a firewall issue with the clients.  In this case, client specific configuration changes might be needed.&lt;br /&gt;
&lt;br /&gt;
==== Creating Host Groups ====&lt;br /&gt;
&lt;br /&gt;
FOG allows you to create groups of hosts which then allows you to take action on a whole grouping of hosts.  Hosts can be created either on the &amp;quot;List All Hosts&amp;quot; section or by doing a search for hosts.  To create a group select the computer you would like to be member of the group by placing a check in the box next to the hostname, or by clicking the check all button in the title row.  After the hosts are selected scroll to the bottom of the screen and then enter a name in the create to group box or select a group to add the hosts to.  Then click on the &amp;quot;Process Group Changes&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
=== Groups ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Groups in FOG are used to organize your hosts into real world logical clusters.  This is intended to ease management of the computers.  A single host can be a member of infinitely many groups, so if a computer happens to be a member of the group called &amp;quot;Third Floor&amp;quot;, it could also be a member of &amp;quot;Math Department&amp;quot;, or &amp;quot;Dell PCs.&amp;quot;  Groups make using FOG possible for organizations with a very large number of PC's.&lt;br /&gt;
&lt;br /&gt;
==== Creating Groups ====&lt;br /&gt;
&lt;br /&gt;
Groups are created in the hosts section of FOG based on searches, for information on how to create groups, please see Creating Host Groups.&lt;br /&gt;
&lt;br /&gt;
==== Managing Groups ====&lt;br /&gt;
&lt;br /&gt;
After a group has been created, it can be managed from the groups section of FOG.  Locating groups is very similar to locating hosts, you can either list all groups or you can search for groups.  When searching for groups your search criteria is matched against the group name or the group description.  Once a group is located it can be modified by clicking on the &amp;quot;Edit&amp;quot; button on the right hand side of the table.&lt;br /&gt;
&lt;br /&gt;
Under the section &amp;quot;Modify Group [Groupname]&amp;quot; there are options to change the group name, group description or to delete the group.  If you wish to update the group name or the group description make your change then click on the &amp;quot;Update&amp;quot; button within that section.  If you would like to remove the group then simply click on the &amp;quot;Delete&amp;quot; button within this section.&lt;br /&gt;
&lt;br /&gt;
===== Group Basic Tasks =====&lt;br /&gt;
&lt;br /&gt;
This section will allow you to start a task on this group of hosts without going to the tasks section of fog.  From this section you can start a unicast deploy to all hosts within the group.&lt;br /&gt;
&lt;br /&gt;
===== Group Membership Setup =====&lt;br /&gt;
&lt;br /&gt;
This page allows you to view / delete membership of the group.  This section will list all of the members of the group and give you the option to remove members from the group.&lt;br /&gt;
&lt;br /&gt;
===== Group Image Associations =====&lt;br /&gt;
&lt;br /&gt;
The groups page also allows you to update the image association for all the members of the group.  This can be done in the &amp;quot;Image Association for [groupname]&amp;quot; section.  Select the image association from the drop-down box and select &amp;quot;Update Images&amp;quot; and then all your host objects for that group will be modified.  &lt;br /&gt;
&lt;br /&gt;
===== Group Operating System Associations =====&lt;br /&gt;
&lt;br /&gt;
You can also change the Operating System association for all hosts in the group via the '''OS Assoc''' Button in the Group Menu.  Clicking the update button will apply the changes to all members of the group. &lt;br /&gt;
&lt;br /&gt;
===== Group Snapins =====&lt;br /&gt;
&lt;br /&gt;
You can add or remove snapins to all hosts in a group, but because the nature of groups, it is not possible to see what snapins are currently associated with a group.  This is because the snapins are not directly associated with the group, the are associated with the host and it is possible for all members of the groups to have different snapins linked with each host.  What fog does allow you to do is batch add a snapin to all the hosts within a group.  At the same time you can batch remove a snapin from all the hosts within a group.  This functions can be done via the '''Add Snapins''' and '''Remove Snapins''' button in the Group Menu.  &lt;br /&gt;
&lt;br /&gt;
===== Group Service Settings =====&lt;br /&gt;
&lt;br /&gt;
The '''Service Settings''' page allows you to enable or disable certain service modules on all hosts in the group, as well as change some service settings for group such as screen resolution, and auto log off settings.  &lt;br /&gt;
&lt;br /&gt;
===== Group Active Directory Setup =====&lt;br /&gt;
&lt;br /&gt;
Active Directory integration settings can also be distributed to all members of a group via this page.  The section &amp;quot;Modify AD information for [groupname]&amp;quot; allows you to do so.  This section provides the same options as the host screen but allows you to mass update all of your hosts.&lt;br /&gt;
&lt;br /&gt;
===== Group Printers =====&lt;br /&gt;
&lt;br /&gt;
The '''Printers''' page allows you to add or remove printer associations to all hosts within the group.  This page also allows you to set the management level all hosts within the group.  &lt;br /&gt;
&lt;br /&gt;
===== Group Membership Information =====&lt;br /&gt;
&lt;br /&gt;
The most important thing to remember about groups in FOG is that they do not contain their own properties.  When you make changes to a group, you are really make changes to every host object within the group.  For example, if you change the OS association for a group, then go back to the one of the host objects that is a member of that group, it will have the new OS association on that object.&lt;br /&gt;
&lt;br /&gt;
=== Images ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
Image objects in FOG are the representation of the physical files that contain the disk or partition images that are saved on the FOG server.&lt;br /&gt;
&lt;br /&gt;
==== Creating Images Objects ====&lt;br /&gt;
&lt;br /&gt;
Image objects in FOG are created in the Images section of the FOG management portal.  To create a new image click on the &amp;quot;New Image&amp;quot; button on the left hand menu.  An image object requires a name and a image file path.  &lt;br /&gt;
&lt;br /&gt;
When creating images you have a few choices in how you want that image to 'act'.  The possible partition types include:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Single Partition&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Multiple Partition - Single Disk&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Multiple Partition - All Disks&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Raw Image&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Single Partition''' - Single Partition images support only single NTFS partitions. These partitions are resizable, meaning that an image from a 200GB hard disk can be put on a 10GB hard disk as long as the data is less than 10GB. This image type is destructive, which means that your partitions will be modified, and  if the task doesn't finish without error it is possible that your computer may not be bootable.&lt;br /&gt;
&lt;br /&gt;
'''Multiple Partition - Single Disk''' - Single Disk will back up all the supported partitions on the first disk drive detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity.  It is possible to backup NTFS drives with vendor specific 'restore' partitions with this type of image.  &lt;br /&gt;
&lt;br /&gt;
It is possible to backup Linux systems with this type of image given the following criteria:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;There is a Grub boot loader present.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;LVM is not used.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The partitions include '''ext2''', '''ext3''', '''reiserfs''', or '''swap'''.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; The swap partition should be moved out of the extended partition (for ubuntu 9.04) &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Linux support is still pretty primitive, and has only been tested with a default Ubuntu 8.04 Installation.  &lt;br /&gt;
&lt;br /&gt;
'''Multiple Partition - All Disks''' - All Disks will back up all the supported partitions on all disk drives detected by FOG, but the partitions are NOT resizable by FOG. This means that the image must be restored to a disk of the same or larger capacity.&lt;br /&gt;
&lt;br /&gt;
'''Raw Image''' - Raw Image will do a raw sector-by-sector copy of your hard disk, which means that if you have a 80GB hard drive, dd will process 80GB of data, and you will end up with a VERY LARGE image that is VERY SLOW to create and restore.&lt;br /&gt;
&lt;br /&gt;
All of these images can be deployed using multicast or unicast to clients.&lt;br /&gt;
&lt;br /&gt;
==== Modifying Image Objects ====&lt;br /&gt;
&lt;br /&gt;
Image object can be located either by a search or by listing all image objects.&lt;br /&gt;
&lt;br /&gt;
==== Adding Existing Image Objects ====&lt;br /&gt;
&lt;br /&gt;
To restore an image to the FOG database:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Create a new Image definition through the management browser&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Specify image name (SampleXPImage)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Specify storage group (default)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Specify image file path (SampleXPImage)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Specify image type&amp;lt;/li&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Log into the box hosting FOG, and move/rename your image to match browser input&lt;br /&gt;
&amp;lt;li&amp;gt; Create hierarchy if necessary. FOG, by default, puts images in /images/, so for the above example, you would need to create a folder  structure like so: /images/SampleXPImage&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Drop your image file into the folder (be sure it's named the same as image name above)&amp;lt;/li&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Storage Management ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
The Storage Manager section of FOG was added in version 0.24 of FOG and introduces the concept of '''Storage Groups.'''  Basically, a storage group is a group of NFS servers that share images and share the load of computers being imaged.  Any member of a storage group is referred to as a '''Storage Node.'''  You may have as many storage groups as you wish and as many storage nodes within those groups as you wish.  In each storage group, there is one storage node which is designated as the '''Master''' of that group.  Basically what this means it that is the node where all image uploads go, this node handle multicasting tasks for the group, and is the image replicator the for the group.  This means that whatever images are stored on this node are what gets distributed to the entire group.  &lt;br /&gt;
&lt;br /&gt;
What this new system of storage management gives us is a distributed model for FOG which allows for more unicast transfers at a single time.  We also gain data redundancy.  We also take stress off of the main FOG server.&lt;br /&gt;
&lt;br /&gt;
Below is a brief overview of Storage Groups&lt;br /&gt;
&lt;br /&gt;
[[Image:Nfsgroup.jpg]]&lt;br /&gt;
&lt;br /&gt;
This image shows a single Storage Group and the flow of data within the group.  The queue size of the system is the sum of the queue size of all the storage nodes within the system.  So if you have 4 nodes each with a queue size of 10, then the queue size of the system is 40, which means 40 clients can be imaged (unicast) at one time.  &lt;br /&gt;
&lt;br /&gt;
[[Image:StorageGroups.jpg]]&lt;br /&gt;
&lt;br /&gt;
This image shows that it is possible to have multiple storage groups on your network, which are isolated from each other.  This image also demonstrates, that uploads always go to the master node and multicast session always send data from the master node.  Images are pushed out from the master node of the group to all other members of the group.&lt;br /&gt;
&lt;br /&gt;
'''Key Benefits'''&lt;br /&gt;
*Increased throughput&lt;br /&gt;
*Redundant Storage&lt;br /&gt;
*Scalability&lt;br /&gt;
&lt;br /&gt;
==== Adding a Storage Node ====&lt;br /&gt;
&lt;br /&gt;
Definition: Storage Nodes provide extra [http://www.fogproject.org/wiki/index.php?title=InstallationModes NFS/FTP storage space] which increases available multicast throughput and redundancy within a network. They do not provide PXE, TFTP, or DHCP services at secondary sites. To enable additional PXE and TFTP services at secondary sites see this section: [[#Including_multiple_PXE_.2F_TFTP_servers|#Including multiple PXE / TFTP servers]]&lt;br /&gt;
&lt;br /&gt;
Video Tutorial:  http://www.youtube.com/watch?v=X72WthDGwsw&amp;amp;fmt=18&lt;br /&gt;
&lt;br /&gt;
To add an additional storage node to the network, the computer should be prepared in the same way the main FOG server would be prepared (disable firewall, SELinux, etc).  You can also safely mix operating systems for the nodes of you storage group, some nodes can be running fedora, and some can be running Ubuntu.  It is important to update your storage nodes when you upgrade to a new version of FOG.  Installation of a storage node is done with the same installer for a normal FOG server.  Installation can be started by running the installer script, the steps are detailed below.&lt;br /&gt;
&lt;br /&gt;
===== Installing the Node =====&lt;br /&gt;
&lt;br /&gt;
#Run the installation script, ./installfog.sh&lt;br /&gt;
#Select your operating system.&lt;br /&gt;
#When prompted for Server Installation Mode, select '''S''', for storage node.&lt;br /&gt;
#Enter the IP address of the storage node.&lt;br /&gt;
#Confirm you interface&lt;br /&gt;
#Then you will need to enter the IP address or host name of the node running the FOG database&lt;br /&gt;
#Then you will be prompted for a username (typically fogstorage)&lt;br /&gt;
#and a password that is located on the FOG server, that will allow the storage node to access the main FOG server's database.  This information is located in the FOG management portal for convenience (on the main for server).  It can be accessed via '''Other Information''' -&amp;gt; '''FOG settings''' -&amp;gt; section '''FOG Storage Nodes'''.&lt;br /&gt;
#You will then be prompted to confirm your installation settings, if they are correct press '''Y''' end hit '''Enter'''.&lt;br /&gt;
#When installation completes, the install will produce a username and password that will be needed to add the storage node to the FOG management portal. Username is &amp;quot;fog&amp;quot;, password is in /opt/fog/.fogsettings&lt;br /&gt;
&lt;br /&gt;
===== Adding the Node to the Management Portal =====&lt;br /&gt;
&lt;br /&gt;
#Log into the FOG Management Portal&lt;br /&gt;
#Navigate to the '''Storage Management''' section.&lt;br /&gt;
#Click on '''Add Storage Nodes'''.&lt;br /&gt;
#For the '''Storage Node Name''', enter any alpha numeric string to represent the storage node. &lt;br /&gt;
#Enter any description you wish&lt;br /&gt;
#Enter the IP address of the storage node you are adding.  This must be the IP address of the node, DO NOT use a hostname here or the node will not function correctly.  &lt;br /&gt;
#Enter the maximum number of unicast clients you would like this node to handle at one time.  The value that we recommend is 10.  &lt;br /&gt;
#Is Master Node is a very dangerous settings, but for right now leave it unchecked, for more details please see: [[#Master Node Status]].&lt;br /&gt;
#Next, select the storage group you would like this member to be a part of, in our example we will pick '''Default'''&lt;br /&gt;
#Next, specify the image location on the storage node, typically '''/images/''', your image location should always end with a '''/'''.&lt;br /&gt;
#Next, you will want to check the box, to enable the node.&lt;br /&gt;
#The last two fields take the username and password that are generated during the installation of the storage node. username is &amp;quot;fog&amp;quot;, password is in /opt/fog/.fogsettings&lt;br /&gt;
#Then click '''Add''' to have the node join the storage group.&lt;br /&gt;
&lt;br /&gt;
==== Monitoring The Master Node ====&lt;br /&gt;
&lt;br /&gt;
On all storage nodes there is a new service (as of version 0.24) called FOGImageReplicator which is a very basic script which, if the node is the master, copies all of its images to all other nodes in the storage group.  The coping is done every ten minutes by default, which means your images are NOT instantly duplicated to all nodes.  &lt;br /&gt;
&lt;br /&gt;
If you would like to view the status of the image replication, you can do so on the storage node by switching to tty3, by typing ctl + alt + f3.  Output is also logged to a file in the '''/opt/fog/log''' directory.&lt;br /&gt;
&lt;br /&gt;
==== Master Node Status ====&lt;br /&gt;
&lt;br /&gt;
The '''Master Node''' in a storage group is the node that distributes images files to all other nodes in the storage group.  So, if you have all your images distributed across 3 nodes in a storage group, '''if you add a new storage node that has no images stored on it, making that node master will cause it to take over and push it's image store of nothing to all other nodes, wiping out all of your images'''.  So it is important to be very careful and backup your images when you change a node's master status.&lt;br /&gt;
&lt;br /&gt;
==== Including multiple PXE / TFTP servers ====&lt;br /&gt;
&lt;br /&gt;
A traditional Master Storage Node, [[#Adding_a_Storage_Node|as described above]] only provides File Storage redundancy. While this can help increase multicast throughput on a single network, all the machines under FOG management must be within the same subnet/VLAN so that DHCP broadcast requests can be directed to the Main server. (see note below)&lt;br /&gt;
&lt;br /&gt;
'''Note:''' depending on the network, it may be possible to configure [http://en.wikipedia.org/wiki/UDP_Helper_Address iphelper] to forward packets to the Main FOG server&lt;br /&gt;
&lt;br /&gt;
The following instructions are intended to help configure additional Storage Nodes to operate independently on separate networks, while still syncing with and taking commands from a single Main FOG server.&lt;br /&gt;
&lt;br /&gt;
Click here for instructions on setting up [[Multiple_TFTP_servers|multiple PXE / TFTP servers]]&lt;br /&gt;
&lt;br /&gt;
=== Users ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
FOG has only two levels of users, '''regular''' users and '''mobile''' users.  Regular users have access to the mobile portal and the full management portal.  Mobile users have access to only the mobile management portal.  &lt;br /&gt;
&lt;br /&gt;
==== Creating Accounts ====&lt;br /&gt;
&lt;br /&gt;
All accounts are created under the &amp;quot;Users&amp;quot; section of the FOG portal.  To create a new account click on the &amp;quot;New User&amp;quot; button on the left hand side of the page. All accounts must have a unique username, and a password. After filling in the required information click on the &amp;quot;Create User&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
==== Modifying Users ====&lt;br /&gt;
&lt;br /&gt;
FOG accounts can be modified from within the users section.  First you must locate the account you wish to modify by clicking on the &amp;quot;List all Users&amp;quot; button on the left hand side of the page.  When a user is located, click on the edit button on the right hand side of the table.&lt;br /&gt;
&lt;br /&gt;
=== Tasks ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
Tasks are all the actions that you can take on a computer, and in FOG there a numerous tasks that can be done including:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload - Unicast&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Upload - Unicast (Debug)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download - Unicast&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download - Unicast (Debug)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download - Unicast (Without Snapins)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download - Multicast&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Debug&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Deploy All Snapins&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Deploy Single Snapin&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Memory Test&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Wake Up&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Fast Wipe&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Normal Wipe&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Full Wipe&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Disk Surface Test&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;File Recovery&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Virus Scan&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Hardware Inventory&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the tasks section of FOG you can perform tasks on single hosts or groups of hosts.  This section also allows you to monitor selective tasks, and stop/cancel tasks.&lt;br /&gt;
&lt;br /&gt;
==== General Tasks ====&lt;br /&gt;
&lt;br /&gt;
The general/common Tasks in FOG include unicast image upload, and unicast image send, as well as a multicast image send.  In FOG, sending an image to the server is considered an image upload, and deploying an image to the client is called a send.  Both of these tasks can be started directly from the search, list all hosts, and list all groups pages.  &lt;br /&gt;
&lt;br /&gt;
To perform a simple image upload, click on the upward facing arrow next to the host.  Uploads are only possible on a host, not a group.  Uploading an image will also overwrite any image file that may already exist for that host without any notification or confirmation.&lt;br /&gt;
&lt;br /&gt;
Please note that uploading images of Windows Vista and Windows 7 requires special command to be run on the clients prior to image upload.  Please see [[What do I have to do to an image before uploading?]] for more details.&lt;br /&gt;
&lt;br /&gt;
For a video demonstration of an image upload, please see: http://www.youtube.com/watch?v=jPPZr0abVfg&amp;amp;fmt=18&lt;br /&gt;
&lt;br /&gt;
To perform a simple image send, click on the downward facing arrow next to the host.  An image send can be done on a host or a group.  When sending an image to multiple computers FOG works in queue mode, which means that it will only send to 10 (by default) computers at one time.  This is done to keep the server from being overworked.  As soon as the a machine finishes, another from the queue joins.&lt;br /&gt;
&lt;br /&gt;
To perform a multicast image send you must search for a group of hosts on the &amp;quot;Task Management&amp;quot; page.  Multicast tasks can only be performed on a group of hosts.  Multicast tasks will send to all the computers in the group at once, and the task will not start sending until all members of the group have connected with the server.    After starting a multicast task, status can be view by clicking on [ctl]+[alt]+f2.  A log is also kept for multicast transfers which is stored at /opt/fog/log.&lt;br /&gt;
&lt;br /&gt;
==== Advanced Tasks ====&lt;br /&gt;
&lt;br /&gt;
The advanced Tasks in FOG include everything that is not a simple upload, simple send or mutlicast send.  &lt;br /&gt;
&lt;br /&gt;
=====Debug=====&lt;br /&gt;
&lt;br /&gt;
Debug mode boots the linux image to a bash prompt and allows the user to issue all commands by hand. &lt;br /&gt;
&lt;br /&gt;
=====Upload - Unicast (Debug)=====&lt;br /&gt;
&lt;br /&gt;
Does the same thing that debug mode does, with the exception that the environment is setup to upload the image.  To start the imaging process just type:&lt;br /&gt;
&lt;br /&gt;
 fog&lt;br /&gt;
&lt;br /&gt;
=====Send - Unicast (Debug)=====&lt;br /&gt;
&lt;br /&gt;
Does the same thing that debug mode does, with the exception that the environment is setup to send the image.  To start the imaging process just type:&lt;br /&gt;
&lt;br /&gt;
 fog&lt;br /&gt;
&lt;br /&gt;
=====Send - Unicast (Without Snapins)=====&lt;br /&gt;
&lt;br /&gt;
This task does a normal send task with the exception that if any snapins are associated with the host, they are not deployed to the host.  &lt;br /&gt;
&lt;br /&gt;
=====Deploy All Snapins=====&lt;br /&gt;
&lt;br /&gt;
This task will send all the snapins associated with a host to the host without imaging it.&lt;br /&gt;
&lt;br /&gt;
=====Deploy Single Snapin=====&lt;br /&gt;
&lt;br /&gt;
This task will send a single snapin that is associated with the host to the host without imaging it. (Note: The snapin must be associated with the host already)&lt;br /&gt;
&lt;br /&gt;
=====Memory Test=====&lt;br /&gt;
&lt;br /&gt;
Boots to Memtest86, a memory testing tool.  This a task will not exit with out user intervention at the client side.  The task must also be manually stopped via the management front end.&lt;br /&gt;
&lt;br /&gt;
=====Wake Up=====&lt;br /&gt;
&lt;br /&gt;
Wakes up host or group of hosts using Wake-on-Lan.  &lt;br /&gt;
&lt;br /&gt;
=====Fast Wipe=====&lt;br /&gt;
&lt;br /&gt;
This task does a quick and dirty wipe of the drive.  This task writes zeros to the first ~40MB of the disk.  This task should NOT be used if you don't want your data to be recoverable.  &lt;br /&gt;
&lt;br /&gt;
=====Normal Wipe=====&lt;br /&gt;
&lt;br /&gt;
This tasks writes random data to the entire surface area of the disk.  &lt;br /&gt;
&lt;br /&gt;
=====Full Wipe=====&lt;br /&gt;
&lt;br /&gt;
This tasks writes random data, multiple times to the entire surface of the disk. &lt;br /&gt;
&lt;br /&gt;
=====Disk Surface Test=====&lt;br /&gt;
&lt;br /&gt;
This task will look for bad blocks on the hard disk and report them back to the client console.  &lt;br /&gt;
&lt;br /&gt;
=====File Recovery=====&lt;br /&gt;
&lt;br /&gt;
This task will load an application that can be used to recover lost files from the hard disk.  &lt;br /&gt;
&lt;br /&gt;
=====Virus Scan=====&lt;br /&gt;
&lt;br /&gt;
This task will update and load ClamAV and scan the partition for viruses.  It will either scan and report or scan and quarantine files, it will also report back to the management portal with the results of the scan.&lt;br /&gt;
&lt;br /&gt;
=====Hardware Inventory=====&lt;br /&gt;
&lt;br /&gt;
[http://freeghost.sourceforge.net/videotutorials/InventoryUpdate.swf.html Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
The hardware inventory task will execute the same task as the fog.reginput client side task.  Since the host is already registered, all it will do is update the computers inventory and restart.  It is visioned that this task could be run on a regular interval on a group of all computers in your network, or some sub group of computers in your network.  Then on the next reboot of those computers an inventory would be performed.&lt;br /&gt;
&lt;br /&gt;
==== Scheduling ==== &lt;br /&gt;
&lt;br /&gt;
As of version 0.27 of FOG, select tasks can be scheduled using a static date/time combination or using a cron style repetitive task scheduling.  Task scheduling can be performed on either single hosts, or on groups of computers.  One thing to note about task scheduling that isn't intuitive is that it '''requires an image to be associated with the host, even for non-image based tasks!'''  The reason for this is because tasks are only run on the master storage node associated with that host, and the only way to tie a storage node to a host is via an image.  We did this to prevent multiple storage nodes to try running the same task for a specific host.  &lt;br /&gt;
&lt;br /&gt;
===== Single Execution Scheduling =====&lt;br /&gt;
&lt;br /&gt;
Single task execution will run a task at a single date and time, then the task will be discarded.  To scheduled a single execution task, you would go to the tasks section of fog, then select the host or group you would like to schedule the task, then select the task you would like to schedule.  You will then be presented with the screen show below.&lt;br /&gt;
&lt;br /&gt;
[[Image:Sched.png]]&lt;br /&gt;
&lt;br /&gt;
To schedule a single execution task, click on white text box below &amp;quot;Schedule Single Task Execution?&amp;quot; and a pop up calendar will load and allow you to select your date and time for the task.  Click on the date to close the calendar, then start you task.  &lt;br /&gt;
&lt;br /&gt;
===== Cron Style Task Scheduling =====&lt;br /&gt;
&lt;br /&gt;
Cron style task execution allows you to do complex repetitive task scheduling.  After a cron task executes, it is not removed, as single executions tasks are.  Cron style tasks, as the name suggests are similar to the Linux cron task scheduler format.  Cron style tasks are created as single execution tasks are, except when presented with scheduling options, select the option &amp;quot;Schedule Cron Style Task Execution&amp;quot;.  Below that check box are a series of text boxes including:&lt;br /&gt;
&lt;br /&gt;
 min    -&amp;gt; Minute&lt;br /&gt;
 hour   -&amp;gt; Hour&lt;br /&gt;
 dom    -&amp;gt; Day of Month&lt;br /&gt;
 month  -&amp;gt; Month&lt;br /&gt;
 dow    -&amp;gt; Day of Week&lt;br /&gt;
&lt;br /&gt;
To give an example of how this works, if you wanted a upload task to run at '''10:00pm everyday''' you would enter the following:&lt;br /&gt;
&lt;br /&gt;
 0 22 * * *&lt;br /&gt;
&lt;br /&gt;
This basically says run the task a '''0''' minutes into the hour, on the '''22nd hour (10:00pm)''', on '''every day of the month''', on '''every month of the year''', on '''every day of the week'''.&lt;br /&gt;
&lt;br /&gt;
To take this example further, lets say you only wanted to upload the image '''every other day''', we could do this by adding:&lt;br /&gt;
&lt;br /&gt;
 0 22 */2 * *&lt;br /&gt;
&lt;br /&gt;
The '''*/2''' now tells the scheduler to only run on '''even days of the month'''.  &lt;br /&gt;
&lt;br /&gt;
We could even ask the scheduler to only do a backup on '''even weekdays''' by adding:&lt;br /&gt;
&lt;br /&gt;
 0 22 */2 * 1-5&lt;br /&gt;
&lt;br /&gt;
The 1-5 we just added says only run on days 1 through 5, which relate to Monday - Friday.&lt;br /&gt;
&lt;br /&gt;
Now we will ask the scheduler to only backup in the month of February.&lt;br /&gt;
&lt;br /&gt;
 0 22 */2 2 1-5&lt;br /&gt;
&lt;br /&gt;
Another basic example could be if you wanted to run an inventory update on the first of every month you could use:&lt;br /&gt;
&lt;br /&gt;
 30 1 1 * *&lt;br /&gt;
&lt;br /&gt;
This task would then run at '''1:30''' on the '''1st of every month'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The FOG scheduler doesn't support 100% of the operations that cron supports, below are the operations that are supported:&lt;br /&gt;
&lt;br /&gt;
 4       -       Listing a static number&lt;br /&gt;
 4,5,6,7 -       Listing a group of numbers&lt;br /&gt;
 4-7     -       ranges of numbers &lt;br /&gt;
 4-7,10  -       ranges and lists&lt;br /&gt;
 */5     -       * divided by a number&lt;br /&gt;
 *       -       Wildcard&lt;br /&gt;
&lt;br /&gt;
For more information on cron please see http://en.wikipedia.org/wiki/Cron&lt;br /&gt;
&lt;br /&gt;
=== Printers ===&lt;br /&gt;
&lt;br /&gt;
==== FOG Version ====&lt;br /&gt;
&lt;br /&gt;
Relates to FOG Version 0.12 or higher.&lt;br /&gt;
&lt;br /&gt;
==== Known Issues ====&lt;br /&gt;
&lt;br /&gt;
Setting of the default printer will only work if the fog tray icon is running.&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
The printers section of FOG allows you to create printer definitions that you can later associate with hosts.  The FOG service looks at these associations and during service it will attempt to install any printers listed.  This service has three settings which define how the printers are managed, printer management can be set to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;No Printer Management&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add Only&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add and Remove&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All hosts default to '''No Printer Management''' which means that the FOG service does nothing to the hosts printers.  '''Add Only''' does as the name implies, and will only add printers to the host machine, it will not remove any existing printers that may be installed.  '''Add and Remove''' will take full control of the hosts printing system and only allow for the printers that are specified by the FOG management console to exist on the host.  &lt;br /&gt;
&lt;br /&gt;
==== Adding New Printers ====&lt;br /&gt;
&lt;br /&gt;
[http://freeghost.sourceforge.net/videotutorials/printer.swf Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
In order for the printer to be added to the host computer, the printer drivers must be stored in a public area, or included on the host computer.  This public area can be a Novell Network share where public has read-only access, a Windows share that is public read-only to everyone, or a Samba share (possibly residing  on the FOG server) that is public read-only to everyone.  This share must be accessible via a UNC path as the service may attempt to install the printers before drive mapping occurs.  In this share the printer drives and .inf file must exist.  FOG supports install IP based (Jet-Direct) printers, public access NDS printers, Local printers, windows share based printers, (and we think, but could use a confirmation as it hasn't been tested) AD based printers.  &lt;br /&gt;
&lt;br /&gt;
If you wish to see what printers are included with Windows XP, navigate to c:\windows\inf\ntprint.inf.  Open this file with a text editor and you will be able to install all the printers listed using the ntprint.inf file.  &lt;br /&gt;
&lt;br /&gt;
To create a new printer definition click on the Printer icon on the system menu bar.  Then on the left hand menu, click on '''Add New Printer'''.  The form you are presented with will require you to enter:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Printer Model''' - This must match the name in the INF file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Printer Alias''' - This can be anything you wish and it is what the end user will see.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Printer Port''' - This is something like '''LPT1:''', or '''IP_1.1.1.2'''.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Printer INF File''' - This is the path to the INF file for the printer driver.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''Printer IP''' - (optional) This is ip address of an IP based printers only, this can take the form of '''1.2.3.4:9100''' or '''1.2.4.5'''.  If the port doesn't exist already, it will create one named ''' IP_x.x.x.x''', where x.x.x.x is the ip address.  That is what should be entered in the port field.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After all the required information is entered, click on the '''Add Printer''' button.&lt;br /&gt;
&lt;br /&gt;
==== Linking Printers to Hosts ====&lt;br /&gt;
&lt;br /&gt;
[http://freeghost.sourceforge.net/videotutorials/printer.swf.html Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
Linking printers to hosts can be done from either the hosts section or the groups section.  In the hosts section find the host you would like to add a printer to, click on the edit button associated with that host.  In the host menu, click on the '''Printers''' button.  First select how you would like the host to be managemed, either '''No Printer Management''', '''Add Only''', or '''Add and Remove'''.  Then in the section below, select the printer you would like to install from the drop down list and click on the '''Update''' button.&lt;br /&gt;
&lt;br /&gt;
==== Creating a Samba Based Printer Store on FOG ====&lt;br /&gt;
&lt;br /&gt;
If you do not have a public sever where you can store your printer drivers for the FOG Printer Manager, then it is very easy to set one up on the FOG server using Samba, so all your Windows Clients will be able to connect.&lt;br /&gt;
&lt;br /&gt;
[[Creating a Samba Based Printer Store on FOG]]&lt;br /&gt;
&lt;br /&gt;
=== The FOG Client Service ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
The FOG Client Service is a Windows Service that is intended to be installed on the client computers during the image creation process.  The FOG service communicates with the FOG server to provide certain service to the client computers including:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Auto Log Off (0.16)&lt;br /&gt;
*Hostname Changes&lt;br /&gt;
*Active Directory Integration&lt;br /&gt;
*Directory Cleaner (0.16)&lt;br /&gt;
*Display Manager (0.16)&lt;br /&gt;
*Green FOG (0.16)&lt;br /&gt;
*Host registration&lt;br /&gt;
*Task Restarting&lt;br /&gt;
*Snapin Installation&lt;br /&gt;
*User Tracker&lt;br /&gt;
*Printer Manager&lt;br /&gt;
*User Cleanup (0.16)&lt;br /&gt;
*Client Updater&lt;br /&gt;
*User Tracker&lt;br /&gt;
&lt;br /&gt;
==== Module specific configuration settings ====&lt;br /&gt;
&lt;br /&gt;
The FOG Client Service is very modular in nature, which means you can install portions of the services provided, and leave off others.  This also means that it is very easy to create new sub services if you know a little C#.  All configuration data is held in a local INI file.  Which is typically stored in &lt;br /&gt;
&lt;br /&gt;
 c:\program files\fog\etc\config.ini&lt;br /&gt;
&lt;br /&gt;
This file holds, in the general section:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FOG Server IP address&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FOG Service installation root&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FOG Service working directory&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;FOG Log file path&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Flag indicating if GUI messages should be displayed&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The max log file size&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Installation ====&lt;br /&gt;
&lt;br /&gt;
[http://freeghost.sourceforge.net/videotutorials/FogServiceInstall.swf.html Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
The FOG service should be installed on the computer to be imaged before uploading the image to the FOG Server.  &lt;br /&gt;
&lt;br /&gt;
The FOG service is located in the '''FOG Service/bin''' directory or if the FOG server is already installed it can be downloaded from:&lt;br /&gt;
&lt;br /&gt;
 http://[serverip]/fog/client/&lt;br /&gt;
&lt;br /&gt;
Double-click on the '''setup.exe''' to start the installation wizard. At the end of the wizard you will need to enter the IP address or hostname of your FOG server.&lt;br /&gt;
&lt;br /&gt;
[[Image:fogservice.jpg]]&lt;br /&gt;
&lt;br /&gt;
Then restart the computer, if you don't restart the computer you will have issues with the service GUI appearing correctly.&lt;br /&gt;
&lt;br /&gt;
===== Quiet Installation =====&lt;br /&gt;
&lt;br /&gt;
As of version 0.29 and higher, the FOG client now supports a quiet installation mode.  This can help automate deployments, by allowing the command to be run without user interaction from batch files.  To do this the setup.exe file must be run from the command line with the arguments '''fog-defaults=true /qb'''.&lt;br /&gt;
&lt;br /&gt;
So the full command would be:&lt;br /&gt;
&lt;br /&gt;
 setup.exe fog-defaults=true /qb&lt;br /&gt;
&lt;br /&gt;
==== Functions and Operation ====&lt;br /&gt;
&lt;br /&gt;
=====Auto Log Out=====&lt;br /&gt;
&lt;br /&gt;
Added in Version 0.16&lt;br /&gt;
&lt;br /&gt;
This module of the FOG Service will log a user off of a client pc after X minutes of inactivity.  This module will display a screen saver-like GUI after 3/4 of the inactive time is up.  So if the time out value is 40 minutes, the GUI will be displayed at 30 minutes of inactivity.  When the time is up, the client computer will reboot.  This service module can be configured via the management portal via:&lt;br /&gt;
&lt;br /&gt;
 FOG Service Configuration -&amp;gt; Auto Log Out&lt;br /&gt;
&lt;br /&gt;
To enable the module globally, place a check in the box next to '''Auto Log Out Enabled?'''.  The time to auto log off can changed globally via '''Default log out time:'''  The minimum recommended value for this setting is 4 minutes.  &lt;br /&gt;
&lt;br /&gt;
The background image for the auto log off module can be modified via:&lt;br /&gt;
&lt;br /&gt;
 Other Information -&amp;gt; FOG Settings&lt;br /&gt;
&lt;br /&gt;
The settings can be changed by modifying the value for '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE'''.  This settings will accept a jpg file that is local to the client computer like: &lt;br /&gt;
&lt;br /&gt;
 c:\images\image.jpg&lt;br /&gt;
&lt;br /&gt;
This setting will also accept files located on a web server such as:&lt;br /&gt;
&lt;br /&gt;
 http://www.somedomain.com/image.jpg&lt;br /&gt;
&lt;br /&gt;
Provided with FOG is a simple php script that will display a random images that is located on the FOG server.  To use this option set '''FOG_SERVICE_AUTOLOGOFF_BGIMAGE''' to &lt;br /&gt;
&lt;br /&gt;
 http://x.x.x.x/fog/public/randomimage.php&lt;br /&gt;
&lt;br /&gt;
Then simply put the images you would like to use in the following directory on the fog server:&lt;br /&gt;
&lt;br /&gt;
 /var/www/html/fog/public/imagepool&lt;br /&gt;
&lt;br /&gt;
Images used for the auto log off module must be in jpg format, and must be 300px by 300px.&lt;br /&gt;
&lt;br /&gt;
=====Hostname Changer=====&lt;br /&gt;
&lt;br /&gt;
This module of the FOG Service is used to change the hostname of the client computer and to allow the client to (optionally) join a Active Directory Domain after imaging.  This process only runs shortly after service startup, which means typically only when you start your computer.  The service communicates with the FOG server over port 80 and determines the hostname that is present in the FOG database for the host.  The hosts are matched to the FOG database by their MAC addresses.  If the hostnames are found to be different, the client changes the computers hostname and restart the computer.&lt;br /&gt;
&lt;br /&gt;
The config.ini file contains configuration options for this module. &lt;br /&gt;
&lt;br /&gt;
 netdompath=&lt;br /&gt;
&lt;br /&gt;
Allows you to set the path to the netdom.exe file. In some cases the file does not exist on the system. It can be downloaded from: [http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&amp;amp;displaylang=de Microsoft Download Center]&lt;br /&gt;
&lt;br /&gt;
=====Host Register=====&lt;br /&gt;
&lt;br /&gt;
As of version 0.29, this module will only add additional mac address to a host that is already registered, and add them to the pending mac address table, where they need to be approved in the FOG UI.&lt;br /&gt;
&lt;br /&gt;
=====Task Reboot=====&lt;br /&gt;
&lt;br /&gt;
This module periodically checks in with the FOG server to see if the client has an imaging task assigned to it.  If a task is found AND no one is logged into the workstation, then the client will restart and join the task.&lt;br /&gt;
&lt;br /&gt;
The config.ini file contains configuration options for this module.  As of version 0.13 of FOG you can change:&lt;br /&gt;
&lt;br /&gt;
 forcerestart=0&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
 forcerestart=1&lt;br /&gt;
&lt;br /&gt;
This will make the computer restart if a task is found, regardless of whether a user is logged into the computer.&lt;br /&gt;
&lt;br /&gt;
You can change how often the service will check in with the server by changing:&lt;br /&gt;
&lt;br /&gt;
 checkintime=xxx&lt;br /&gt;
&lt;br /&gt;
where xxx is the number of seconds the service will wait between check-ins.&lt;br /&gt;
&lt;br /&gt;
=====Directory Cleaner=====&lt;br /&gt;
&lt;br /&gt;
Added in version 0.16&lt;br /&gt;
&lt;br /&gt;
This module will clean out (delete) the contents of a directory on user log off.  This useful when you don't want any settings cached between users.  This module will only delete the contents of a directory and not the root directory itself, so if you specify '''c:\trash''', the service will remove all files and folders located within c:\trash but leave the folder c:\trash.&lt;br /&gt;
&lt;br /&gt;
=====Display Manager=====&lt;br /&gt;
&lt;br /&gt;
Added in version 0.16&lt;br /&gt;
&lt;br /&gt;
This module is used to restore screen resolution between clients.  This will restore a fixed resolution and refresh rate when a user logs into a computer.&lt;br /&gt;
&lt;br /&gt;
=====Green FOG=====&lt;br /&gt;
&lt;br /&gt;
Added in version 0.16&lt;br /&gt;
&lt;br /&gt;
This module will simply shutdown/restart the client computer at a fixed schedule if no user is logged in.  The schedule can be defined via the management portal.  &lt;br /&gt;
&lt;br /&gt;
=====Snapin Client=====&lt;br /&gt;
&lt;br /&gt;
This module periodically checks in with the FOG server to see is the client has an snapin set to be deployed to it.  If a snapin is found AND no imaging  task is associated with the client, then the client will download the snapin and install it in the background.&lt;br /&gt;
&lt;br /&gt;
The configuration file contains settings for this module including:&lt;br /&gt;
&lt;br /&gt;
 checkintime=xxx&lt;br /&gt;
&lt;br /&gt;
where xxx is the number of seconds the service will wait between check-ins.  It is important to note that currently the fog client will wait 5 minutes when first connected / established before it starts checking and installing any snapins from the server.&lt;br /&gt;
&lt;br /&gt;
=====User Tracker=====&lt;br /&gt;
&lt;br /&gt;
This module attempts to track user access to the host computer by the Windows user name.  It attempts to track logins and logoffs as well as well as the state of the computer at service startup.  The service will even attempt to track users when they are not on the network by writing all entries to a journal file, then replying the journal the next time the client is on the network.&lt;br /&gt;
&lt;br /&gt;
There are no configuration settings for this module.&lt;br /&gt;
&lt;br /&gt;
=====User Cleanup=====&lt;br /&gt;
&lt;br /&gt;
This module will remove all users not white listed in management portal on log off.  This module is useful when using services like dynamic local user.  All entries in the management white list are treated as prefixes to usernames, which means that they will white list all users that start with whatever was entered in the management front end.  For example, if you enter '''admin''' in the management white list, then users '''admin''', and '''administrator''' will NOT be removed from the computer.&lt;br /&gt;
&lt;br /&gt;
=====Printer Manager=====&lt;br /&gt;
&lt;br /&gt;
This module checks on service startup to see what printers should be installed/removed from the client PC.&lt;br /&gt;
&lt;br /&gt;
There are no configuration settings for this module.&lt;br /&gt;
&lt;br /&gt;
=====Client Updater=====&lt;br /&gt;
&lt;br /&gt;
This module waits (randomly) between 60 and 500 seconds after service startup to check the local fog server for client updates, and if any are found the service will download and install them.  Updates will NOT take effect until after the service is restarted.&lt;br /&gt;
&lt;br /&gt;
There are no configuration settings for this module.&lt;br /&gt;
&lt;br /&gt;
==== Keeping Clients up to date ====&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
&lt;br /&gt;
As of version 0.12 of FOG, we have included a client updater module.  This module is no different from any of the other sub service modules.  This service waits anywhere between 60 and 500 seconds after the FOG service starts up, and then attempts to check with the server for newer FOG service modules.  If new modules are found the client will download them, and they will be active on the NEXT service startup.  These modules are controlled from the FOG Management Console.  &lt;br /&gt;
&lt;br /&gt;
Only certain modules can be updated, only those that are a sub class of AbstractFOGService.  This means you should '''NEVER''' attempt to update the FOGService executable (FOGService.exe file), or the AbstractFOGService.dll file.  It is recommended that you not update the ClientUpdater.dll, because if the ClientUpdater.dll file becomes corrupt or not functional, your clients will not be able to update from that point on.  Below are a list of the .dll files that can be updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;UserTracker.dll&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;TaskReboot.dll&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SnapinClient.dll&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;PrinterManager.dll&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;HostRegister.dll&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;HostnameChange.dll&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;GUIWatcher.dll&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;ClientUpdater.dll&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;config.ini&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Care must also be taken when updating the config.ini file, if the IP address is incorrect or the syntax of the file is incorrect, it could leave the FOG service crippled on the client computers.&lt;br /&gt;
&lt;br /&gt;
===== Posting Updates =====&lt;br /&gt;
&lt;br /&gt;
To add new modules that can be pushed down to clients, first install a client with the new service or new module and confirm that it works as you would like.  Log into the FOG management console, then go to the Infomation/Misc section (the little &amp;quot;i&amp;quot; icon).  Click on '''Client Updater''' on the left-hand menu.  Now click on the browse button to select the module (.dll) file you would like to post, then click on the upload button.  After uploading the file should appear in the table above.  If you are adding a new module, you will probably want to upload a new config.ini file to include new configuration settings required by that new module.&lt;br /&gt;
&lt;br /&gt;
==== FOG Tray ====&lt;br /&gt;
&lt;br /&gt;
The FOG Tray is a Windows application that runs on user login that docks in the system tray.  The FOG Tray, like the FOG service, is very modular in nature.  New modules can be dropped in the FOG tray directory and on next load they will be loaded.  This tray icon has the ability to communicate with the FOG service, this allows FOG more interactivity with the end-user.   &lt;br /&gt;
&lt;br /&gt;
What happens is that when the FOG service's printer manager module gets a request to set a default printer, the service attempts to contact the FOG Tray.  If communication is established, then the service will ask the tray to set the default printer.  On the other hand the end user can right click on the &amp;quot;F&amp;quot; icon in the system tray, then select printers, then update my printers.  What this will do is attempt to send a request from the FOG Tray to the FOG Service and have the service check for printer updates (new printers or printers to be removed).  If one is found the service will install any new printers assigned in the FOG Management portal.&lt;br /&gt;
&lt;br /&gt;
This application is in its very early stages and currently doesn't have a lot of functionality.  It is currently only used to allow end users to update their printers and to allow the setting of default printers (from the FOG service).  Our vision for the FOG Tray is to add modules that would allow users to install printers that are published as public (via the management portal) without the printer being directly assigned to their host.  We would also like to do the same thing for snapins where some of your snapins could be defined as public where anyone could install them on their computer.&lt;br /&gt;
&lt;br /&gt;
==== Troubleshooting ====&lt;br /&gt;
&lt;br /&gt;
If you have problems with the FOG Service, please refer to the log file that is located at:&lt;br /&gt;
&lt;br /&gt;
 c:\fog.log&lt;br /&gt;
&lt;br /&gt;
If the PXE boot does not work&lt;br /&gt;
&lt;br /&gt;
If booting from the fog server through pxe comes up with an error file not found, edit /etc/default/tftpd-hpa&lt;br /&gt;
&lt;br /&gt;
Change TFTP_DIRECTORY to&lt;br /&gt;
&lt;br /&gt;
TFTP_DIRECTORY=&amp;quot;/tftpboot&amp;quot;&lt;br /&gt;
Then&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/tftpd-hpa restart&lt;br /&gt;
&lt;br /&gt;
=== Snap-ins ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
The FOG Service has the ability to install snapins to the clients.  Snapins can be anything from whole applications like Microsoft Office to registry keys or desktop icons.  Snapins can even be used to uninstall applications or remove unwanted files.  For the end use's point of view, they will not even noticed that a snapin is being installed until it is complete.  At this point a message will notify them that a new application has been installed on their computer.  Snapins can be in MSI (0.17) or EXE formats, and can be created with any snapin creation tool like InstallRite or already packaged MSI files (0.17).  You can also push commands to the computer that include .vbs scripts / .cmd (commands) and .bat (batch scripts).&lt;br /&gt;
&lt;br /&gt;
==== Creating a Snapin / Overview ====&lt;br /&gt;
&lt;br /&gt;
FOG doesn't provide a tool to create snapins, but instead allows you to push files and execute them on the remote computers.  It is highly recommended that you push the actual installer to the computer instead of using a program such as InstallRite.  &lt;br /&gt;
&lt;br /&gt;
If you have never silently installed software to a computer, or created an answer file for a program please look at the website Appdeploy [http://www.appdeploy.com/articles/ Link] This website has an trove of information on how to push software to a computer remotely.&lt;br /&gt;
&lt;br /&gt;
===== Creating a Snapin for larger applications with SFX Maker =====&lt;br /&gt;
&lt;br /&gt;
Some larger applications such as Microsoft Office and Adobe Products (Acrobat / Creative Suite) require multiple files to install properly.  If you have an application that is not a single .exe please use SFX Maker.  This tool is free for non commercial use, and most programs fall under the GPL.  [http://www.isoft-online.com/ SFX Maker's Website]&lt;br /&gt;
&lt;br /&gt;
For instructions on how to use this software please see the youtube videos below.&lt;br /&gt;
&lt;br /&gt;
[http://www.youtube.com/watch?v=ZSMJLnRjn94 Office 2003 Install]&lt;br /&gt;
[http://www.youtube.com/watch?v=Qzc1Q9NW_cE Office 2007 Install]&lt;br /&gt;
&lt;br /&gt;
SFX Maker takes an entire folder and encapsulates it or &amp;quot;folds&amp;quot; it into a single .exe which then &amp;quot;unfolds&amp;quot; to its original state and launches a file or command.&lt;br /&gt;
&lt;br /&gt;
===== Creating a Snapin with InstallRite =====&lt;br /&gt;
&lt;br /&gt;
If for some reason you do wish to use Installrite please be aware it comes with issues and limitations (not compatible on all windows operating systems / can cause issues with the computer it is pushed to).  Below is an example of how to build a package with that software&lt;br /&gt;
&lt;br /&gt;
In this example we will use Epsilon Squared's InstallRite which can be downloaded from http://www.epsilonsquared.com/installrite.htm.  This application will package up your snapin as an exe file which will be uploaded to the FOG server. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To run InstallRite navigate to c:\program files\Epsilon Squared\InstallRite\InstallRite.exe&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click on &amp;quot;Install new software and create an InstallKit&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the Configure screen, click Next.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the Snapshot screen click next to create a new system snapshot.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the next screen,click the browse button to select the application you wish to install, then click next.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;When installation is complete InstallRite will come into focus, click the next button.  InstallRite will scan your system again.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter a name for your snapin.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click &amp;quot;Build Install Kit&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select &amp;quot;Quiet Installation Mode&amp;quot;, Never reboot, even if needed, and &amp;quot;Never prompt the user and only overwrite older files&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click OK and it will build your snapin.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Preparing the FOG Server ====&lt;br /&gt;
&lt;br /&gt;
If your snapin is larger than 2MB you will need to make two changes to the FOG server to allow uploads of larger than 2MB.  &lt;br /&gt;
&lt;br /&gt;
===== Fedora =====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#On the FOG Server click on Applications -&amp;gt; Accessories -&amp;gt; Text Editor.&lt;br /&gt;
#Select Open and navigate to &amp;quot;/etc/php.ini&amp;quot;&lt;br /&gt;
#Change UPLOAD_MAX_FILESIZE to 1900MB (On a 32Bit OS don't set this value above 2GB)&lt;br /&gt;
#Change POST_MAX_SIZE to the same value.&lt;br /&gt;
#Save and close the text editor.&lt;br /&gt;
#Click on Applications -&amp;gt;System Tools -&amp;gt; Terminal and type &amp;quot;service httpd restart&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Ubuntu =====&lt;br /&gt;
&lt;br /&gt;
#sudo gedit /etc/php5/apache2/php.ini&lt;br /&gt;
#Change &lt;br /&gt;
##memory_limit = 1900M&lt;br /&gt;
##post_max_size=1900M &lt;br /&gt;
##upload_max_filesize=1900M &lt;br /&gt;
#Save Changes&lt;br /&gt;
#sudo /etc/init.d/apache2 restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== VMWare =====&lt;br /&gt;
&lt;br /&gt;
#sudo vim /etc/php5/apache2/php.ini&lt;br /&gt;
#Edit the following lines in the document (read below for assistance with working in VIM)&lt;br /&gt;
##memory_limit = 1900M&lt;br /&gt;
##post_max_size=1900M &lt;br /&gt;
##upload_max_filesize=1900M &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*To edit content in vim you will need to press the '''&amp;quot;I&amp;quot;''' key on your keyboard to enter input mode.&lt;br /&gt;
*Hitting the '''Escape''' key will bring you out of input mode.&lt;br /&gt;
*Once out of input mode type ''':w''' and then '''enter''' to save the file&lt;br /&gt;
*Restart FOG once the file has been saved&lt;br /&gt;
&lt;br /&gt;
==== Uploading the Snapin ====&lt;br /&gt;
&lt;br /&gt;
[http://freeghost.sourceforge.net/videotutorials/CreateSnapin.swf.html Video Tutorial]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the FOG Management Portal click on the Snapin Icon (Puzzle Pieces).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;On the left-hand menu click on the New Snapin Button.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter a Snapin Name and Description.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Browse to the snapin file you wish to upload.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you want the computer to restart after the snapin is installed click on the &amp;quot;Reboot after install&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click &amp;quot;Add&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As of version 0.17, fog supports using typical msi files as snapin files.&lt;br /&gt;
&lt;br /&gt;
If the snapin file is a msi file you must perform these additional steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set '''Snapin Run With:''' to the path of msiexec.exe (ie: c:\windows\system32\msiexec.exe)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set '''Snapin Run With Arguments:''' to '''/i'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set '''Snapin Arguments:''' to '''/qn'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the snapin file is a .vb script you must perform these additional steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Set '''Snapin Run With:''' to the path of cscript.exe (ie: c:\windows\system32\cscript.exe)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Documentation on list of support snapin's and command line arguments''' [[http://www.fogproject.org/wiki/index.php?title=Supported_Snapin%27s_and_Command_Line_Switches]]  There are MANY more supported applications that can be installed via command line arguments.  You might have better luck installing them directly via .EXE / .MSI / or scripting them via .VBS .  For more info on this consult the forums --[[User:Ssx4life|Ssx4life]] 09:04, 8 October 2009 (MST)&lt;br /&gt;
&lt;br /&gt;
==== Linking the Snapin to Hosts ====&lt;br /&gt;
&lt;br /&gt;
In order for a snapin to be deployed it must be linked with a host.  To do this perform the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the FOG Management Portal, click on the Hosts Icon.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Search for and select a host and click on the edit button.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Scroll down to the snapin section.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Select the snapin you just created from the drop-down box and click the &amp;quot;Add Snapin&amp;quot; button.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The next time you image the computer the FOG Service will attempt to install that snapin.  If you have problems, please see the fog log file located at c:\fog.log on the client PC.&lt;br /&gt;
&lt;br /&gt;
=== Client Side Tasks ===&lt;br /&gt;
&lt;br /&gt;
==== FOG Version ====&lt;br /&gt;
&lt;br /&gt;
Applies to version 0.12 or higher.&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
FOG attempts to keep management centralized, but in an attempt to make deploying machines as easy as possible FOG has added a few basic client side tasks.    These tasks can be run from the client computer during the PXE boot process.  When the client boots and the FOG banner is displayed the pxe client will display a prompt like '''boot:''' or something similar.  At this point you have 3 seconds to start typing one of the following commands.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;fog.memtest&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;fog.reg&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;fog.reginput&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== fog.memtest ====&lt;br /&gt;
&lt;br /&gt;
This command will run the memtest86+ on the client computer.  &lt;br /&gt;
&lt;br /&gt;
==== fog.reg ====&lt;br /&gt;
&lt;br /&gt;
This command will run the basic host registration and inventory process without any user input.  It will register any new/unregistered hosts with the FOG server and pull a basic hardware inventory from them.  The hostname of the computer will be the same as the MAC address without the &amp;quot;:&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If a host is already registered, then only an inventory will be performed.&lt;br /&gt;
&lt;br /&gt;
==== fog.reginput ====&lt;br /&gt;
&lt;br /&gt;
[http://freeghost.sourceforge.net/videotutorials/RegImage.swf.html View Host Registration Video]&lt;br /&gt;
&lt;br /&gt;
This command will run the full host registration process with user input, inventory and give the option to push down an image, all at the same time.  During this process the user registering the host will be prompted for the computer host name, ip address, operating system ID, image ID, Primary User of the computer, asset tag 1, and asset tag 2.  &lt;br /&gt;
&lt;br /&gt;
If a valid hostname, os id, and image id are given and the option is selected to image the workstation after registration, the host will reboot and an imaging send will began.  &lt;br /&gt;
&lt;br /&gt;
If a host is already registered, then only an inventory will be performed, this prevents end-users from re-registering a machine with a different hostname, etc.&lt;br /&gt;
&lt;br /&gt;
This tasks was designed for institutions that may get shipments of hundreds of computers that need to be deployed very quickly.  They can be unboxed, inventoried, imported into FOG and imaged very quickly.  &lt;br /&gt;
&lt;br /&gt;
===== Operating System ID =====&lt;br /&gt;
&lt;br /&gt;
As of Version 0.17 of fog, you can now enter '''?''' at the Operating System ID prompt to get a listing of the valid operating system id values.  &lt;br /&gt;
&lt;br /&gt;
The following are valid values for operating system IDs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt; - Windows 2000 / Windows XP&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt; - Windows Vista&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt; - Windows 98&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;4&amp;lt;/b&amp;gt; - Windows (Other)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt; - Windows 7&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;50&amp;lt;/b&amp;gt; - Linux&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;99&amp;lt;/b&amp;gt; - Other&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Image ID =====&lt;br /&gt;
&lt;br /&gt;
Image IDs can be found in the management console, in the Images section.  Search for the image, and click on the edit button associated with the image, &lt;br /&gt;
the image id will be in the Address/url bar in the format of &amp;lt;b&amp;gt;&amp;amp;imageid=xx&amp;lt;/b&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As of version 0.17, you can enter '''?''' at the Image ID prompt to get a listing of all your images and their ID numbers.&lt;br /&gt;
&lt;br /&gt;
=== Active Directory Integration ===&lt;br /&gt;
&lt;br /&gt;
==== Setup ====&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
&lt;br /&gt;
FOG has the ability to register a host with Active Directory, in a limited sense.  Versions of FOG up to and including 0.28 rely on the netdom.exe executable that is provided as part the support tools on the Windows installation media.  In order for Active Directory integration to function, your image will need to have the FOG service installed, along with the Windows Support Tools.&lt;br /&gt;
&lt;br /&gt;
Versions of FOG from (and including) 0.29 have this functionality built in and do NOT require netdom.exe or the support tools to be installed.&lt;br /&gt;
&lt;br /&gt;
It is also very important that before uploading your image that the computer is NOT a member of any domain.&lt;br /&gt;
&lt;br /&gt;
===== Security =====&lt;br /&gt;
&lt;br /&gt;
'''Important - Please read!'''&lt;br /&gt;
&lt;br /&gt;
In order to add a computer to a domain, FOG requires a username and password of an account that has rights to the OU where the computer objects are stored in the domain tree.  This user account should have rights to join computers to the Domain, as well as sufficient rights to create/manage computer objects.  FOG attempts to keep your password secure by encrypting it, but since FOG is open source, it is possible for someone to decrypt your password if you don't change the FOG &amp;quot;Passkey.&amp;quot;  It is highly recommended that you change this Passkey before implementing the AD integration in a production environment.  Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and only need to be done one time.  Please see the documentation below.&lt;br /&gt;
&lt;br /&gt;
===== Preparing the Image =====&lt;br /&gt;
&lt;br /&gt;
Before uploading an image to FOG that you would like to use with Active Directory, please ensure that the image:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;is NOT a member of the domain, change the computer membership to workgroup instead.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;has  support tools installed (Not required for FOG versions from 0.29).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;has the FOG service installed.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== FOG Setup =====&lt;br /&gt;
&lt;br /&gt;
To setup a host to use AD, navigate to the hosts section of the FOG management portal.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Search for, and select a host. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click on the Edit button&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Scroll down to the Active Directory section.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Check the box next to Join Domain after image task&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the (fully qualified) domain name e.g. mydomain.com&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the Organizational Unit where you would like to have the computer stored in AD.  Leave if blank for the default. (Must be in LDAP format).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the user name that has access to the computer objects. Include the name of your domain, i.e. mydomain\username&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Enter the encrypted password.  This password must be encrypted with the [[FOGCrypt]] utility.  This utility is located in the FOGCrypt folder of the FOG download package.  It is a Windows command line application. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Click Update.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The next time you image that computer the service will attempt to register the host with the domain information provided.  If you have problems please refer to the FOG Service log file located in c:\fog.log&lt;br /&gt;
&lt;br /&gt;
===== Making AD Integration Easier =====&lt;br /&gt;
&lt;br /&gt;
As of version 0.20 of FOG, we have made it a bit easier to manage AD settings in FOG, by allowing for default settings for AD.  This will allow the easy population of the domain, OU, username, and password.  To set this feature up perform the following:&lt;br /&gt;
&lt;br /&gt;
# Go to '''Other Information''' -&amp;gt; '''FOG Settings'''&lt;br /&gt;
# Set your default values for the following:&lt;br /&gt;
## FOG_AD_DEFAULT_DOMAINNAME&lt;br /&gt;
## FOG_AD_DEFAULT_OU&lt;br /&gt;
## FOG_AD_DEFAULT_USER&lt;br /&gt;
## FOG_AD_DEFAULT_PASSWORD (MUST BE ENCRYPTED!)&lt;br /&gt;
&lt;br /&gt;
To test everything out, go to a host that doesn't have anything setup for AD, and click on the edit button for that host.  Go to the host menu, and select Active Directory.  Click on the '''Join Domain after image task:''' button and all your default values should be populated.&lt;br /&gt;
&lt;br /&gt;
==== Securing Active Directory Integration ====&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
&lt;br /&gt;
In order to add a computer to a domain, FOG requires a username and password that has rights to the OU where the computer objects are stored in the domain tree.  FOG attempts to keep your password secure by encrypting it, but since FOG is open source and the methods used to encrypt the password are open for all to see, it is possible for someone to decrypt your password if you don't change the FOG &amp;quot;Passkey.&amp;quot;  It is highly recommended that you change this Passkey before implementing the AD integration in a production environment.  Changing the Passkey requires you to recompile the FOG Service's Hostname change module, but don't panic this isn't hard and it only needs to be done one time. &lt;br /&gt;
&lt;br /&gt;
===== The Development Environment =====&lt;br /&gt;
&lt;br /&gt;
The hostname change module is written in c#, so in order to recompile it you will need to download Microsoft's Visual Studio Express Edition for C#.  This can be downloaded from: &lt;br /&gt;
&lt;br /&gt;
http://www.microsoft.com/express/vcsharp/&lt;br /&gt;
&lt;br /&gt;
Install Visual Studio with the standard options.&lt;br /&gt;
&lt;br /&gt;
===== Getting the Source =====&lt;br /&gt;
&lt;br /&gt;
After Visual Studio Express is installed now we need to get the source code for the hostname change module.  This is part of FOG download/installation package. This package can be downloaded from:&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/project/showfiles.php?group_id=201099 &lt;br /&gt;
&lt;br /&gt;
Extract this package, then navigate to  &amp;quot;FOG Service\src\FOG_HostNameChanger\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Double-click on HostNameChange.sln to open the project. &lt;br /&gt;
&lt;br /&gt;
If you are asked to convert the project to the latest version, click the Finish button.&lt;br /&gt;
&lt;br /&gt;
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project &amp;gt; hostnamechanger properties. On the Application tab, change the Target Framework to .NET 2.0 &lt;br /&gt;
&lt;br /&gt;
Once the project has opened, on the right-hand panel, in the &amp;quot;Solution Explorer&amp;quot;, double-click on MOD_HostNameChanger.cs.&lt;br /&gt;
&lt;br /&gt;
After do so, you should get the source code to display in the main panel, scroll down to the line:&lt;br /&gt;
&lt;br /&gt;
 private const String PASSKEY = &amp;quot;FOG-OpenSource-Imaging&amp;quot;; &lt;br /&gt;
&lt;br /&gt;
Change  '''FOG-OpenSource-Imaging''' to anything you like, just remember what you change it to, as you will need it later.&lt;br /&gt;
&lt;br /&gt;
Then click File  -&amp;gt; Save All.&lt;br /&gt;
&lt;br /&gt;
Then click Build -&amp;gt; Build Solution.&lt;br /&gt;
&lt;br /&gt;
This will recompile the hostname change module with your unique key.&lt;br /&gt;
&lt;br /&gt;
Now navigate to  &amp;quot;FOG Service\src\FOG_HostNameChanger\bin\Release&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Copy only the file HostnameChange.dll to &amp;quot;FOG Service\src\FOG Service\bin\Release&amp;quot; (overwrite existing file).&lt;br /&gt;
&lt;br /&gt;
Navigate to  &amp;quot;FOG Service\src\FOG Service\&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Open the solution by double-clicking &amp;quot;FogService.sln&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you are asked to convert the project to the latest version, click the Finish button.&lt;br /&gt;
&lt;br /&gt;
If you are using Visual Studion 2010, you need to change the target .NET framework to .NET 2.0. Do this by going to Project &amp;gt; FOGService properties. On the Application tab, change the Target Framework to .NET 2.0 &lt;br /&gt;
&lt;br /&gt;
Change the build configuration from debug to release&lt;br /&gt;
&lt;br /&gt;
Right click on &amp;quot;FOG Service Install&amp;quot; and click &amp;quot;Build&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Navigate to &amp;quot;FOG Service\src\FOG Service Installer\Release&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Select the 2 files, right-click -&amp;gt; Send To -&amp;gt; Compressed Folder&lt;br /&gt;
&lt;br /&gt;
Copy the .zip file to your FOG Server &amp;quot;/var/www/html/fog/client&amp;quot;. Overwrite the existing file.&lt;br /&gt;
&lt;br /&gt;
===== Encrypting Your Password =====&lt;br /&gt;
&lt;br /&gt;
Now that we have changed the passkey, we need you update the FOGCrypt ini file to use this new passkey.  &lt;br /&gt;
&lt;br /&gt;
Navigate to the FOGCrypt\etc directory from the FOG download package.&lt;br /&gt;
&lt;br /&gt;
Open the config.ini file and change the passkey value to your new passkey, then save the file.&lt;br /&gt;
&lt;br /&gt;
Now open a command window and  navigate using the cd command to the FOGCrypt directory.&lt;br /&gt;
&lt;br /&gt;
Type:&lt;br /&gt;
&lt;br /&gt;
 FOGCrypt [password]&lt;br /&gt;
&lt;br /&gt;
Where [password] is the AD user's password that has rights to the Computers section of the AD tree.&lt;br /&gt;
&lt;br /&gt;
The output from this command is what you will enter in the FOG management portal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== FOG Reports ===&lt;br /&gt;
&lt;br /&gt;
==== FOG Version ====&lt;br /&gt;
&lt;br /&gt;
Relates to FOG Version 0.12 or higher. &lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
FOG Reports allow you to export data from FOG in two major formats including CSV, and PDF.&lt;br /&gt;
&lt;br /&gt;
#'''Snapin Log''' - This report will report on snapin installation history.  &lt;br /&gt;
#'''Imaging Log''' -  This report will report on images deployed to hosts.&lt;br /&gt;
#'''Virus History''' - This report lists any viruses that were found on locate computers. &lt;br /&gt;
#'''Inventory''' - This report will report on the inventory information collect for network clients. &lt;br /&gt;
#'''Equipment Loan''' - This report can be used for equipment loaned to staff members.  &lt;br /&gt;
#'''User Login History''' - This report contains information about user logins.&lt;br /&gt;
&lt;br /&gt;
==== Running Reports ====&lt;br /&gt;
&lt;br /&gt;
Running a report can be done from the Reports section of FOG, then by picking a report from the left-hand menu.&lt;br /&gt;
&lt;br /&gt;
==== Importing User Created Reports ====&lt;br /&gt;
&lt;br /&gt;
The reporting section of FOG allows for the end user to create and upload custom reports into FOG.  A FOG report is a simple php script that is processed by the server.  To import a report simply click on the '''Upload a Report''' button in the reports section, select the report then click on the upload button.  The report will then show up on the left-hand menu.  &lt;br /&gt;
&lt;br /&gt;
Please be cautious when uploading reports from an unknown source as the writer of the report has full access to the FOG system and database!  Make sure your sources are trustworthy before importing a report!&lt;br /&gt;
&lt;br /&gt;
==== Creating Custom Report ====&lt;br /&gt;
&lt;br /&gt;
Custom reports are simple php scripts in FOG.  Custom reports can be created based on the following template:&lt;br /&gt;
&lt;br /&gt;
[http://freeghost.sf.net/other/ReportTemplate.tar.gz Report Template]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other Settings ===&lt;br /&gt;
&lt;br /&gt;
==== [[Boot Image Key Map]] ====&lt;br /&gt;
&lt;br /&gt;
==== FOG Client Kernel ====&lt;br /&gt;
&lt;br /&gt;
===== Overview =====&lt;br /&gt;
 &lt;br /&gt;
In FOG, there aren't really drivers you need to find and download for your clients to work, this is because we ship a Linux kernel that has the majority of hardware device built into it.  What this means is if you have a device that doesn't work with FOG you need to either build a new kernel yourself or try a newer kernel that has been released via our kernel updater.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Kernel Types =====&lt;br /&gt;
&lt;br /&gt;
We currently build two &amp;quot;lines&amp;quot; of kernels, one called KS or KitchenSink.  This kernel tries to include drivers for as many devices as possible, sometimes as the cost of performance, and this is the kernel that we ship with FOG by default.  The other &amp;quot;line&amp;quot; is the PS kernel or the Peter Sykes kernel, which is a based on a config submitted by a user.  This kernel line tries to be faster, but may not include as many drivers as the KS kernel.  &lt;br /&gt;
&lt;br /&gt;
===== Updating the Kernel =====&lt;br /&gt;
&lt;br /&gt;
It is possible to update your client kernel from within the UI of FOG.  To do this perform the following steps:&lt;br /&gt;
&lt;br /&gt;
#Log into the FOG Management UI.&lt;br /&gt;
#Go to '''Other Information'''&lt;br /&gt;
#Select '''Kernel Updates'''&lt;br /&gt;
#Select the Kernel you would like to download, typically the newest kernels are on the top of the list.&lt;br /&gt;
#Click the download icon&lt;br /&gt;
#Select a file name for your kernel, to make it the default kernel leave the name as '''bzImage'''&lt;br /&gt;
#Click the '''Next''' Button&lt;br /&gt;
&lt;br /&gt;
=== Mobile Management Interface ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
&lt;br /&gt;
The FOG Mobile web interface is a very basic, stripped down interface for FOG.  It is designed to be given to lower level technicians using low powered, mobile devices such as iPod touches, iPhone, PDAs, and internet tablets.  The idea behind this interface is to make it easy for techs to re-image a computer while making the rounds at a site.&lt;br /&gt;
&lt;br /&gt;
==== Using the mobile Interface ====&lt;br /&gt;
&lt;br /&gt;
The mobile interface can be access via:&lt;br /&gt;
&lt;br /&gt;
http://x.x.x.x/fog/mobile&lt;br /&gt;
&lt;br /&gt;
The portal requires a valid user name in password, which can be created via the FOG portal. &lt;br /&gt;
&lt;br /&gt;
[[Image:Ipod login.JPG]]&lt;br /&gt;
&lt;br /&gt;
Once logged into the portal, users can search for hosts and image them, and view/cancel active tasks.  &lt;br /&gt;
&lt;br /&gt;
[[Image:Ipod results.JPG]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Ipod active.JPG]]&lt;br /&gt;
&lt;br /&gt;
They can not change image associations, nor modify any properties of a host.&lt;/div&gt;</summary>
		<author><name>Chad-bisd</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=7647</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=7647"/>
				<updated>2012-06-13T22:01:05Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Additional Info */  added device to list&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;
=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>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Setting_up_ProxyDHCP&amp;diff=4556</id>
		<title>Setting up ProxyDHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Setting_up_ProxyDHCP&amp;diff=4556"/>
				<updated>2011-11-04T02:30:52Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Redirected page to Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Using FOG with an unmodifiable DHCP server/ Using FOG with no DHCP server]]&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Category:Ufr&amp;diff=4496</id>
		<title>Category:Ufr</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Category:Ufr&amp;diff=4496"/>
				<updated>2011-10-28T15:39:29Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: added another note for admins to remove call to the Db-spammer template after they block/review a user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Users for Review=&lt;br /&gt;
&lt;br /&gt;
This is a hidden category which may contain a list of users who should be reviewed by the admins and blocked, possibly indefinitely, due to spamming.&lt;br /&gt;
&lt;br /&gt;
'''ADMINISTRATORS''': Please do not delete this category if empty.  An empty category means all users identified as potential spammers have been blocked.&lt;br /&gt;
&lt;br /&gt;
'''ADMINISTRATORS''': After review, please remove the call to the &amp;lt;nowiki&amp;gt;{{Db-spammer}}&amp;lt;/nowiki&amp;gt; template from the user page. If a blocked user is still showing up here, please edit their user page to remove the call to the &amp;lt;nowiki&amp;gt;{{Db-spammer}}&amp;lt;/nowiki&amp;gt; template.&lt;br /&gt;
&lt;br /&gt;
__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Template:Db-spammer&amp;diff=4459</id>
		<title>Template:Db-spammer</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Template:Db-spammer&amp;diff=4459"/>
				<updated>2011-10-28T15:20:18Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: bolded another note to administrators and asked them to remove the tag once they have review/blocked the user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border:2px solid black;color:#ff0000;background-color:#ffffff;font-weight:bold;&amp;quot;&amp;gt;&lt;br /&gt;
This user appears to be a spammer/bot.  All [[Special:Contributions/{{PAGENAME}}|contribs]] by this [[User:{{PAGENAME}}|user]] should be reviewed.  '''ADMINISTRATORS''', please consider blocking this user indefinitely.&lt;br /&gt;
&lt;br /&gt;
Remove this tag when the user is either blocked, or identified as a legitimate editor.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
'''ADMINISTRATORS''': Please do not delete this template.  It is an effort to help easily identify spammers and make them for review/deletion without having to constantly scan recent changes.&lt;br /&gt;
&lt;br /&gt;
Usage: Replace the contents with, or add this to the top of the user page for suspected spammer or spambot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{Db-spammer}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Ufr]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Category:Candidates_for_speedy_deletion&amp;diff=4455</id>
		<title>Category:Candidates for speedy deletion</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Category:Candidates_for_speedy_deletion&amp;diff=4455"/>
				<updated>2011-10-28T15:07:58Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: added administrator note.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pages in this category qualify for immediate deletion by an admin.&lt;br /&gt;
&lt;br /&gt;
'''ADMINISTRATORS''': Please do not delete this category if empty.  An empty category means no articles have been identified as definite SPAM and marked for speedy deletion.&lt;br /&gt;
&lt;br /&gt;
__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Template:Db-spam&amp;diff=4450</id>
		<title>Template:Db-spam</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Template:Db-spam&amp;diff=4450"/>
				<updated>2011-10-28T13:52:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: changed style on message&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border:2px solid black;color:#ff0000;background-color:#ffffff;font-weight:bold;font-size:large;&amp;quot;&amp;gt;&lt;br /&gt;
This article is spam and needs to be deleted.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Candidates for speedy deletion]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=User:Chad-bisd&amp;diff=4373</id>
		<title>User:Chad-bisd</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=User:Chad-bisd&amp;diff=4373"/>
				<updated>2011-10-26T06:55:21Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Undo revision 4344 by Jacksongir1 (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hello.  My name is Chad Swanson.  I started using FOG in August 2011 after using Novell Zenworks Configuration Management, v11 for almost a year.  I'm a fan of open source software.  I consume the products and give back by trying to support those that also use open source products, and by contributing as much as I can to the developers that create those projects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Chad Swanson&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Adding_Storage_to_a_FOG_Server&amp;diff=4308</id>
		<title>Adding Storage to a FOG Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Adding_Storage_to_a_FOG_Server&amp;diff=4308"/>
				<updated>2011-10-17T06:11:33Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: fixed discuss value in call to Merge template&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Merge|target=Moving your images directory/Adding Storage to the Images directory|discuss=Talk:Adding Storage to a FOG Server}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This tutorial will cover how to add an additional hard disk to a server and mount it as /images.  For example if you installed the host operating system on a drive that was 80GB, now you wish to add a new 1TB hard disk to mount as /images keeping the rest of the OS on the 80GB disk.&lt;br /&gt;
&lt;br /&gt;
In this tutorial we are assuming you are using Ubuntu and that the disk you are installing is not formatted.  If the drive is formatted, it may mount automatically, if you does, right click on it and select dismount.  &lt;br /&gt;
&lt;br /&gt;
=== Preparing new disk ===&lt;br /&gt;
&lt;br /&gt;
*Connect the new drive to the host system.&lt;br /&gt;
*Determine device name by typing &lt;br /&gt;
 sudo fdisk -l&lt;br /&gt;
It should look something like /dev/sdb (without a number after it), we will refer to this as [yourdevice].  &lt;br /&gt;
&lt;br /&gt;
'''Make sure this is correct because we will be destroying everything on this device, so make sure the disk capacity matches, etc.'''&lt;br /&gt;
&lt;br /&gt;
*Lets wipe out the MBR and then some, type&lt;br /&gt;
 sudo dd if=/dev/zero of=[yourdevice] count=20 bs=512&lt;br /&gt;
&lt;br /&gt;
=== Partitioning ===&lt;br /&gt;
&lt;br /&gt;
*Now lets partition it&lt;br /&gt;
 sudo fdisk [yourdevice]&lt;br /&gt;
 n&lt;br /&gt;
 p&lt;br /&gt;
 1&lt;br /&gt;
 1&lt;br /&gt;
 [press enter]&lt;br /&gt;
 t&lt;br /&gt;
 83&lt;br /&gt;
 a&lt;br /&gt;
 1&lt;br /&gt;
 w&lt;br /&gt;
&lt;br /&gt;
=== Formating and Mounting ===&lt;br /&gt;
&lt;br /&gt;
*Put a filesystem on it&lt;br /&gt;
 sudo mkfs.ext3 [yourdevice]1 (add a 1 to the end of your device name!)&lt;br /&gt;
*Your device is setup!  Lets move your old images directory.&lt;br /&gt;
 sudo mv /images /images.old&lt;br /&gt;
*Create the new mountpoint&lt;br /&gt;
 sudo mkdir /images&lt;br /&gt;
*Now lets mount your new driver as /images&lt;br /&gt;
 sudo mount -t ext3 /dev/sdb1 /images&lt;br /&gt;
*Make sure the new driver is mounted&lt;br /&gt;
 mount&lt;br /&gt;
You are looking for '''[yourdevice] on /images'''&lt;br /&gt;
*Copy your old images and data to the new device&lt;br /&gt;
 sudo cp -av /images.old/* /images/&lt;br /&gt;
*Create the .mntcheck file in the new images folder&lt;br /&gt;
 sudo touch /images/.mntcheck&lt;br /&gt;
*Now make sure your new device gets mounted at system startup&lt;br /&gt;
 sudo gedit /etc/fstab&lt;br /&gt;
*Add the following line:&lt;br /&gt;
  [yourdevice]1	/images 	ext3   defaults   0   0&lt;br /&gt;
[yourdevice] should have the number 1 at the end of it.&lt;br /&gt;
*Change permissions on the device&lt;br /&gt;
 sudo chmod 777 -R /images&lt;br /&gt;
*Now restart and make sure the new image volume mounts.&lt;br /&gt;
&lt;br /&gt;
[[Category:Storage]][[Category:HowTo|AddStorage]]&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Template:Merge&amp;diff=4305</id>
		<title>Template:Merge</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Template:Merge&amp;diff=4305"/>
				<updated>2011-10-17T06:05:02Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--{{Merge}} begin --&amp;gt;{{Mbox|image=[[Image:Merge-arrows.gif|50px|alt=|link=]]|text=It has been suggested that this article or section be merged with ''[[{{{target}}}]]''. ([[{{{discussion|{{{discuss|:{{TALKPAGENAME}}}}}}}}|Discuss]])&lt;br /&gt;
}}&amp;lt;!--{{Merge}} end--&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This template can be used to mark an article as a candidate for merging into another article.  Do not use &amp;lt;nowiki&amp;gt;{{subst:}}&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
[[Category:Articles for merging]]&lt;br /&gt;
&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Error_mounting_NFS_server_127.0.0.1&amp;diff=4304</id>
		<title>Error mounting NFS server 127.0.0.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Error_mounting_NFS_server_127.0.0.1&amp;diff=4304"/>
				<updated>2011-10-17T06:03:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Merge|target=Error mounting NFS server 172.0.0.1|discuss=Talk:Error mounting NFS server 127.0.0.1}}&lt;br /&gt;
&lt;br /&gt;
* Set FOG_PXE_IMAGE_DNSADDRESS to your DNS server ip address.&lt;br /&gt;
* Set FOG_USE_SLOPPY_NAME_LOOKUPS to 1.&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Error_mounting_NFS_server_172.0.0.1&amp;diff=4302</id>
		<title>Error mounting NFS server 172.0.0.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Error_mounting_NFS_server_172.0.0.1&amp;diff=4302"/>
				<updated>2011-10-17T05:59:35Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Merge|target=Error mounting NFS server 127.0.0.1|discuss=Talk:Error mounting NFS server 127.0.0.1}}&lt;br /&gt;
&lt;br /&gt;
== error monting nfs share 127.0.0.1 ==&lt;br /&gt;
This seems to be an error related to the FOG settings configuration. &lt;br /&gt;
&lt;br /&gt;
 Under FOG Settings &amp;gt; make sure NFS server settings points to &amp;lt;your static ipaddadress&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=User_talk:Jzhang88&amp;diff=4263</id>
		<title>User talk:Jzhang88</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=User_talk:Jzhang88&amp;diff=4263"/>
				<updated>2011-10-13T19:18:03Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;Curious why you deleted my Template:Db-spam.  This is what I used to mark articles for deletion and remove their content. ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Curious why you deleted my [[Template:Db-spam]].  This is what I used to mark articles for deletion and remove their content. [[User:Chad-bisd|Chad-bisd]] 12:18, 13 October 2011 (MST)&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Talk:Adding_Storage_to_a_FOG_Server&amp;diff=4260</id>
		<title>Talk:Adding Storage to a FOG Server</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Talk:Adding_Storage_to_a_FOG_Server&amp;diff=4260"/>
				<updated>2011-10-13T16:19:22Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;i tried to install an new HD into my FOG server and i followed all the instructions but the new drive doesn't mount automatically nor does it seem to mount as /images.  obviously i am missing something - any ideas?&lt;br /&gt;
&lt;br /&gt;
This is for discussion about the article itself, not for asking questions about how to use/fix Fog.  Please use the forums on the official website http://www.fogproject.org/ and we'll be glad to help. [[User:Chad-bisd|Chad-bisd]] 09:19, 13 October 2011 (MST)&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Hook_System&amp;diff=4199</id>
		<title>Hook System</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Hook_System&amp;diff=4199"/>
				<updated>2011-10-02T22:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Undo revision 4196 by Erscott (talk) ----- Spam added by user Erscott&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hook System Overview ==&lt;br /&gt;
From SVN version 741 (yet to be released as an official version) FOG has the ability to be &amp;quot;hooked&amp;quot; and extended using an Object Orientated approach.&lt;br /&gt;
&lt;br /&gt;
Events are called throughout FOG, allowing developers to hook into FOG at certain code points without editing FOG's base code. &lt;br /&gt;
&lt;br /&gt;
Right now the Event list gives you the ability modify Data and Styling on all Management Search &amp;amp; List pages.&lt;br /&gt;
&lt;br /&gt;
Keep in mind that this code is still experimental and may change at any time.&lt;br /&gt;
&lt;br /&gt;
== Critical Files ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lib/fog/Hook.class.php&lt;br /&gt;
lib/fog/HookManager.class.php&lt;br /&gt;
lib/hooks/*.hook.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hook Class Variables &amp;amp; Methods ==&lt;br /&gt;
'''Variables'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class ExampleHook extends Hook&lt;br /&gt;
{&lt;br /&gt;
	// Required&lt;br /&gt;
	var $name = 'string';&lt;br /&gt;
	var $description = 'string';&lt;br /&gt;
	var $author = 'string';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	// Optional with defaults&lt;br /&gt;
	var $active = true;&lt;br /&gt;
	var $logLevel = 0;&lt;br /&gt;
	var $logToFile = false;&lt;br /&gt;
	var $logToBrowser = true;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Inherited Methods'''&lt;br /&gt;
&lt;br /&gt;
Methods that are available within your Hook Class&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Function: void log( string $txt [, int $level = 1] )&lt;br /&gt;
Example: $this-&amp;gt;log('Debug alert !! Run for the hills !!');&lt;br /&gt;
&lt;br /&gt;
Function: bool isAJAXRequest()&lt;br /&gt;
Example: if (!$this-&amp;gt;isAJAXRequest()) print_r($debug);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Enabling / Disabling Hooks ==&lt;br /&gt;
Hooks can be enabled and disabled by changing the variable $active inside of the class you wish to enable / disable;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''To Enable''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var $active = true;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''To Disable''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var $active = false;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to Hook Events ==&lt;br /&gt;
Hook Events are called in various parts of the FOG code. Hooking these Events is very simple.&lt;br /&gt;
&lt;br /&gt;
'''Example for Event: HostData'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ExampleHook = new ExampleHook();&lt;br /&gt;
$HookManager-&amp;gt;register('HostData', array($ExampleHook, 'HostData'));  // This will call the function HostData( array $arguments ) in $ExampleHook&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''A full list of Events can be found here: http://www.fogproject.org/wiki/index.php?title=Hook_System#Events''&lt;br /&gt;
&lt;br /&gt;
== Function Arguments ==&lt;br /&gt;
When an Event Hook is fired, various arguments are passed to the function specified. These arguments may vary.&lt;br /&gt;
&lt;br /&gt;
'''Returned argument indexes'''&lt;br /&gt;
&lt;br /&gt;
'event'		: Always returned. Returns the name of the event fired to get here&lt;br /&gt;
&lt;br /&gt;
'data'		: Contains data variables used to replace %name% strings in 'templates'&lt;br /&gt;
&lt;br /&gt;
'templates'	: Each index will become a new column. Using %name% variables will be converted to the matching key index in 'data'&lt;br /&gt;
&lt;br /&gt;
'attributes'	: Array of attributes to apply to each column wrapper. i.e. class, width, height, style&lt;br /&gt;
&lt;br /&gt;
'''Example'''&lt;br /&gt;
&lt;br /&gt;
Here is an example showing the data passed from the HostData Event&lt;br /&gt;
&lt;br /&gt;
''Code''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function run($arguments)&lt;br /&gt;
{&lt;br /&gt;
	$this-&amp;gt;log(print_r($arguments, 1));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Output''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Array&lt;br /&gt;
(&lt;br /&gt;
	[event] =&amp;gt; 'HostData'&lt;br /&gt;
	[data] =&amp;gt; Array&lt;br /&gt;
	(&lt;br /&gt;
		[0] =&amp;gt; Array&lt;br /&gt;
		(&lt;br /&gt;
			[id] =&amp;gt; '968'&lt;br /&gt;
			[hostname] =&amp;gt; '12583-M780'&lt;br /&gt;
			[mac] =&amp;gt; '00:23:18:ef:b4:8d'&lt;br /&gt;
		)&lt;br /&gt;
		[1] =&amp;gt; Array&lt;br /&gt;
		(&lt;br /&gt;
			[id] =&amp;gt; '966'&lt;br /&gt;
			[hostname] =&amp;gt; '12700-M780'&lt;br /&gt;
			[mac] =&amp;gt; '00:23:18:72:50:8d'&lt;br /&gt;
		) &lt;br /&gt;
		[2] =&amp;gt; Array&lt;br /&gt;
		(&lt;br /&gt;
			[id] =&amp;gt; '1011'&lt;br /&gt;
			[hostname] =&amp;gt; '12703-M780'&lt;br /&gt;
			[mac] =&amp;gt; '00:23:18:97:a8:8d'&lt;br /&gt;
		)&lt;br /&gt;
		[3] =&amp;gt; Array&lt;br /&gt;
		(&lt;br /&gt;
			[id] =&amp;gt; '1251'&lt;br /&gt;
			[hostname] =&amp;gt; '12705-M780'&lt;br /&gt;
			[mac] =&amp;gt; '00:23:18:60:26:96'&lt;br /&gt;
		)&lt;br /&gt;
	)&lt;br /&gt;
	[templates] =&amp;gt; Array&lt;br /&gt;
	(&lt;br /&gt;
		[0] =&amp;gt; '&amp;lt;input type=&amp;quot;checkbox&amp;quot; name=&amp;quot;HID%id%&amp;quot; checked=&amp;quot;checked&amp;quot; /&amp;gt;'&lt;br /&gt;
		[1] =&amp;gt; '&amp;lt;span class=&amp;quot;icon ping&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;'&lt;br /&gt;
		[2] =&amp;gt; '&amp;lt;a href=&amp;quot;?node=host&amp;amp;sub=edit&amp;amp;id=%id%&amp;quot; title=&amp;quot;Edit&amp;quot;&amp;gt;%hostname%&amp;lt;/a&amp;gt;'&lt;br /&gt;
		[3] =&amp;gt; '%mac%'&lt;br /&gt;
		[4] =&amp;gt; '%ip%'&lt;br /&gt;
		[5] =&amp;gt; '&amp;lt;a href=&amp;quot;?node=host&amp;amp;sub=edit&amp;amp;id=%id%&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;icon icon-edit&amp;quot; title=&amp;quot;Edit: %hostname%&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;'&lt;br /&gt;
	)&lt;br /&gt;
	[attributes] =&amp;gt; Array&lt;br /&gt;
	(&lt;br /&gt;
		[0] =&amp;gt; Array ( )&lt;br /&gt;
		[1] =&amp;gt; Array ( )&lt;br /&gt;
		[2] =&amp;gt; Array ( )&lt;br /&gt;
		[3] =&amp;gt; Array ( )&lt;br /&gt;
		[4] =&amp;gt; Array ( )&lt;br /&gt;
		[5] =&amp;gt; Array ( ['class'] =&amp;gt; 'c' )&lt;br /&gt;
	)&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hook Template ==&lt;br /&gt;
This is the most basic hook template&amp;lt;br /&amp;gt;&lt;br /&gt;
Your hook MUST extend the FOG Hook Class 'Hook' otherwise HookManager will fail to Hook the Event&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Location: '''lib/hooks/Template.hook.php'''&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/****************************************************&lt;br /&gt;
 * FOG Hook: Template&lt;br /&gt;
 *	Author:		Blackout&lt;br /&gt;
 *	Created:	8:57 AM 31/08/2011&lt;br /&gt;
 *	Revision:	$Revision: 743 $&lt;br /&gt;
 *	Last Update:	$LastChangedDate: 2011-09-04 11:50:55 +1000 (Sun, 04 Sep 2011) $&lt;br /&gt;
 ***/&lt;br /&gt;
&lt;br /&gt;
// Hook Template&lt;br /&gt;
class HookTemplate extends Hook&lt;br /&gt;
{&lt;br /&gt;
	var $name = 'Hook Name';&lt;br /&gt;
	var $description = 'Hook Description';&lt;br /&gt;
	var $author = 'Hook Author';&lt;br /&gt;
	&lt;br /&gt;
	var $active = false;&lt;br /&gt;
	&lt;br /&gt;
	function HostData($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		$this-&amp;gt;log(print_r($arguments, 1));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Init class&lt;br /&gt;
$HookTemplate = new HookTemplate();&lt;br /&gt;
&lt;br /&gt;
// Hook Event&lt;br /&gt;
$HookManager-&amp;gt;register('HostData', array($HookTemplate, 'HostData'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
Hook Events allow you to jump into the FOG code at a certain point. When an event is fired, data and styling information related to that event can be made available to the Hook Developer for modification.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Adding hooking points can be a time consuming process as the HTML, Data and Styling needs to be (re-)written in a particular way to allow hooking.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
More events will be added. If you require a particular hooking point, please contact Blackout with where the Hook needs to be made and any code you have developed :)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Global&lt;br /&gt;
CSS&lt;br /&gt;
JavaScript&lt;br /&gt;
MainMenuData				// data =&amp;gt; array&lt;br /&gt;
SubMenuData				// FOGSubMenu =&amp;gt; FOGSubMenu Object&lt;br /&gt;
MessageBox				// data =&amp;gt; string&lt;br /&gt;
&lt;br /&gt;
// Host Management&lt;br /&gt;
// List / Search&lt;br /&gt;
HostTableHeader&lt;br /&gt;
HostData&lt;br /&gt;
HostAfterTable&lt;br /&gt;
// Edit&lt;br /&gt;
HostEditUpdate				// host =&amp;gt; Host Object&lt;br /&gt;
HostEditUpdateSuccess			// host =&amp;gt; Host Object&lt;br /&gt;
HostEditUpdateFail			// host =&amp;gt; Host Object&lt;br /&gt;
HostEditConfirmMACUpdate		// host =&amp;gt; Host Object&lt;br /&gt;
HostEditConfirmMACUpdateSuccess		// host =&amp;gt; Host Object, mac = MACAddress Object&lt;br /&gt;
HostEditConfirmMACUpdateFail		// host =&amp;gt; Host Object, mac = MACAddress Object&lt;br /&gt;
HostEditADUpdate&lt;br /&gt;
HostEditADUpdateSuccess&lt;br /&gt;
HostEditADUpdateFail&lt;br /&gt;
HostEditAddSnapinUpdate&lt;br /&gt;
HostEditAddSnapinUpdateSuccess&lt;br /&gt;
HostEditAddSnapinUpdateFail&lt;br /&gt;
HostEditRemoveSnapinUpdate&lt;br /&gt;
HostEditRemoveSnapinUpdateSuccess&lt;br /&gt;
HostEditRemoveSnapinUpdateFail&lt;br /&gt;
&lt;br /&gt;
// Group Management&lt;br /&gt;
GroupTableHeader&lt;br /&gt;
GroupData&lt;br /&gt;
GroupAfterTable&lt;br /&gt;
&lt;br /&gt;
// Image Management&lt;br /&gt;
ImageTableHeader&lt;br /&gt;
ImageData&lt;br /&gt;
ImageAfterTable&lt;br /&gt;
&lt;br /&gt;
// Storage Node Management&lt;br /&gt;
// All Storage Nodes&lt;br /&gt;
StorageGroupTableHeader&lt;br /&gt;
StorageGroupData&lt;br /&gt;
StorageGroupAfterTable&lt;br /&gt;
// All Storage Groups&lt;br /&gt;
StorageNodeTableHeader&lt;br /&gt;
StorageNodeData&lt;br /&gt;
StorageNodeAfterTable&lt;br /&gt;
&lt;br /&gt;
// Snapin Management&lt;br /&gt;
SnapinTableHeader&lt;br /&gt;
SnapinData&lt;br /&gt;
SnapinAfterTable&lt;br /&gt;
&lt;br /&gt;
// Printer Management&lt;br /&gt;
PrinterTableHeader&lt;br /&gt;
PrinterData&lt;br /&gt;
PrinterAfterTable&lt;br /&gt;
&lt;br /&gt;
// Task Management&lt;br /&gt;
// Active Tasks&lt;br /&gt;
TasksActiveTableHeader&lt;br /&gt;
TasksActiveData&lt;br /&gt;
TasksActiveAfterTable&lt;br /&gt;
TasksActiveRemove&lt;br /&gt;
TasksActiveRemoveSuccess&lt;br /&gt;
TasksActiveRemoveFail&lt;br /&gt;
TasksActiveForce&lt;br /&gt;
TasksActiveForceSuccess&lt;br /&gt;
TasksActiveForceFail&lt;br /&gt;
// Search&lt;br /&gt;
TaskData&lt;br /&gt;
TasksSearchTableHeader&lt;br /&gt;
// List Hosts&lt;br /&gt;
TasksListHostTableHeader&lt;br /&gt;
TasksListHostData&lt;br /&gt;
TasksListHostAfterTable&lt;br /&gt;
// List Group&lt;br /&gt;
TasksListGroupTableHeader&lt;br /&gt;
TasksListGroupData&lt;br /&gt;
TasksListGroupAfterTable&lt;br /&gt;
// Scheduled Tasks&lt;br /&gt;
TasksScheduledTableHeader&lt;br /&gt;
TasksScheduledData&lt;br /&gt;
TasksScheduledAfterTable&lt;br /&gt;
TasksScheduledRemove&lt;br /&gt;
TasksScheduledRemoveSuccess&lt;br /&gt;
TasksScheduledRemoveFail&lt;br /&gt;
// Active Multicast Tasks&lt;br /&gt;
TasksActiveMulticastTableHeader&lt;br /&gt;
TasksActiveMulticastData&lt;br /&gt;
TasksActiveMulticastAfterTable&lt;br /&gt;
// Active Snapins&lt;br /&gt;
TasksActiveSnapinsTableHeader&lt;br /&gt;
TasksActiveSnapinsData&lt;br /&gt;
TasksActiveSnapinsAfterTable&lt;br /&gt;
TasksActiveSnapinsRemove			// id =&amp;gt; snapinID, hostID =&amp;gt; hostID&lt;br /&gt;
TasksActiveSnapinsRemoveSuccess			// id =&amp;gt; snapinID, hostID =&amp;gt; hostID&lt;br /&gt;
TasksActiveSnapinsRemoveFail			// id =&amp;gt; snapinID, hostID =&amp;gt; hostID&lt;br /&gt;
&lt;br /&gt;
// Login&lt;br /&gt;
Login						// username =&amp;gt; string, password =&amp;gt; string&lt;br /&gt;
LoginSuccess					// username =&amp;gt; string, password =&amp;gt; string, user =&amp;gt; User Object&lt;br /&gt;
LoginFail					// username =&amp;gt; string, password =&amp;gt; string&lt;br /&gt;
&lt;br /&gt;
// Logout&lt;br /&gt;
Logout&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Up to date as of SVN r759''&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
'''HostVNCLink'''&lt;br /&gt;
&lt;br /&gt;
Adds a &amp;quot;VNC&amp;quot; link to the Host Lists&lt;br /&gt;
&lt;br /&gt;
Location: '''lib/hooks/HostVNCLink.hook.php'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/****************************************************&lt;br /&gt;
 * FOG Hook: HostVNCLink&lt;br /&gt;
 *	Author:		Blackout&lt;br /&gt;
 *	Created:	9:26 AM 3/09/2011&lt;br /&gt;
 *	Revision:	$Revision: 743 $&lt;br /&gt;
 *	Last Update:	$LastChangedDate: 2011-09-04 11:50:55 +1000 (Sun, 04 Sep 2011) $&lt;br /&gt;
 ***/&lt;br /&gt;
&lt;br /&gt;
// HostVNCLink - custom hook class&lt;br /&gt;
class HostVNCLink extends Hook&lt;br /&gt;
{&lt;br /&gt;
	// Class variables&lt;br /&gt;
	var $name = 'HostVNCLink';&lt;br /&gt;
	var $description = 'Adds a &amp;quot;VNC&amp;quot; link to the Host Lists';&lt;br /&gt;
	var $author = 'Blackout';&lt;br /&gt;
	&lt;br /&gt;
	var $active = false;&lt;br /&gt;
	&lt;br /&gt;
	// Custom variable&lt;br /&gt;
	var $port = 5800;&lt;br /&gt;
	&lt;br /&gt;
	function HostData($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		// Add column template into 'templates' array&lt;br /&gt;
		$arguments['templates'][] = sprintf('&amp;lt;a href=&amp;quot;http://%s:%d&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;VNC&amp;lt;/a&amp;gt;', '%hostname%', $this-&amp;gt;port);&lt;br /&gt;
		// Add these HTML attributes to that column&lt;br /&gt;
		$arguments['attributes'][] = array('class' =&amp;gt; 'c');&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function HostTableHeader($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		// Add new Header column with the content 'VNC'&lt;br /&gt;
		$arguments['templates'][] = 'VNC';&lt;br /&gt;
		// Add these HTML attributes to that column&lt;br /&gt;
		$arguments['attributes'][] = array('width' =&amp;gt; '40', 'class' =&amp;gt; 'c');&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Init&lt;br /&gt;
$HostVNCLink = new HostVNCLink();&lt;br /&gt;
&lt;br /&gt;
// Register hooks with HookManager on desired events&lt;br /&gt;
$HookManager-&amp;gt;register('HostData', array($HostVNCLink, 'HostData'));&lt;br /&gt;
$HookManager-&amp;gt;register('HostTableHeader', array($HostVNCLink, 'HostTableHeader'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''RemoveIPAddressColumn'''&lt;br /&gt;
&lt;br /&gt;
Removes the &amp;quot;IP Address&amp;quot; column from Host Lists&lt;br /&gt;
&lt;br /&gt;
Location: '''lib/hooks/RemoveIPAddressColumn.hook.php'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/****************************************************&lt;br /&gt;
 * FOG Hook: Remove 'IP Address' column&lt;br /&gt;
 *	Author:		Blackout&lt;br /&gt;
 *	Created:	1:52 PM 3/09/2011&lt;br /&gt;
 *	Revision:	$Revision: 743 $&lt;br /&gt;
 *	Last Update:	$LastChangedDate: 2011-09-04 11:50:55 +1000 (Sun, 04 Sep 2011) $&lt;br /&gt;
 ***/&lt;br /&gt;
&lt;br /&gt;
// RemoveIPAddressColumn class&lt;br /&gt;
class RemoveIPAddressColumn extends Hook&lt;br /&gt;
{&lt;br /&gt;
	var $name = 'RemoveIPAddressColumn';&lt;br /&gt;
	var $description = 'Removes the &amp;quot;IP Address&amp;quot; column from Host Lists';&lt;br /&gt;
	var $author = 'Blackout';&lt;br /&gt;
	&lt;br /&gt;
	var $active = false;&lt;br /&gt;
	&lt;br /&gt;
	function HostTableHeader($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		// Remove IP Address column by removing its column template&lt;br /&gt;
		unset($arguments['templates'][4]);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	function HostData($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		// Remove IP Address column by removing its column template&lt;br /&gt;
		unset($arguments['templates'][4]);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Init&lt;br /&gt;
$RemoveIPAddressColumn = new RemoveIPAddressColumn();&lt;br /&gt;
&lt;br /&gt;
// Register hooks&lt;br /&gt;
$HookManager-&amp;gt;register('HostTableHeader', array($RemoveIPAddressColumn, 'HostTableHeader'));&lt;br /&gt;
$HookManager-&amp;gt;register('HostData', array($RemoveIPAddressColumn, 'HostData'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Example.ChangeTableHeader'''&lt;br /&gt;
&lt;br /&gt;
Remove &amp;amp; add table header columns&lt;br /&gt;
&lt;br /&gt;
Location: '''lib/hooks/Example.ChangeTableHeader.hook.php'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/****************************************************&lt;br /&gt;
 * FOG Hook: Example Change Table Header&lt;br /&gt;
 *	Author:		Blackout&lt;br /&gt;
 *	Created:	8:57 AM 31/08/2011&lt;br /&gt;
 *	Revision:	$Revision: 743 $&lt;br /&gt;
 *	Last Update:	$LastChangedDate: 2011-09-04 11:50:55 +1000 (Sun, 04 Sep 2011) $&lt;br /&gt;
 ***/&lt;br /&gt;
&lt;br /&gt;
// Example class&lt;br /&gt;
class TestHookChangeTableHeader extends Hook&lt;br /&gt;
{&lt;br /&gt;
	var $name = 'ChangeTableHeader';&lt;br /&gt;
	var $description = 'Remove &amp;amp; add table header columns';&lt;br /&gt;
	var $author = 'Blackout';&lt;br /&gt;
	&lt;br /&gt;
	var $active = false;&lt;br /&gt;
	&lt;br /&gt;
	function HostTableHeader($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		// DEBUG output&lt;br /&gt;
		foreach ($arguments['templates'] AS $i =&amp;gt; $data)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;log(sprintf('Table Rows: i: %s Data: %s', $i, print_r($data, 1)));&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Rename column 'Host Name' -&amp;gt; 'Chicken Sandwiches'&lt;br /&gt;
		$arguments['templates'][2] = 'Chicken Sandwiches';&lt;br /&gt;
		&lt;br /&gt;
		// Override column values &amp;amp; attributes&lt;br /&gt;
		$arguments['templates'][5] = 'Edit Me !!';&lt;br /&gt;
		$arguments['attributes'][5] = array('width' =&amp;gt; '40', 'class' =&amp;gt; 'c');&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Example: Change Table Header and Data&lt;br /&gt;
$HookManager-&amp;gt;register('HostTableHeader', array(new TestHookChangeTableHeader(), 'HostTableHeader'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''Example.ChangeData'''&lt;br /&gt;
&lt;br /&gt;
Appends &amp;quot;Chicken-&amp;quot; to all hostnames&lt;br /&gt;
&lt;br /&gt;
Location: '''lib/hooks/Example.ChangeData.hook.php'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/****************************************************&lt;br /&gt;
 * FOG Hook: Example Change Hostname&lt;br /&gt;
 *	Author:		Blackout&lt;br /&gt;
 *	Created:	8:57 AM 31/08/2011&lt;br /&gt;
 *	Revision:	$Revision: 743 $&lt;br /&gt;
 *	Last Update:	$LastChangedDate: 2011-09-04 11:50:55 +1000 (Sun, 04 Sep 2011) $&lt;br /&gt;
 ***/&lt;br /&gt;
&lt;br /&gt;
// Example class&lt;br /&gt;
class TestHookChangeHostname extends Hook&lt;br /&gt;
{&lt;br /&gt;
	var $name = 'ChangeHostname';&lt;br /&gt;
	var $description = 'Appends &amp;quot;Chicken-&amp;quot; to all hostnames ';&lt;br /&gt;
	var $author = 'Blackout';&lt;br /&gt;
	&lt;br /&gt;
	var $active = false;&lt;br /&gt;
	&lt;br /&gt;
	function HostData($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		foreach ($arguments['data'] AS $i =&amp;gt; $data)&lt;br /&gt;
		{&lt;br /&gt;
			// DEBUG&lt;br /&gt;
			//$this-&amp;gt;log(sprintf('Renaming Host: i: %s Data: %s', $i, print_r($data, 1)));&lt;br /&gt;
			&lt;br /&gt;
			// Rename host&lt;br /&gt;
			$arguments['data'][$i]['hostname'] = 'Chicken-' . $data['hostname'];&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Example: Test by changing all hostnames in Host Management&lt;br /&gt;
$HookManager-&amp;gt;register('HostData', array(new TestHookChangeHostname(), 'HostData'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Example.SideMenuChange'''&lt;br /&gt;
&lt;br /&gt;
Example showing how to manipulate SubMenu Data. Adds Menu items under &amp;quot;Host Management&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Location: '''lib/hooks/Example.SideMenuChange.hook.php'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/****************************************************&lt;br /&gt;
 * FOG Hook: Example.SideMenuChange&lt;br /&gt;
 *	Author:		Blackout&lt;br /&gt;
 *	Created:	12:10 PM 4/09/2011&lt;br /&gt;
 *	Revision:	$Revision: 743 $&lt;br /&gt;
 *	Last Update:	$LastChangedDate: 2011-09-04 11:50:55 +1000 (Sun, 04 Sep 2011) $&lt;br /&gt;
 ***/&lt;br /&gt;
&lt;br /&gt;
// Hook Template&lt;br /&gt;
class HookSubMenuData extends Hook&lt;br /&gt;
{&lt;br /&gt;
	var $name = 'SubMenuData';&lt;br /&gt;
	var $description = 'Example showing how to manipulate SubMenu Data. Adds Menu items under &amp;quot;Host Management&amp;quot;';&lt;br /&gt;
	var $author = 'Blackout';&lt;br /&gt;
	&lt;br /&gt;
	var $active = false;&lt;br /&gt;
	&lt;br /&gt;
	function SubMenuData($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		if ($GLOBALS['node'] == 'host')&lt;br /&gt;
		{&lt;br /&gt;
			// Add a new item under 'Host Management'&lt;br /&gt;
			$arguments['FOGSubMenu']-&amp;gt;addItems('host', array(_('New Hook Item') =&amp;gt; 'http://www.google.com', _('New Hook Item 2') =&amp;gt; &amp;quot;newhookitem2&amp;quot;));&lt;br /&gt;
			&lt;br /&gt;
			if ($GLOBALS['id'])&lt;br /&gt;
			{&lt;br /&gt;
				// Add a new item under 'Host Management' per Host&lt;br /&gt;
				$arguments['FOGSubMenu']-&amp;gt;addItems('host', array(_('New Hook Item') =&amp;gt; &amp;quot;http://www.google.com&amp;quot;, _('New Hook Item 2') =&amp;gt; &amp;quot;newhookitem2&amp;quot;), 'id', $GLOBALS['hostname']);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Init class&lt;br /&gt;
$HookSubMenuData = new HookSubMenuData();&lt;br /&gt;
&lt;br /&gt;
// Hook Event&lt;br /&gt;
$HookManager-&amp;gt;register('SubMenuData', array($HookSubMenuData, 'SubMenuData'));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging ==&lt;br /&gt;
&lt;br /&gt;
Using the 'Hook Debugger' hook, you can debug all hook events to browser and/or log file&lt;br /&gt;
&lt;br /&gt;
Location: '''lib/hooks/HookDebugger.hook.php'''&lt;br /&gt;
&lt;br /&gt;
'''You must enable this hook''' ''See: http://www.fogproject.org/wiki/index.php?title=Hook_System#Enabling_.2F_Disabling_Hooks''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/****************************************************&lt;br /&gt;
 * FOG Hook: HookDebugger&lt;br /&gt;
 *	Author:		Blackout&lt;br /&gt;
 *	Created:	8:57 AM 31/08/2011&lt;br /&gt;
 *	Revision:	$Revision: 744 $&lt;br /&gt;
 *	Last Update:	$LastChangedDate: 2011-09-04 12:02:48 +1000 (Sun, 04 Sep 2011) $&lt;br /&gt;
 ***/&lt;br /&gt;
&lt;br /&gt;
// HookDebugger class&lt;br /&gt;
class HookDebugger extends Hook&lt;br /&gt;
{&lt;br /&gt;
	var $name = 'HookDebugger';&lt;br /&gt;
	var $description = 'Prints all Hook data to the web page and/or file when a hook is encountered';&lt;br /&gt;
	var $author = 'Blackout';&lt;br /&gt;
	&lt;br /&gt;
	var $active = false;&lt;br /&gt;
	&lt;br /&gt;
	var $logLevel = 9;&lt;br /&gt;
	var $logToFile = false;		// Logs to: lib/hooks/HookDebugger.log&lt;br /&gt;
	var $logToBrowser = true;&lt;br /&gt;
	&lt;br /&gt;
	function run($arguments)&lt;br /&gt;
	{&lt;br /&gt;
		$this-&amp;gt;log(print_r($arguments, 1));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Debug all events&lt;br /&gt;
$HookDebugger = new HookDebugger();&lt;br /&gt;
foreach ($HookManager-&amp;gt;events AS $event)&lt;br /&gt;
{&lt;br /&gt;
	$HookManager-&amp;gt;register($event, array($HookDebugger, 'run'));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Talk:Hook_System_Basics&amp;diff=4193</id>
		<title>Talk:Hook System Basics</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Talk:Hook_System_Basics&amp;diff=4193"/>
				<updated>2011-09-30T16:53:59Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;I redirect this to the Hook System article until content is added or this article is removed as extraneous. Thanks, ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I redirect this to the [[Hook System]] article until content is added or this article is removed as extraneous. Thanks, [[User:Chad-bisd|Chad-bisd]] 09:53, 30 September 2011 (MST)&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Hook_System_Basics&amp;diff=4192</id>
		<title>Hook System Basics</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Hook_System_Basics&amp;diff=4192"/>
				<updated>2011-09-30T16:53:29Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Redirected page to Hook System&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Hook System]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Talk:Hook_System_Classes&amp;diff=4191</id>
		<title>Talk:Hook System Classes</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Talk:Hook_System_Classes&amp;diff=4191"/>
				<updated>2011-09-30T16:52:51Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;I set this to redirect to the Hook System article until something is added or this page can be deleted as extraneous.  Thanks, ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I set this to redirect to the [[Hook System]] article until something is added or this page can be deleted as extraneous.  Thanks, [[User:Chad-bisd|Chad-bisd]] 09:52, 30 September 2011 (MST)&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Hook_System_Classes&amp;diff=4190</id>
		<title>Hook System Classes</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Hook_System_Classes&amp;diff=4190"/>
				<updated>2011-09-30T16:52:02Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Redirected page to Hook System&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Hook System]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=FOGController&amp;diff=4188</id>
		<title>FOGController</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=FOGController&amp;diff=4188"/>
				<updated>2011-09-30T16:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: /* Overview */  added Category:Development&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
FOGController is a new Chainable PHP Class developed for use in FOG web applications.&lt;br /&gt;
This Class acts as an abstraction layer between PHP's data and its database entry.&lt;br /&gt;
&lt;br /&gt;
The Class is an abstract Class, providing a base for FOG Classes to build from.&lt;br /&gt;
All you need to do is describe to the Class the relationship between your Database fields and common names used when accessing the data.&lt;br /&gt;
&lt;br /&gt;
* Please note all of this is developmental and could change at any moment&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
&lt;br /&gt;
== Variables &amp;amp; Methods  ==&lt;br /&gt;
'''Variables and their defaults'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
abstract class FOGController&lt;br /&gt;
{&lt;br /&gt;
	// Table&lt;br /&gt;
	protected $databaseTable = '';&lt;br /&gt;
&lt;br /&gt;
	// Name -&amp;gt; Database field name&lt;br /&gt;
	protected $databaseFields = array();&lt;br /&gt;
&lt;br /&gt;
	// Do not update these database fields&lt;br /&gt;
	protected $databaseFieldsToIgnore = array(&lt;br /&gt;
		'createdBy',&lt;br /&gt;
		'createdTime'&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
	// Allow setting / getting of these additional fields&lt;br /&gt;
	protected $additionalFields = array();&lt;br /&gt;
&lt;br /&gt;
	// Required database fields&lt;br /&gt;
	protected $databaseFieldsRequired = array(&lt;br /&gt;
		'id',&lt;br /&gt;
		'name'&lt;br /&gt;
	);&lt;br /&gt;
&lt;br /&gt;
	// Store data array&lt;br /&gt;
	protected $data = array();&lt;br /&gt;
&lt;br /&gt;
	// Auto save class data on __destruct&lt;br /&gt;
	protected $autoSave = false;&lt;br /&gt;
&lt;br /&gt;
	// DEBUG mode - print all Errors &amp;amp; SQL queries&lt;br /&gt;
	protected $debug = false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Methods'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$this	public function __construct($data)&lt;br /&gt;
$this	public function __destruct()&lt;br /&gt;
$this	public function set($key, $value)&lt;br /&gt;
$this	public function get($key)&lt;br /&gt;
$this	public function add($key, $value)&lt;br /&gt;
$this	public function remove($key, $object)&lt;br /&gt;
boolean public function save()&lt;br /&gt;
boolean public function load($field = 'id')&lt;br /&gt;
boolean public function destroy($field = 'id')&lt;br /&gt;
void	public function error($txt, $data = array())&lt;br /&gt;
void	public function info($txt, $data = array())&lt;br /&gt;
boolean public function isValid()&lt;br /&gt;
boolean private function isTableDefined()&lt;br /&gt;
string	public function __toString()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
This is an example of FOG's up coming OS Class in v0.33&lt;br /&gt;
&lt;br /&gt;
'''OS.class.php'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class OS extends FOGController&lt;br /&gt;
{&lt;br /&gt;
	// Table&lt;br /&gt;
	protected $databaseTable = 'os';&lt;br /&gt;
	&lt;br /&gt;
	// Name -&amp;gt; Database field name&lt;br /&gt;
	protected $databaseFields = array(&lt;br /&gt;
		'id'		=&amp;gt; 'osID',&lt;br /&gt;
		'name'		=&amp;gt; 'osName',&lt;br /&gt;
		'description'	=&amp;gt; 'osDescription'&lt;br /&gt;
	);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Only $databaseFields is required.&lt;br /&gt;
&lt;br /&gt;
Providing $databaseTable gives access to FOGControllers save() and load() functions.&lt;br /&gt;
&lt;br /&gt;
'''Example: Add new OS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// New OS Object&lt;br /&gt;
$OS = new OS();&lt;br /&gt;
&lt;br /&gt;
// Set name -&amp;gt; Set description -&amp;gt; Save to database (returns true on success)&lt;br /&gt;
if ($OS-&amp;gt;set('name', 'Windows 8')-&amp;gt;set('description', 'more junk')-&amp;gt;save())&lt;br /&gt;
{&lt;br /&gt;
	// id property is added after a successful save&lt;br /&gt;
	$FOGCore-&amp;gt;setMessage(sprintf('OS Added: ID: %s, Name: %s', $OS-&amp;gt;get('id'), $OS-&amp;gt;get('name')));&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
	$FOGCore-&amp;gt;setMessage(sprintf('Failed to add: %s', $OS-&amp;gt;get('name')));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Redirect back to self&lt;br /&gt;
$FOGCore-&amp;gt;redirect();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Example: Update an Existing OS'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// OS ID Variable&lt;br /&gt;
$id = '1';&lt;br /&gt;
// Load OS - auto loads from database when ID is passed&lt;br /&gt;
$OS = new OS($id);&lt;br /&gt;
&lt;br /&gt;
// Is OS valid? (was it loaded from the database correctly)&lt;br /&gt;
if ($OS-&amp;gt;isValid())&lt;br /&gt;
{&lt;br /&gt;
	print_r($OS);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Class ==&lt;br /&gt;
'''FOGController.class.php'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// Blackout - 1:28 PM 23/09/2011&lt;br /&gt;
abstract class FOGController&lt;br /&gt;
{&lt;br /&gt;
	// Table&lt;br /&gt;
	protected $databaseTable = '';&lt;br /&gt;
	&lt;br /&gt;
	// Name -&amp;gt; Database field name&lt;br /&gt;
	protected $databaseFields = array();&lt;br /&gt;
	&lt;br /&gt;
	// Do not update these database fields&lt;br /&gt;
	protected $databaseFieldsToIgnore = array(&lt;br /&gt;
		'createdBy',&lt;br /&gt;
		'createdTime'&lt;br /&gt;
	);&lt;br /&gt;
	&lt;br /&gt;
	// Allow setting / getting of these additional fields&lt;br /&gt;
	protected $additionalFields = array();&lt;br /&gt;
	&lt;br /&gt;
	// Required database fields&lt;br /&gt;
	protected $databaseFieldsRequired = array(&lt;br /&gt;
		'id',&lt;br /&gt;
		'name'&lt;br /&gt;
	);&lt;br /&gt;
	&lt;br /&gt;
	// Store data array&lt;br /&gt;
	protected $data = array();&lt;br /&gt;
	&lt;br /&gt;
	// Auto save class data on __destruct&lt;br /&gt;
	protected $autoSave = false;&lt;br /&gt;
	&lt;br /&gt;
	// DEBUG mode - print all Errors &amp;amp; SQL queries&lt;br /&gt;
	protected $debug = true;	&lt;br /&gt;
	&lt;br /&gt;
	// Database Class&lt;br /&gt;
	protected $db;&lt;br /&gt;
	&lt;br /&gt;
	// Construct&lt;br /&gt;
	public function __construct($data)&lt;br /&gt;
	{&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			// Error checking&lt;br /&gt;
			if (!count($this-&amp;gt;databaseFields))&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('No database fields defined for this class!');&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Database&lt;br /&gt;
			$this-&amp;gt;db = $GLOBALS['db'];&lt;br /&gt;
			&lt;br /&gt;
			// Add incoming data&lt;br /&gt;
			if (is_array($data))&lt;br /&gt;
			{&lt;br /&gt;
				// Iterate data -&amp;gt; Set data&lt;br /&gt;
				foreach ($data AS $key =&amp;gt; $value)&lt;br /&gt;
				{&lt;br /&gt;
					$this-&amp;gt;set($key, $value);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			// If incoming data is an INT -&amp;gt; Set as ID -&amp;gt; Load from database&lt;br /&gt;
			elseif (is_numeric($data))&lt;br /&gt;
			{&lt;br /&gt;
				if ($data &amp;lt;= 0)&lt;br /&gt;
				{&lt;br /&gt;
					throw new Exception(sprintf('ID less than or equal to 0: Data: %s', $data));&lt;br /&gt;
					//return false;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				$this-&amp;gt;set('id', $data)-&amp;gt;load();&lt;br /&gt;
			}&lt;br /&gt;
			// Unknown data format&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('No data array or ID passed!');&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		catch (Exception $e)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;error('Create Class Failed: Class: %s, Error: %s', array(get_class($this), $e-&amp;gt;getMessage()));&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return $this;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Destruct&lt;br /&gt;
	public function __destruct()&lt;br /&gt;
	{&lt;br /&gt;
		// Auto save&lt;br /&gt;
		if ($this-&amp;gt;autoSave)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;save();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Set&lt;br /&gt;
	public function set($key, $value)&lt;br /&gt;
	{&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			$databaseFieldsRev = array_flip($this-&amp;gt;databaseFields);&lt;br /&gt;
			&lt;br /&gt;
			if (!array_key_exists($key, $this-&amp;gt;databaseFields) &amp;amp;&amp;amp; !in_array($key, $this-&amp;gt;additionalFields) &amp;amp;&amp;amp; !array_key_exists($key, $databaseFieldsRev))&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('Invalid data being set');&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (array_key_exists($key, $databaseFieldsRev))&lt;br /&gt;
			{&lt;br /&gt;
				$key = $databaseFieldsRev[$key];&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			$this-&amp;gt;data[$key] = $value;&lt;br /&gt;
		}&lt;br /&gt;
		catch (Exception $e)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;error('Set Failed: Class: %s, Key: %s, Value: %s, Error: %s', array(get_class($this), $key, $value, $e-&amp;gt;getMessage()));&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return $this;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Get&lt;br /&gt;
	public function get($key)&lt;br /&gt;
	{&lt;br /&gt;
		return (isset($this-&amp;gt;data[$key]) ? $this-&amp;gt;data[$key] : '');&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	public function __set($key, $value)&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;set($key, $value);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public function __get($key)&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;get($key);&lt;br /&gt;
	}&lt;br /&gt;
	*/&lt;br /&gt;
	&lt;br /&gt;
	// Add&lt;br /&gt;
	public function add($key, $value)&lt;br /&gt;
	{&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			$databaseFieldsRev = array_flip($this-&amp;gt;databaseFields);&lt;br /&gt;
			&lt;br /&gt;
			if (!array_key_exists($key, $this-&amp;gt;databaseFields) &amp;amp;&amp;amp; !in_array($key, $this-&amp;gt;additionalFields) &amp;amp;&amp;amp; !array_key_exists($key, $databaseFieldsRev))&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('Invalid data being set');&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (array_key_exists($key, $databaseFieldsRev))&lt;br /&gt;
			{&lt;br /&gt;
				$key = $databaseFieldsRev[$key];&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			$this-&amp;gt;data[$key][] = $value;&lt;br /&gt;
		}&lt;br /&gt;
		catch (Exception $e)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;error('Add Failed: Class: %s, Key: %s, Value: %s, Error: %s', array(get_class($this), $key, $value, $e-&amp;gt;getMessage()));&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return $this;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Remove&lt;br /&gt;
	public function remove($key, $object)&lt;br /&gt;
	{&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			$databaseFieldsRev = array_flip($this-&amp;gt;databaseFields);&lt;br /&gt;
			&lt;br /&gt;
			if (!array_key_exists($key, $this-&amp;gt;databaseFields) &amp;amp;&amp;amp; !in_array($key, $this-&amp;gt;additionalFields) &amp;amp;&amp;amp; !array_key_exists($key, $databaseFieldsRev))&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('Invalid data being set');&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (array_key_exists($key, $databaseFieldsRev))&lt;br /&gt;
			{&lt;br /&gt;
				$key = $databaseFieldsRev[$key];&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			foreach ((array)$this-&amp;gt;data[$key] AS $i =&amp;gt; $data)&lt;br /&gt;
			{&lt;br /&gt;
				if ($data-&amp;gt;get('id') != $object-&amp;gt;get('id'))&lt;br /&gt;
				{&lt;br /&gt;
					$newDataArray[] = $data;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			$this-&amp;gt;data[$key] = (array)$newDataArray;&lt;br /&gt;
		}&lt;br /&gt;
		catch (Exception $e)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;error('Remove Failed: Class: %s, Key: %s, Object: %s, Error: %s', array(get_class($this), $key, $object, $e-&amp;gt;getMessage()));&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return $this;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Save&lt;br /&gt;
	public function save()&lt;br /&gt;
	{&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			// Error checking&lt;br /&gt;
			if (!$this-&amp;gt;isTableDefined())&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('No Table defined for this class');&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Variables&lt;br /&gt;
			$fieldData = array();&lt;br /&gt;
			$fieldsToUpdate = $this-&amp;gt;databaseFields;&lt;br /&gt;
			$fieldToName = array_flip($this-&amp;gt;databaseFields);&lt;br /&gt;
			&lt;br /&gt;
			// Remove unwanted fields for update query&lt;br /&gt;
			foreach ($this-&amp;gt;databaseFields AS $name =&amp;gt; $fieldName)&lt;br /&gt;
			{&lt;br /&gt;
				if (in_array($name, $this-&amp;gt;databaseFieldsToIgnore))&lt;br /&gt;
				{&lt;br /&gt;
					unset($fieldsToUpdate[$name]);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Build insert key and value arrays&lt;br /&gt;
			foreach ($this-&amp;gt;databaseFields AS $name =&amp;gt; $fieldName)&lt;br /&gt;
			{&lt;br /&gt;
				$insertKeys[] = $this-&amp;gt;db-&amp;gt;sanitize($fieldName);&lt;br /&gt;
				$insertValues[] = $this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;get($name));&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Build update field array using filtered data&lt;br /&gt;
			foreach ($fieldsToUpdate AS $name =&amp;gt; $fieldName)&lt;br /&gt;
			{&lt;br /&gt;
				$updateData[] = sprintf(&amp;quot;`%s`='%s'&amp;quot;, $this-&amp;gt;db-&amp;gt;sanitize($fieldName), $this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;get($name)));&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Insert &amp;amp; Update query all-in-one&lt;br /&gt;
			$query = sprintf(&amp;quot;INSERT INTO `%s` (`%s`) VALUES ('%s') ON DUPLICATE KEY UPDATE %s&amp;quot;,&lt;br /&gt;
				$this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;databaseTable),&lt;br /&gt;
				implode(&amp;quot;`, `&amp;quot;, $insertKeys),&lt;br /&gt;
				implode(&amp;quot;', '&amp;quot;, $insertValues),&lt;br /&gt;
				implode(', ', $updateData)&lt;br /&gt;
			);&lt;br /&gt;
			&lt;br /&gt;
			// INFO&lt;br /&gt;
			$this-&amp;gt;info($query);&lt;br /&gt;
&lt;br /&gt;
			if (!$this-&amp;gt;db-&amp;gt;query($query))&lt;br /&gt;
			{&lt;br /&gt;
				// Query failed&lt;br /&gt;
				throw new Exception($this-&amp;gt;db-&amp;gt;error());&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Database query was successful - set ID if ID was not set&lt;br /&gt;
			if (!$this-&amp;gt;get('id'))&lt;br /&gt;
			{&lt;br /&gt;
				$this-&amp;gt;set('id', $this-&amp;gt;db-&amp;gt;insert_id());&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Success&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
		catch (Exception $e)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;error('Database Save Failed: Class: %s, ID: %s, Error: %s', array(get_class($this), $this-&amp;gt;get('id'), $e-&amp;gt;getMessage()));&lt;br /&gt;
		}&lt;br /&gt;
	&lt;br /&gt;
		// Fail&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Load&lt;br /&gt;
	public function load($field = 'id')&lt;br /&gt;
	{&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			// Error checking&lt;br /&gt;
			if (!$this-&amp;gt;isTableDefined())&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('No Table defined for this class');&lt;br /&gt;
			}&lt;br /&gt;
			if (!$this-&amp;gt;get($field))&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception(sprintf('Operation field not set: %s', strtoupper($field)));&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Variables&lt;br /&gt;
			$fieldToName = array_flip($this-&amp;gt;databaseFields);&lt;br /&gt;
			&lt;br /&gt;
			// Build query&lt;br /&gt;
			if (is_array($this-&amp;gt;get($field)))&lt;br /&gt;
			{&lt;br /&gt;
				// Multiple values&lt;br /&gt;
				foreach ($this-&amp;gt;get($field) AS $fieldValue)&lt;br /&gt;
				{&lt;br /&gt;
					$fieldData[] = sprintf(&amp;quot;`%s`='%s'&amp;quot;, $this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;databaseFields[$field]), $this-&amp;gt;db-&amp;gt;sanitize($fieldValue));&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				$query = sprintf(&amp;quot;SELECT * FROM `%s` WHERE %s&amp;quot;,&lt;br /&gt;
					$this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;databaseTable),&lt;br /&gt;
					implode(' OR ', $fieldData)&lt;br /&gt;
				);&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				// Single value&lt;br /&gt;
				$query = sprintf(&amp;quot;SELECT * FROM `%s` WHERE `%s`='%s'&amp;quot;,&lt;br /&gt;
					$this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;databaseTable),&lt;br /&gt;
					$this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;databaseFields[$field]),&lt;br /&gt;
					$this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;get($field))&lt;br /&gt;
				);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// INFO&lt;br /&gt;
			$this-&amp;gt;info($query);&lt;br /&gt;
			&lt;br /&gt;
			// Did we find a row in the database?&lt;br /&gt;
			if (!$queryData = $this-&amp;gt;db-&amp;gt;query($query)-&amp;gt;fetch()-&amp;gt;get())&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception($this-&amp;gt;db-&amp;gt;error());&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Loop returned rows -&amp;gt; Set new data&lt;br /&gt;
			foreach ($queryData AS $key =&amp;gt; $value)&lt;br /&gt;
			{&lt;br /&gt;
				$this-&amp;gt;set($fieldToName[$key], (string)$value);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Success&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
		catch (Exception $e)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;error('Database Load Failed: Class: %s, ID: %s, Error: %s', array(get_class($this), $this-&amp;gt;get('id'), $e-&amp;gt;getMessage()));&lt;br /&gt;
		}&lt;br /&gt;
	&lt;br /&gt;
		// Fail&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Destroy&lt;br /&gt;
	public function destroy($field = 'id')&lt;br /&gt;
	{&lt;br /&gt;
		try&lt;br /&gt;
		{&lt;br /&gt;
			// Error checking&lt;br /&gt;
			if (!$this-&amp;gt;isTableDefined())&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('No Table defined for this class');&lt;br /&gt;
			}&lt;br /&gt;
			if (!$this-&amp;gt;get($field))&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception(sprintf('Operation field not set: %s', strtoupper($field)));&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Variables&lt;br /&gt;
			$fieldToName = array_flip($this-&amp;gt;databaseFields);&lt;br /&gt;
			&lt;br /&gt;
			// Query row data&lt;br /&gt;
			$query = sprintf(&amp;quot;DELETE FROM `%s` WHERE `%s`='%s'&amp;quot;,&lt;br /&gt;
				$this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;databaseTable),&lt;br /&gt;
				$this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;databaseFields[$field]),&lt;br /&gt;
				$this-&amp;gt;db-&amp;gt;sanitize($this-&amp;gt;get($field))&lt;br /&gt;
			);&lt;br /&gt;
			&lt;br /&gt;
			// INFO&lt;br /&gt;
			$this-&amp;gt;info($query);&lt;br /&gt;
			&lt;br /&gt;
			// Did we find a row in the database?&lt;br /&gt;
			if (!$queryData = $this-&amp;gt;db-&amp;gt;query($query)-&amp;gt;fetch()-&amp;gt;get())&lt;br /&gt;
			{&lt;br /&gt;
				throw new Exception('Failed to delete');&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Success&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
		catch (Exception $e)&lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;error('Database Destroy Failed: Class: %s, ID: %s, Error: %s', array(get_class($this), $this-&amp;gt;get('id'), $e-&amp;gt;getMessage()));&lt;br /&gt;
		}&lt;br /&gt;
	&lt;br /&gt;
		// Fail&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Error&lt;br /&gt;
	public function error($txt, $data = array())&lt;br /&gt;
	{&lt;br /&gt;
		if ($this-&amp;gt;debug)&lt;br /&gt;
		{&lt;br /&gt;
			$txt = (is_array($data) &amp;amp;&amp;amp; count($data) ? vsprintf($txt, $data) : $txt);&lt;br /&gt;
		&lt;br /&gt;
			$GLOBALS['FOGCore']-&amp;gt;error(sprintf('Class: %s, Error: %s', get_class($this), $txt));&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Info&lt;br /&gt;
	public function info($txt, $data = array())&lt;br /&gt;
	{&lt;br /&gt;
		if ($this-&amp;gt;debug)&lt;br /&gt;
		{&lt;br /&gt;
			$txt = (is_array($data) &amp;amp;&amp;amp; count($data) ? vsprintf($txt, $data) : $txt);&lt;br /&gt;
		&lt;br /&gt;
			$GLOBALS['FOGCore']-&amp;gt;info(sprintf('Class: %s, Info: %s', get_class($this), $txt));&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// isValid&lt;br /&gt;
	public function isValid()&lt;br /&gt;
	{&lt;br /&gt;
		// TODO: Add $this-&amp;gt;databaseFieldsRequired checks&lt;br /&gt;
		&lt;br /&gt;
		if ($this-&amp;gt;get('id') || $this-&amp;gt;get('name'))&lt;br /&gt;
		{&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// isTableDefined &lt;br /&gt;
	private function isTableDefined()&lt;br /&gt;
	{&lt;br /&gt;
		return (!empty($this-&amp;gt;databaseTable) ? true : false);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// Name is returned if class is printed&lt;br /&gt;
	public function __toString()&lt;br /&gt;
	{&lt;br /&gt;
		return $this-&amp;gt;get('name');&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Category:Development&amp;diff=4184</id>
		<title>Category:Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Category:Development&amp;diff=4184"/>
				<updated>2011-09-30T16:45:41Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;Articles and pages relating to the development of the FOG product.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Articles and pages relating to the development of the FOG product.&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Editing_the_ramdisk/init_file&amp;diff=4183</id>
		<title>Editing the ramdisk/init file</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Editing_the_ramdisk/init_file&amp;diff=4183"/>
				<updated>2011-09-30T16:40:05Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Redirected page to Modifying the Init Image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Modifying the Init Image]]&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Category:Articles_for_merging&amp;diff=4176</id>
		<title>Category:Articles for merging</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Category:Articles_for_merging&amp;diff=4176"/>
				<updated>2011-09-30T07:23:55Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;__HIDDENCAT__&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Template:Mbox&amp;diff=4167</id>
		<title>Template:Mbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Template:Mbox&amp;diff=4167"/>
				<updated>2011-09-30T07:00:00Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;border:1px solid black;background-color:#dddddd;&amp;quot;&amp;gt;{{{image}}}&amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;{{{text}}}&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=File:Merge-arrows.gif&amp;diff=4161</id>
		<title>File:Merge-arrows.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=File:Merge-arrows.gif&amp;diff=4161"/>
				<updated>2011-09-30T06:43:52Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Category:Storage&amp;diff=4151</id>
		<title>Category:Storage</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Category:Storage&amp;diff=4151"/>
				<updated>2011-09-30T06:12:26Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;All articles related to the storage subsystem used by Fog&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;All articles related to the storage subsystem used by Fog&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	<entry>
		<id>https://wiki.fogproject.org/wiki/index.php?title=Category:HowTo&amp;diff=4150</id>
		<title>Category:HowTo</title>
		<link rel="alternate" type="text/html" href="https://wiki.fogproject.org/wiki/index.php?title=Category:HowTo&amp;diff=4150"/>
				<updated>2011-09-30T06:11:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chad-bisd: Created page with &amp;quot;A general category to help list all the helpful How-To type documents for easy location and reference.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A general category to help list all the helpful How-To type documents for easy location and reference.&lt;/div&gt;</summary>
		<author><name>Chad-bisd</name></author>	</entry>

	</feed>