Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Imagine the condition for lab for 100 computers Case 1 - Hardware conf of all 100 comp is same -- what is the best way to install Ubuntu 9.10 in whole lab

Case 2 - Hardware conf of all 100 comp is different from each other -- what is the best way to install Ubuntu 9.10 in whole lab

Any practical experience ? Any good links ?

share|improve this question

For Case 1, we use a nice little tool called udpcast. It automatizes and optimizes the whole process explained by Richard Holloway.

share|improve this answer
+1 This looks very interesting. Thanks – Richard Holloway Apr 6 '10 at 7:57
Certainly, it is. :) You just set up a model machine and image it all across the lab. Since it is multicast, speed doesn't alter with the number of machines participating. – Knight Samar Apr 6 '10 at 8:13

"Official Ubuntu Server Book" on Amazon. If you use Ubuntu Server, this really is a terrificly written and broad book. It's not even THAT dated (very little talk of Upstart) and has few grammatical errors. My tutorial below is from what I learned from this book.

It has an entire chapter on automating and customizing Ubuntu installations.

Also, the last "System Administration" Linux Journal (March or April 2010, I think) had a similar article from start to finish, well written, on the same topic.
Edit: Apparently, their articles are free online after a few months.
Here's the article: Economy Size Geek - Installation Toolkit

Three keywords to look into:

Hope this helps.


I'm only covering getting netboot installed, not making custom installs with Kickstart/Preseeding. I'm assuming you know DHCP configuration. It's not that difficult.

1)You'll need your DHCP server (you need one) configured with several new options in

a. Inside the subnet declaration, have

range dynamic-bootp lowip highip

Basically, add the "dynamic-bootp" option in your range config.

b. Next, in global settings OR in your specified subnet, add the following two options:

next-server ip_of_netboot_server
filename "pxelinux.0"

2) Install the tftpd-hpa package on the netboot server. Make sure UDP port 69 is opened there.

3)Grab the netboot images.
The following is made easy by the fact that Ubuntu preconfigures a lot of the setup, so you'll be ready to go with a simple setup quickly.

$ cd /var/lib/tftpdboot
$ sudo wget
$ sudo tar -xzvf netboot.tar.gz`

There are many different ways to tweak all these programs, netboot installation options, etc. to make it a very powerful, customized tool. What I've described is the bare bones.


you can plug a computer into your network, boot it from LAN (via BIOS, or hotkey at POST) and install Ubuntu. It will be grabbing a lot of packages from the Internet, so be ready for that. You can set up mirrors or apt-cache servers to alleviate this problem, but as I said, this is only the simple setup.

share|improve this answer

If each machine is identical, I would build one machine, then use dd copy each partition onto a USB drive or FTP server.

You can then boot the next machine from a live CD and simply dd the partitions from the USB drive or FTP server onto the disk.

I used to use Mondo Rescue for cloning machines but it was overly complicated for what I needed.

100 machines is a lot and this would be time consuming, so I expect there may be better solutions.

For machines on differing hardware, I perform a minimal install and have my own installer scripts that convert the base OS to our company specific requirements, installing packages and setting up configuration files. There are lots of things like kickstart that can do this too.

share|improve this answer

There is a chapter in the Ubuntu Installation Guide about Automatic Installation and Automating the installation using preseeding.

You could also use external projects like FAI for automatically installing Ubuntu on your computers.

The image based installation which Richard Holloway described in his answer is not faster than using Kickstart/Preseed/FAI but has the disadvantage that you have to create new images every time your 'master copy' changes. Additionally you'd still have to customize the installed systems (e. g. set hostname, network interfaces, etc.).

share|improve this answer

+1 from me to not use an image based installation.

Use FAI, since it's the most flexible tool for doing it. And it's a rock solid tool, that I'm using since over 10 years. FAI will work for you, especially since you have different machines.

The FAI project now has a new $HOME. IT's

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.