"FOG is a free open-source cloning/imaging solution/rescue suite. A alt. solution used to image Windows XP, Vista PCs using PXE, PartImage, and a Web GUI to tie it together. Includes features like memory and disk test, disk wipe, av scan & task scheduling." http://sourceforge.net/projects/freeghost/ Build notes to follow.

Forum: 
Jeremy Davis's picture

I haven't actually used FOG but I've heard lots of great things about it. I probably need to do a little more study on it to check some ins and outs but all-in-all it looks great. My only dillema in this is that it only handles Win OS (AFAIK). Really I'd like a solution that also handles Linux OS.

Clonezilla works quite well but has a few shortcomings in my experience (I haven't actually tried the server version, just the live disk version but I assume they are pretty much the same). The main one being that the partition sizes need to be the same (although HDD partition can be larger than image partition). I have also had mixed results when doing a full HDD image (MBR doesn't seem to copy accross nicely - although in fairness they were aware of the issue and that may have been resolved by now). It is OS & FS agnostic and because it images at the block level it works just as well (or just as poorly depending on your perspective) with Linux as Win; NTFS, FAT, ext2/3/4, etc. For Win OS, FOG seems a much better/tidier/prettier solution. But like I say, FOG still leaves Linux OS out in the dark.

Due to the way PXE relies on DHCP it's not possible to have both running without problems (they both include DHCP - and you can only have one DHCP server per network) so IMO it'd be great if these 2 tools could somehow be tied together. Ideally it'd be great if the PC would boot via PXE and give the user the option of which subsystem to run, wouldn't that be awesome?

Don't get me wrong Rik, I'm not suggesting that you should do this... Just thinking aloud really! If anyone has any ideas about how FOG and Clonzilla (or another FOG like system that can handle Linux OS) could be tied together behind a single DHCP I'd love to hear about it!

Regardless FOG on it's own will make a great addition to the TKL library IMO! :)

Thanks Jeremy! DHCP would be problem in my usage scenario, but I reckon a proper netwrok administrator would be able to adjust - perhaps with a subnet?

In any event, here's build notes. I'm hurting with a laptop without resources to run a VM, so I started with the LAMP appliance on TKL hub and relied on the guidance here.

  1. Set hostname (nano /etc/hostname, nano /etc/hosts
  2. wget http://sourceforge.net/projects/freeghost/files/FOG/fog_0.31/fog_0.31.ta... -O /opt/fog.tar.gz
  3. tar xvzf /opt/fog.tar.gz
  4. /opt/fog/bin/installfog.sh (chmod o+x /opt/fog/bin/installfog.sh if necessary)
  5. Answer questions prompted by the terminal (see docs as necessary)
  6. Navigate to http://$ipaddress/fog/management
  7. Default credentials: UN=fog, PW=password
  8. I have a note to do something with /var/www/fog/commons/config.php. I apparently thought I'd know why I made that note. I assume it either needs to be deleted or edited - possibly the database password entered? Whatever it is, it is prompted during step 7.
  9. In the interest of bulding a patch: hash is MD5; no salt as best I can tell.
Jeremy Davis's picture

And it looks exciting! I've been reading that it can be extended so client machines can use FOG to boot from pretty much any live type medium (think LiveCDs) so could be easily used to install Linux as well as run live over ethernet (not as a thin client but as a diskless system).

Next step is to install and play! I will be looking to see what I can bend this very nice looking piece of software to do. Look out for a TKLPatch sometime soon! :)

PS I assume that you never made a patch for this Rik?

[update] I got so excited that I created a new thread here.  So far it's just a link to my GitHub repo (which contains only a very barebones start - nothing much at all, certainly not even the semblence of a working patch. It also contains a dump of some links, ideas and notes for ppushing forward. Please feel free to chip in.

Jeremy Davis's picture

That's a lot of data to lose!

I strongly suggest you have a look at git and GitHub. It obviously won't protect 2TB of data but at least your code will survive. git is installed in TKL by default and GitHub makes the learning curve pretty easy. Setting up GitHub pretty much takes you by the hand and walks you through the basic steps to get started. And GitHub is an easy way to review code online. I guess your network setup may make the initial config a little tricky, but should be doable I would think. I have only just started using it and if nothing else it's a great and free way to store your patches offsite and share with others. You can have multiple users for projects so the whole class or just a team can work on projects together. Also makes it easy for others to fork your code if they think they can do it better (or add features and/or fix bugs).

Back to the patch at hand; as I've posted (on the new thread I started) my initial thoughts are that it would be good to pull apart the install script and create a patch that does much of the install, but with some parts (like setting the IP) into a firstboot script. But this morning I've had second thoughts though. Perhaps that may make updating a little tricky (although by comparing the install code using diff should make it pretty easy to see what needs to be done)? Manual update by end users should be straight forward but updating the appliance would be a little more arduous. I think I'll do that anyway as it will be a good learning experience for me.

Thinking some more I reckon the best thing to do would be to see how easy it is to feed variables into the default install script. Or prehaps create a TKL install script that uses as much as possible from the original. Need to play more first.

Bottom line is, if your students are keen, don't stop them! Let's learn together! As I said I've barely made a start but once I get going they can have a look a look at what I've done on my GitHub account (it's public).

Add new comment