• Home  / 

Deploying Ubuntu 8.04.1 using WDS (Windows Deployment Services)

By arwidmark / August 30, 2008

Here is a step-by-step (how-to) guide for deploying Ubuntu 8.04.1 LTS 32-bit (Hardy Heron) from a Windows Server running WDS (Windows Deployment Services)

Part 1 – Stage the Ubuntu Setup files on your Server

Note: If you really wan’t to do Ubuntu deployments with style, you should of course skip downloading the alternate ISO’s and instead create a local mirror of the real Ubuntu dist mirrors. You’ll find optional instructions on how to do this further down in the guide (Part 3 to be exact), but for now we simply use the Ubuntu Alternate CD (32-bit) to speed up the process.

  1. Download the 32-bit Alternate Install CD’s from http://releases.ubuntu.com/hardy/ubuntu-8.04.1-alternate-i386.iso
     
  2. Install IIS (web server) on your server and create a virtual directory named Ubuntu (in this example from the D:\Ubuntu folder): Configure the MIME Settings for the virtual Ubuntu directory by adding a .* wildcard extensions for the “text/plain” mime type (In the HTTP Headers Tab of the Virtual Directory Properties). This is for supporting wget downloading files (which the Ubuntu install engine is using).
     
  3. Copy the contents of the iso image to D:\Ubuntu. Be warned though, The Ubuntu CD Image team (in their infinite wisdom) choosed to use the Rock Ridge extensions to ISO 9660 which supports filenames up to 255 characters. Problem is most Windows software (including vmware) doesn’t support this when running Windows as a guest OS. However, MagicISO does, so download and install MagicISO from http://www.magiciso.com/download.htm and use it to extract the iso to theD:\Ubuntu folder.
     
  4. Create another virtual directory, this time named Kickstart (in this example from the D:\Kickstart folder). Configure the MIME Settings for the virtual Ubuntu directory by adding a .cfg extensions for the “text/plain” mime type (In the HTTP Headers Tab of the Virtual Directory Properties).
     
  5. Download and extract the sample kickstart file (Ubuntu version of unattend.txt) found at this link http://www.deployvista.com/Portals/0/kickstartscript.zip and save it in the D:\Kickstart folder. The encrypted password in thekickstart script is ubuntu

Part 2 – Configure WDS to support Ubuntu

  1. From the D:\Ubuntu\install\netboot\ubuntu-installer\i386 folder, copy the initrd.gz and linux files to D:\RemoteInstall\Boot\x86\Hardy\32
     
  2. Download and extract syslinux from http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.71.zip (it contains pxelinux)
     
  3. Copy the syslinux-3.71\com32\menu\vesamenu.c32 to your WDS Server, D:\RemoteInstall\Boot\x86
     
  4. Copy the syslinux-3.71\core\pxelinux.o to your WDS Server, D:\RemoteInstall\Boot\x86, rename it to pxelinux.com
     
  5. Download a nice background image (http://www.deployvista.com/Portals/0/DeploymentBackground.png), and save it in D:\RemoteInstall\Boot\x86 
     
  6. In the D:\RemoteInstall\Boot\x86 folders, make a copy of pxeboot.n12 and rename it to pxeboot.0
     
  7. Configure WDS to use the pxelinux.com boot file (Server properties, Boot tab)
     
  8. In the D:\RemoteInstall\Boot\x64 or D:\RemoteInstall\Boot\x86 folders, create a subfolder called pxelinux.cfg
     
  9. In the D:\RemoteInstall\Boot\x64\pxelinux.cfg or D:\RemoteInstall\Boot\x86\pxelinux.cfg folders, create a file named default with the following settings

    DEFAULT      vesamenu.c32
    PROMPT       0
    NOESCAPE     0
    ALLOWOPTIONS 0
    # Timeout in units of 1/10 s
    TIMEOUT 300
    MENU WIDTH 40
    MENU MARGIN 0
    MENU ROWS 12
    MENU TIMEOUTROW 14
    MENU HSHIFT 5
    MENU VSHIFT 2
    MENU COLOR BORDER 30;44       #00000000 #00000000 none
    MENU COLOR TABMSG 1;36;44     #00000000 #00000000 none
    MENU COLOR TITLE 1;36;44     #00000000 #00000000 none
    MENU COLOR SEL   30;47       #40000000 #20ffffff
    MENU BACKGROUND DeploymentBackground.png

    MENU TITLE PXE Boot menu
    MENU WIDTH 80
    MENU MARGIN 18
    MENU ROWS 4
     
    LABEL wds
     MENU       DEFAULT
     MENU PASSWD P@ssw0rd
     MENU       LABEL Windows Deployment Services
     KERNEL     pxeboot.0
     
    LABEL local
     MENU LABEL Boot from Harddisk
     LOCALBOOT 0
     
    LABEL hardyubuntudesktop32
     MENU PASSWD P@ssw0rd
     MENU LABEL Deploy Ubuntu Desktop 8.04.1 32 bit
     KERNEL /hardy/32/linux
     append vga=769 initrd=/hardy/32/initrd.gz ksdevice=eth0 ks=http://demosrv001/kickstart/Ubuntu_Desktop_32.cfg

Part 3 – What next…

if you really wan’t to do Ubuntu deployments with style, you should of course skip downloading the alternate ISO’s and instead create a local mirror of the real Ubuntu dist mirrors, giving you access to the latest security updates, drivers, support for multiple architectures etc… However, they are really big… Even a single dist like Hardy is about 36 GB (i386 and amd64)

To create a local mirror of the hardy dist I recommend using apt-mirror which will run just fine in Windows, as long as you run it in Cygwin.

Download cygwin from http://cygwin.com/ and run setup, make sure to select the wget package in addition to the default packages.

Then download apt-mirror from http://apt-mirror.sourceforge.net/ and then, in cygwin, create a file named /etc/apt/mirror.list with the following content

# begin mirror.list
# apt-mirror configuration file

##
## The default configuration options (uncomment and change to override)
##
# Store data on the d:\staging
# Note: Create the following folders
# d:\staging
# d:\staging\skel
# d:\staging\skel\var
# d:\staging\mirror
set base_path    /cygdrive/d/tmp
#set mirror_path  $base_path/mirror
#set skel_path    $base_path/skel
#set var_path     $base_path/var
#
# set defaultarch 
set nthreads     2
#

##
## Example sources
##

# Ubuntu

# Ubuntu 8.04 “Hardy” i386
deb-i386 http://ftp.acc.umu.se/ubuntu hardy main restricted universe multiverse
deb-i386 http://ftp.acc.umu.se/ubuntu hardy-updates main restricted universe multiverse
deb-i386 http://ftp.acc.umu.se/ubuntu hardy-security main restricted universe multiverse

# Ubuntu 8.04 “Hardy” amd64
deb-amd64 http://ftp.acc.umu.se/ubuntu hardy main restricted universe multiverse
deb-amd64 http://ftp.acc.umu.se/ubuntu hardy-updates main restricted universe multiverse
deb-amd64 http://ftp.acc.umu.se/ubuntu hardy-security main restricted universe multiverse

# Support for network based installations i386
deb-i386 http://ftp.acc.umu.se/ubuntu hardy main main/debian-installer
deb-i386 http://ftp.acc.umu.se/ubuntu hardy restricted restricted/debian-installer
deb-i386 http://ftp.acc.umu.se/ubuntu hardy universe universe/debian-installer
deb-i386 http://ftp.acc.umu.se/ubuntu hardy multiverse multiverse/debian-installer

# Support for network based installations amd64
deb-amd64 http://ftp.acc.umu.se/ubuntu hardy main main/debian-installer
deb-amd64 http://ftp.acc.umu.se/ubuntu hardy restricted restricted/debian-installer
deb-amd64 http://ftp.acc.umu.se/ubuntu hardy universe universe/debian-installer
deb-amd64 http://ftp.acc.umu.se/ubuntu hardy multiverse multiverse/debian-installer

##
## Cleaner configuration example
##
#
# set cleanscript $var_path/clean.sh
#

# Cleaning section
clean http://ftp.acc.umu.se/ubuntu
# begin mirror.list

In cygwin run: perl apt-mirror (it will now create a local mirror of the selected dists and packages)

Then copy the content of the d:\staging\ftp.acc.umu.se\ubuntu folder to D:\Ubuntu. Another option is of course to create the /ubuntu virtual directory from d:\staging\ftp.acc.umu.se\ubuntu directly.

About the author

arwidmark

Danish Pathan - February 3, 2010

Dear Johan,

I refer this article to deploy UBUNTU 9.10 in my network, everyting goes well but nothing is happening after the above given picture that comes as boot menu, I am pressing enter on the LABEL Deploy Ubuntu Desktop 8.04.1 32 bit, its asking me the password and I am giving ubuntu (as you have mentioned) could you please help me, where the mistake is … ??

Thanks & Regards

Danish Pathan
Email: danish.humtv@live.com

RichardThorp - May 20, 2010

Johan
Thank you for posting this article. I have spent several hours trying this, as I find it interesting.
A note to Danish Pathan (above) – try using P@ssw0rd as the password, and be careful of keyboard layouts – between ” and @
I’ve managed to get to the point where linux and initrd.gz are loading, as instructed by the “default” file. I noticed that you need to replace “demosrv001” with the name of you own IIS server, and also in the Ubuntu_Desktop_32.cfg file.
I can PXE boot, get the menu, pick Ubuntu, see linux and initrd.gz, with lots of “….”‘s – and very briefly, I think it says “Ready”.
Then the PXE client computer reboots, and repeats the PXE boot to the menu.
I have checked my IIS server is serving http://myserver/kickstart/Ubuntu_Desktop_32.cfg – which it is, and if I allow Directory Browsing on the Ubuntu virtual directory, I can see the files in Internet Explorer.
Now I’m stuck, and I don’t know what to try next. I’m a novice at Linux/Ubuntu, and am only doing this for my own interest, but I would like to see it work.
Please could you suggest what to check for next, I would be very grateful.
Regards
Richard Thorp

Comments are closed