[wpkg-users] SUWI (Was: Re: Installs from start to finish....)

Berge Schwebs Bjørlo berge at trivini.no
Tue Oct 21 16:50:28 CEST 2008


On Thu, Oct 16, 2008 at 12:02:31PM +0200, Berge Schwebs Bjørlo wrote:
> I can give you the details if you're interested.

As previously mentioned, we use a home-made system for unattended Windows
installs, including WPKG for application deployment. There seems to be some
interest in the system, even though it's really just a series of hacks. It's
only documented in Norwegian [suwidoc], but I'll provide an English summary
here.

The system is called SUWI - Samfundet Upåaktede Windowsinstallasjon, or
Samfundet Unattended Windows Installation. Samfundet [samfundet] is a student
society in Trondheim, Norway. The so-called IT-comittee [itk] handles most
sysadmining and development. We've got a handfull of GNU/Linux servers and
about 100 Windows clients.

We try to administer Windows with GNU/Linux as much as possible. None of us
are Windows people, so we solve problems a bit differently than others.

Anyway - SUWI tries to solve the problem "install a Windows client to a fully
useful state with as little work as possible." The only thing that needs to
be entered for the time being is the machine name, the rest is automatic.
(In the general case, at least - as always, practice differs somewhat from
theory. More on that later.)

The observant reader will notice that this is exactly what for instance
Unattended [unattended] does, which would be quite correct. SUWI is however
extremely less complicated, and tries to solve a very specific use case.
Where Unattended supports a wide variety of installation methods,
customisations and thus sports large amounts of complexity, SUWI is
implemented with standard tools, 150 lines worth of bash and batch scripts,
and some configuration files. (And is still a hack, of course.)

SUWI is basically a Debian chroot with a script to mount the installation
share, partition the disk and run the first part of Windows Setup in dosemu,
fed with an unattend.txt file to make the installation unattended.

Specifically, it does the following (and yes, it's okay to wince at the
evilness):

 o A completely generic Debian Lenny chroot is booted over the network with
   PXE, and mounts itself with an NFS root. It requires your very own DHCP-,
   NFS- and TFTP-servers [diskless]. Debian will autodetect your network card
   and disk controllers, which is all we really care about. You need the
   packages smbfs, dosemu and parted (and possibly others, but I can't recall
   which (-: )

 o A small script in /etc/rc.local in the chroot mounts a CIFS share to
   /srv/dos which contains the rest of SUWI. The CIFS share is authenticated
   - we don't want random people having access to our Administrator password
   hash. (We probably don't want random people reinstalling Windows boxes
   either.) rc.local runs /srv/dos/suwi

 o /srv/dos/suwi does some sanity checks, asks for a name for the box, runs a
   few exceedingly evil geometry hacks for PATA disks, creates a partition
   table and runs dosemu in two steps - the first step is to create a FAT32
   partition with fdisk.exe and the second to start Windows Setup. (dosemu
   needs restarting to get hold of the new partition. Windws Setup converts
   the partition to NTFS and expands it to cover the entire disk.) Variables
   such as the target disk and the computer name is replaced with sed and
   copied to /tmp (which is writable) before dosemu and Windows Setup is run.

 o Windows Setup runs, in dosemu. It's fed with an I386 folder and an
   unattend.txt file. Our I386 folder is a bulk installation tree (we get to
   use our university's volume licence). I386 contains a "flat", as in
   uninstalled, Windows tree. We've slipstreamed in SP3 and prepared it with
   DriverPacks 8.05 Base [driverpacks] with all available packages (except
   for WLAN-drivers, since the search path for Windows Setup else would be
   too long(!) and we don't install laptops anyway) - this more or less
   ensures that Windows will find and install drivers for most hardware by
   itself. In addition, (and here's what really on topic for this list), in
   I386/$OEM$/$1/wpkg/ an MSI-package and settings for WPKG Client reside.
   It's installed in one of the final steps of Windows Setup.

 o Thus, WPKG is run automatically and installs a body of packages. Windows
   Setup puts the box on the domain by itself.

 o Profit. (As a matter of fact, we fail this step. Samfundet lose money
   yearly. We arrange Norway's largest festival every other year to cover our
   deficit (-: )

It's not simple, but not really complex either - there's just a lot of steps.
It works quite well, fascinatingly enough. Not all hardware combinations
install all their drivers correctly - from time to time, we need to log on as
Administrator and fix stuff manually. (Usually, Windows installs the drivers
automatically here as well - it seems as if Windows Setup is more delicate on
what drivers it wants than Windows itself.)

For added karma, our WPKG installs IPv6, Kerberos support, single sign-on and
other niceness.

I've hurdled together a tarball with the important files [tarball] and almost
no instructions. Could be worthwhile to give the very short README a glance,
though.

There's quite a few sites with information on Windows installation.
http://unattended.msfn.org/ is a good place to start.
http://itk.samfundet.no/dok-filer/ms-xp-sp2-deployment-ref/u_unattend_txt_file_entries.htm
documents the unattend.txt file. The Debian Reference [debref] and other
Debian related documentation is always nice to have handy, and Microsoft
documents lots of stuff and http://support.microsoft.com, but it's easier to
Google for it than using Live Search (or whatever it's called).

Don't hesitate to ask questions - I'll happily take it off-list if it seems
too off-topic. Though, keep in mind that this is very much unsupported and
very much tailored for our needs. Availability is strictly FYI (-: I'm
available on IRC (Berge on ircnet, efnet, freenode and oftc) as well.

Cheers,
-B


[suwidoc] http://itk.samfundet.no/dok/SUWI
[samfundet] http://en.wikipedia.org/wiki/Samfundet
[itk] http://itk.samfundet.no/
[unattended] http://unattended.sourceforge.net/
[diskless] http://www.sigsegv.cx/diskless-2.html
[driverpacks] http://driverpacks.net/
[tarball] http://home.samfundet.no/~berge/suwi.tar.bz2
[debref] http://www.debian.org/doc/manuals/reference/

-- 
Berge Schwebs Bjørlo
Alegría!



More information about the wpkg-users mailing list