New Home Page
Note: This article is older (year 2012), but still has really good content. It has only had it's terminology updated to reflect current FOG terminology.
A guide to deployment, management,
And concept overview
For FOG.
Based on a document by: Thomas J. Munn CISSP
Contents
- 1 Introduction
- 2 Installing FOG
- 3 Using FOG
- 4 Troubleshooting / Advanced Installations
- 5 Appendix
- 6 About the Developers
Introduction
Preface to this Document
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.
What is FOG?
FOG is a Linux-based, free and open source computer imaging solution for Windows XP, Vista, 7, 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. Also with FOG many network drivers are built into the 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 is about as fast whether you are imaging 1 PC or 20.<BR>
Why FOG?
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 a 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.
What features are included with FOG?
FOG is more than just an imaging solution. FOG has grown into a imaging/cloning and network management solution. FOG now performs tasks like installing and managing printers, tracking user access to computers, installing applications remotely via snapins, and automatic user log offs. 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, you can restore deleted files, or scan the disk for bad blocks.<BR>
Fundamental Concepts
This section provides some basic concepts that the FOG Project uses. <UL><LI>Unicasting<BR> Unicasting in FOG means sending a single image to a single host. This can mean a capture or a deployment, and is independent of the image type.<BR> See this section for more on Unicasting</li> <LI>Multicasting<BR> Multicasting in FOG uses UDPcast to send a single image to multiple computers using only slightly more bandwidth then sending the image to a single computer or unicast.<BR> See this section for more on Multicasting</li></UL>
FOG Benchmarks
Requirements
Hardware
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 and it's best to have a gigabit NIC with as much processor and RAM you can throw at it.<BR>
Software
The FOG server runs on various flavors of Linux, which can be downloaded for free. The FOG installer script will verify or download and automatically install many open-source packages such as: MySQL, PHP, Apache, and more software from the open source community.
FOG is primarily geared toward helping school administrators manage mostly Windows environments, but more support for Linux clients is included in the latest version. <BR>
Network
FOG can be installed in a small lab on isolated network with just a single inexpensive switch and a handful of Ethernet cables; it can be added to your home network; or can be integrated with your existing enterprise network infrastructure with multiple subnets or VLANS (advanced configuration necessary.) The more robust your network, the better FOG can perform. Some adjustments are required on existing DHCP server(s) to integrate FOG into a network, as discussed later in the documentation.<BR>
How much does FOG cost?
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.
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 sourceforge forum which is located at:
https://sourceforge.net/projects/freeghost/forums
Thanks for supporting open source software and enjoy!<BR>
Installing FOG
FOG is a typical LAMP software bundle, so the main server is a Linux box. The rest of the components: Apache, MySQL, PHP, and several other services, are automatically downloaded and installed by the FOG installation script.
FOG can be installed by an experienced administrator in about 30 minutes. A new user with some familiarity with Linux can expect results in a few hours by following the guides below.
Full Step-By-Step Installation Guides
Ubuntu (Recommended)
Fedora (Recommended)
Debian
CentOS
VMware
Network Integration
Basic Network Setup
The FOG setup script asks several questions which might not be obvious. These sections describe only the most generic settings.
- Isolated Network
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.
See FOG on an Isolated Network - Integrating FOG Server with Existing Network Systems
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.
See Integrating FOG into an Existing Network
Advanced Network Setup
Modifications on your DHCP Server(s)
If you are installing FOG on an existing network, adjustments are necessary to forward DHCP clients to the FOG server after they receive their IP addresses:
Modifying existing DHCP server to work with FOG
Wake On Lan (WOL)
Multicast/UDPCast
FOG Server Maintenance
Backing up FOG
Restoring FOG from Backup
Upgrading the FOG Server
Using FOG
Quick Start - Basic Tasks
So you have a FOG server installed and setup, now what do you do? Below are a few common "Getting Started" items.
- Booting into FOG and Capturing your first Image
- Deploying your Image a single client
- Deploying your Image a group of clients
Tips
- 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.
- At least one image must be defined using the FOG web interface under the Images section. After the image is defined, it must be associated with the hosts. This can be done through the web interface or on the client.
- 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.
- For importing hosts in a .csv file follow the format below: 1 line per host:
"00:c0:4f:18:62:63","Hostname","1.1.1.1","Your description","XP/Vista","Image filename to use"
- 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.
- Configure your ‘master’ pc for the first image. Probably a good idea to run ‘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.
Mastering the FOG Web Interface
The Main Managing FOG Page
The FOG web interface is your primary management console. It is very well-documented in the pages linked below:
The Main Managing FOG document and has a Table of Contents of its own.
Subcategories within the Managing Fog section include the following sections:
- Understanding the FOG Dashboard
Provides an overview of the GUI and explains the symbols used on the Menu Bar. - Managing Hosts
This section covers management tasks such as: Adding a new host, Managing Hosts, Host Status, and Creating Host Groups. - Managing Groups of Hosts
This section provides an Overview of sorting hosts into useful Groups, and provides instruction on Managing Groups. - Defining and Managing Images
Defines types of images: Single Partition | Multiple Partition - Single Disk | Multiple Partition - All Disks | Raw Image
Also describes Creating, Modifying Image Objects, and Adding Images to Existing Objects. - Storage Management - adding additional Storage Nodes
This section introduces the concept of Storage Nodes, which provide scalability to FOG with the ability to "share the load of computers being imaged."
Also covered are Adding Storage Nodes, Monitoring Image Replication between nodes, and Understanding the role of the "Master Node" in a group.
In addition, this section details the necessary steps to include PXE and TFTP Services for a node located on a remote network segment. - Defining types of Administrative FOG Users
The difference between a regular FOG user and a Mobile user
Also covered are Creating and Modifying FOG user accounts
FOG Tasks
This is a major section of FOG Management because all day-to-day client management is initiated within the FOG Tasks section.
The Overview Section provides a quick list of tasks available within FOG.
General Tasks - Basic Imaging Tasks:
- Capturing an image (includes video tutorial)
Deploying an image
Multicasting
- Capturing an image (includes video tutorial)
Advanced Tasks - Describes tasks other than imaging:
- Debug
Capture - Unicast (Debug)
Send - Unicast (Debug)
Send - Unicast (Without Snapins)
Deploy All Snapins
Deploy Single Snapin
Memory Test
Wake Up
Fast Wipe
Normal Wipe
Full Wipe
Disk Surface Test
File Recovery
Virus Scan
Hardware Inventory
- Debug
Delayed Tasks, or Scheduling Tasks in the future
Describes advanced settings available for scheduling tasks including Shutdown after Execution, Single Task scheduling, and setting a CRON-Style Task.
Adding Printers to FOG
How to add printers to FOG. This allows the FOG Service to manage printers on FOG Clients
FOG Plugins
Plugins enhance FOG's functionality.
- The Capone plugin allows FOG to recognize similar hardware platforms and push your specified image to them with minimal (or no) interaction.
See Plugins to activate and manage plugins.
The FOG Client Service
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 Overview for a more complete list.
The FOG client can be partially or fully-enabled by modifying the ini file.
Installing the FOG Client
A typical client installation, Silent installation, and a video tutorial.
Advanced Description of FOG Services
More detail on:
- Auto Log Out
Hostname Changer
Host Register
Task Reboot
Directory Cleaner
Display Manager
Green FOG
Snapin Client
User Tracker
User Cleanup
Printer Manager
Client Updater
- Auto Log Out
Updating the FOG Client
How to update the FOG client.
The FOG Tray
Describes the Windows application that runs in the taskbar
Troubleshooting the FOG Client
Log file location
Snap-ins
A FOG 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 Creating a Snap-in, adjusting the FOG server to handle snap-ins larger than 2MB, Uploading the Snap-in into the FOG system, and Linking the Snap-in to hosts.
Troubleshooting / Advanced Installations
Troubleshooting
This section is intended to bring together the most common issues from the Installation Problems forums. The wiki format allows formatting and revision that isn't currently available in the SourceForge forums.
Knowledge Base
Many pages and tips on diagnosing network, installation, and general troubleshooting steps.
Password Central
A single resource to explain all passwords necessary for FOG in all its various configurations
Troubleshooting an image push to a client
Troubleshooting a capture
Troubleshooting Driver Issues
Speeding up the Graphical User Interface
Bottleneck / Imaging Speed Issues
Advanced Installations
Separate TFTP and DHCP Server
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.
Click here for detailed steps:
Separate TFTP and DHCP Server
Additional TFTP / DHCP Server on separate subnet
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:
Including multiple PXE / TFTP servers
Separate NFS Server
No Content yet.
Change NFS location
This is not about a seperate NFS server in general, but about how to change the local storage directory and export it correctly.
See Change NFS location for more.
Other Advanced Topics
Appendix
Preparing a Client for Cloning
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.
This section covers client preparation steps that will save you time and headaches like:
- Setting a Default User Profile
Installing Windows Updates
Pre-Installing the FOG service, etc.
- Setting a Default User Profile
It also covers more advanced ideas that are guaranteed to cause headaches, like:
- Sysprep, Hardware-Independent Images (HAL), and Driver integration.
- Sysprep, Hardware-Independent Images (HAL), and Driver integration.
Read more about Client Setup
For Microsoft sysprep information, see this page: http://vernalex.com/guides/sysprep/video.shtml
Other Resources
FOG install HOWTO: http://www.howtoforge.com/installing-fog-computer-imaging-solution-on-fedora8
FOG sourceforge page: http://freeghost.sf.net/
Deployment Forum at Edugeek contains many Fog related threads http://www.edugeek.net/forums/o-s-deployment/
About the Developers
Chuck Syperski
Chuck Syperski is the lead software 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. 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:
http://sourceforge.net/users/microleaks/
Jian Zhang
No content