Skip to main content.

Step-by-step guide

Welcome to your step-by-step guide for installing and customizing Unattended.

Step 0: Requirements

Your network environment must meet the following requirements:

Step 1: Download the distribution

Please download the distribution of Unattended. You will find the download links on the right side of this page. You will need all of them.

Step 2: Unpack the distribution

Next unpack the distribution. Choose a appropriate location on your server (e.g. /path/to/unattended) for the os distribution point.

$ unzip unattended-<version>.zip
[... output ...]
$ unzip unattended-<version>
[... output ...]
$ unzip unattended-<version>
[... output ...]

Step 3: Configure DNS

Now please extend the configuration of your dns server. The Unattended server must be reachable with the name "ntinstall". Please configure an appropriate alias (CNAME). There may be problem when connecting to Windows 2000 or Windows Server 2003-based computer using this alias. Please look at following MS article

You will find plenty of documentation about this on the net.

Step 4: Prepare the Unattended server

Next you have to create a file share named "install".

Unix server with samba

A Unix/Linux system is the preferred solution as all our scripts run on these platform without installing additional software like Cygwin. If you use Unix and Samba, apply these settings to your smb.conf:

guest account   = guest
unix extensions = no
   comment  = Unattended
   writable = no
   locking  = no
   path     = /path/to/unattended/install
   guest ok = yes

Make sure that the share is reachable with the username "guest" and the password "guest".

Windows server

Create the SMB file share:

c:\> net share install=c:\path\to\unattended\install
c:\> cacls c:\path\to\unattended\install /T /E /G guest:R
c:\> net user guest /ACTIVE:YES /DOMAIN

Step 5: Prepare the Operating System (and Software) distribution point

Now it is time to fill the os distribution point with life.

The install directory tree from the Unattended distribution is exported read-only with guest access permitted. You need to fill it with support programs and files and the operation systems and software programs you want to install unattended.

When you later boot from the boot disk, it will ask you for the full Windows UNC name of this share; the default it assumes is \\ntinstall\install. The boot disk maps this share as the Z: drive, and that is how we will refer to it from now on.

This procedure relies on the following files and directories from the Z: drive:

Only needed when boot disk is a floppy. Contains parts of DJGPP, a collection of Unix tools for DOS. DJGPP is required because the master installation script is written in Perl. This one is too big to bundle, so you will need to download it yourself; see below for instructions.
Directory containing DOS utility programs (like fdisk) from the FreeDOS project. Also contains, the master installation script.
Directory containing helper files for the master installation script. This includes the default unattend.txt file and the helper modules Unattend::FoldHash, Unattend::HotKey, Unattend::Promise, Unattend::IniFile, and Unattend::WinMedia.
Directory containing your site-specific customizations. If you place an unattend.txt file here, its settings will override the defaults. More advanced customization is possible; see the detailed documentation for details.
Directory containing Windows installation media (i.e., copies of the CD-ROMs). You need to populate this with one or more copies of Windows; see below.

Support files and programs

The distribution files of Unattended include the needed FreeDOS files and programs. Additionally you need to download and unpack the following components of DJGPP:

Simply unzip all of them under Z:\djgpp.

Unix users please note: Use the -L switch to unzip when you extract these. Otherwise, you may find that some files extract under bin while others extract under BIN, and this will cause all sorts of trouble when the system tries to access them from DOS. Windows users do not need to worry about this, because Windows (like DOS) is not case-sensitive.

Operation system installation files

Create a subdirectory under Z:\os to hold a copy of your Windows CD. You should probably give the directory a meaningful name like winxp or win2ksp4, and you probably want to limit the name to eight characters lest it look strange when viewed from DOS. (The name does not matter much because will scan the contents to figure out what it is. However, you should limit the name to 8 characters or fewer, especially if you are using the Linux-based boot disk.)

Next, copy the i386 folder from your Windows CD-ROM to the new directory. For example, for Windows XP, you would copy the i386 folder to Z:\os\winxp, thus creating Z:\os\winxp\i386 .

Integrate the service pack (optional)

This step is optional; you can apply a service pack just like you apply any other hotfix later. But combining the service pack into the distribution point now will make installation faster and let the OS have a smaller footprint on the harddisk of your computer.

You can find the detailed description here.

Integrate other hotfixes (very optional and not recommended)

You can also add other hotfixes into your distribution point which is explained here. However, this is not recommended as this will interfere with our OS-update scripts.

Add device drivers

This step may be optional, depending on your hardware and which version of Windows you are trying to install. Each release of Windows ships with a fairly rich collection of drivers, supporting most of the hardware which was current at the time. However, if you are installing an older OS on a recent system, especially a laptop, you may find that the OS lacks built-in support for some or all of your hardware.

You can add device drivers after the OS is installed, of course. But if you want to automate both OS and application installation, and your version of Windows lacks built-in support for your network card, you will need to provide proper network drivers on the OS distribution point. Here is how to do it:

First, download the driver package from the hardware vendor and expand it. There should be a collection of .inf files in the top-level directory; that is the directory you need to copy to the OS distribution point.

To where should you copy it, exactly? That is a long story...

Under the i386 folder on the distribution point, create a folder named $oem$. Under that folder, create a folder named $1. Yes, really. Windows Setup will copy everything below the $1 folder to the %SystemDrive% (normally C:) during installation. See Microsoft's description of the distribution share for the gory details.

You may put your driver folder anywhere you like under the $1 folder, and you may add as many driver folders as you like. The script will automatically scan for all driver folders and offer to add them to the OemPnPDriversPath setting in the unattend.txt file for you.

Note: The total absolute length of any file name, including the leading \os\...\$oem$ portion, must not exceed 64 characters or winnt.exe will get an error when it tries to copy the file.

Populate packages directory

All our OS-update scripts and many of our application install scripts contain urls for automatic download. Now it is time to perform this task. First you should update your scripts to current SVN version, using our script-update script, and then update packages using our prepare script:

    $ cd /path/to/unattended/install/tools
    $ ./script-update
    $ ./prepare
    [... output ...]

If the script is called without a parameter, it assumes that you want to fetch the english version of updates and programs. If you want to fetch a different language, you must give the appropriate language code. E.g. for german, type:

    $ cd /path/to/unattended/install/tools
    $ ./prepare deu
    [... output ...]

Step 6: Create the bootdisk

After you survived the server-side challenge, you can tackle the bootdisk.

The goal here is very simple: To boot to DOS so we can mount the install share as the Z: drive and run the master installation script. There are three ways to do this: By booting from a floppy, by booting from a CD-ROM, or by booting directly from the network.

The boot floppies are DOS-based and deprecated. The network-boot is an advanced topic and mostly intended for the installation of diskless workstations. Your best choice will be the linux-based CD-ROM.

The bootdisk.iso file is an ISO-9660 image of a bootable CD-ROM. Simply burn it to a CD, which you can do with just about any CD recording utility. Consult your utility's documentation and search for ISO-9660 or just ISO.

Take a deep breath. It is time for testing your work...

Step 7: The first boot

The boot disk's entire purpose in life is to obtain access to the network, then hand off control to the more powerful tools available there. Specifically, the boot disk loads the network drivers, mounts the install share as the Z: drive, and then executes the Perl script Z:\dosbin\ This script will ask you a bunch of questions, generate unattend.txt, and launch Windows Setup.

Follow along in autoexec.bat if you like.

Mounting Z:

After loading the network stack, the boot disk asks whether you want to Override bootdisk defaults for user name, password, and install share. The defaults are guest, guest, and \ntinstall\install, respectively.

Next, the boot disk uses the user name and password to invoke NET LOGON, which initializes the MSCLIENT file sharing stack.

Next, the boot disk invokes NET USE to map the install share as the Z: drive.

Finally, the boot disk passes control to the installation script Z:\dosbin\ This script is a lot more complicated, but you do not need to understand it in order to use it.


The installation script begins by helping you partition the hard drive.

This can be complicated for two reasons. First, any change to the partition table requires rebooting the system. Second, DOS cannot access NTFS partitions, but NTFS is almost certainly the file system you want to use.

The installation script hides this complexity from you by offering a simple menu of several automated partitioning schemes. If none of the automated schemes appeals to you, one of the menu options is to run fdisk interactively to let you partition by hand.

Whether you pick an automated scheme or partition by hand, you need to make sure that the C: drive is an active 2G FAT partition. The automatic choices do this by first creating the NTFS partitions, then deleting the first one and replacing it with a 2G FAT partition, then activating it. (If you choose to partition by hand, you will need to perform this procedure by hand.)

If any actual changes are made to the partition table, the script will reboot the machine so that 2G FAT partition will become the C: drive, which is where Windows will be installed. During OS installation, Windows Setup will convert the FAT partition to NTFS and expand it as far as possible without clobbering other partitions.

Note that the OS is always installed on the first active partition of the drive. If this is a problem for you, let us know and maybe we will change it in a future release.

After rebooting, the installation script will again start by offering to partition the drive. Simply choose the same partitioning scheme again, and the script will notice that the partition table is unchanged and continue. Or you can manually select the menu option to Do nothing (continue).


The installation script will offer to format the C: drive. Answer "yes".

Choosing the operating system

The installation script will ask you which operating system you want to install. It derives the list of choices from scanning the directories under Z:\os looking for Windows media. To add a new operating system to the list, simply create its distribution point.

Product key

The installation script will ask you for your 25-character product key. Enter it exactly as it appears on your software license, with a dash between every block of five characters (like "12345-6789A-BCDEF-GHIJK-LMNOP").

Computer name

The script will ask you for the computer's name. Entering "*" will cause Windows Setup to pick a random name.

Organization and User name

The script will ask you for the organization name and user name for this machine. Provide them.

Local Administrator password

The script will ask you for the local administrator password for the machine. This value will echo (sorry).

Joining a domain

The script will ask to what domain you wish to join the system. If you do not want to join the system to a domain during OS installation, just press Enter.

If you do provide a domain, the script will ask you for an account name and password to use to join the system to the domain. You may use a fully qualified domain\user name, or just the user name. The password will echo (sorry again).

Also, if you provide a domain, the script will ask you for a list of domain accounts to add to the local Administrators group. Many organizations add the machine's "owner" to the local Administrators group. If you do not wish to add any extra users to the Administrators group, just press Enter.

Joining a workgroup

If you choose not to join a domain, the system will offer to let you join a workgroup.

Choosing the application suite

Next, the installation script will ask you which script to run, if any, after the OS installation is finished. This is the hook to start the automated application installation process. The scripts live in the Z:\scripts directory, and are discussed on the application installation page.

Final edits

Finally, the installation script will generate the unattend.txt, postinst.bat, and doit.bat scripts, and offer to let you edit them. This is your chance to make any manual alterations to the scripts before the installation begins.

When you have finished making your changes, if any, select the "Continue" option.

And that is all! Your OS installation should be on its way. You probably want to automate installing the applications next.

If you get tired of answering all these questions (or editing unattend.txt) by hand, you can create a site configuration to provide as many of the answers as you like. See the detailed documentation page for details.