Dramatically reduce the time taken to build or repair a machine OS with slipstreaming using NTLite or WAIK.
Whether you have one server or one thousand, the time it takes to install, patch and update an OS, particularly Windows, is no doubt a thorn in your side. By 'slipstreaming' you can dramatically reduce the time this takes - so no matter how frequently you need to image or re-image machines, you can have them up and running in minutes, rather than hours.
In this post we describe slipstreaming in more detail before showing you how you can quickly and easily build your own slipstreamed OS images using NTLite.
Slipstreaming can be performed across multiple platforms including Windows and Linux operating systems. It's in the Windows environment, however, that the greatest time savings can be made, so this is where we will focus.
A typical Windows installation
Manually installing the Windows operating system on a server is a deceptively straightforward task that is, in actual fact, time consuming and arduous. Once the base OS is installed, which may only take 15 to 30 minutes, the process of downloading and installing service packs, windows updates, patches and other essential applications can easily take several hours.
The installation is further hampered by the need for multiple manual reboots which both elongate the process and create the need for constant, or at least frequent, human attendance. How often have you started a Windows installation only to have to leave it running overnight, all the time knowing that the process will at some point freeze while it awaits your return to reboot the machine? I know, we've all been there. And that's why slipstreaming is such a godsend.
Slipstreaming is the act of embedding essential drivers, updates, patches and applications within OS installation files, typically in the form of a customised ISO file. In the Windows server environment, slipstreaming can save you a tonne of time by bypassing the need to download each additional update from the web and to perform numerous manual restarts.
Furthermore, slipstreaming lets you configure an OS once before deploying it, rapidly, to multiple machines, saving you yet more time. It can also be configured to work with auto-deployment, allowing you to automate the install process according to predefined instructions. You may as well go home early.
Of course, if a newer version of a driver, update or application becomes available, this will need to be installed separately. The time taken to do so however will typically be a fraction of that required to download and install everything individually and, using the methods described below, the new software can easily be added in to your ISO image.
There are a number of methods for slipstreaming Windows, each with their own pros and cons, but all utilise the Windows Automated Installation Kit (WAIK). The WAIK is a set of tools provided by Microsoft to aid the creation of automated installers across the Windows platform. You can choose to either use the WAIK directly, via the WAIK power shell set, or indirectly, using third party software such as NTLite or RS Server Customiser.
NTLite is free to use Windows Customisation tool that is ideal for creating slipstreamed images. NTLite also has paid, premium versions which include advanced features, support and licensing. These additional features are worth having if you are intensive user and do a lot of extra customisation. What we will show you here, however, doesn't require the premium version.
- Using WinRar, or similar, extract the content of the Windows ISO you wish to slipstream
- Download and install NTLite from https://www.ntlite.com/download/
- Run NTLite and click 'Add' in the toolbar to open the file browser, then navigate to and load the target ISO.
- Under the 'Image History' select the version of Windows you want to use (Most server ISOs for Windows contain multiple OS'. For this example we are using 2008 Standard) and click 'Load' in the toolbar. The image below shows the 'Live Mode'. If you are using a paid version of NTLite you can create a bootable ISO installer from the current configuration of the host machine.
- Once the ISO is loaded (The 'Status should change to 'Loaded') you can begin to make modifications to the OS.
- The menu on the left hand side of the screen shows the wide range of options you now have for customising your OS. We will focus on Features and Updates as these are the ones we most commonly use here.
- Upon opening the Features section you will be presented with a view similar to that of Server Manager. In this section you can select Roles and Features that you want to be pre-installed. So, if you want Remote Desktop Services installed along with the OS, just check the RDS Role on the menu.
- Under the Updates section, you can add, you guessed it, Windows updates. Windows updates can be downloaded from the Microsoft download portal. For bulk updates, however, there are catalogue applications that can perform mass downloads and torrents available for multiple update downloads. Once your updates have downloaded, you can add them by hitting the 'Add' button in the toolbar and selecting the desired updates. Your selected updates should then appear in the 'Integration Queue'.
- Once you are happy with your choices, click on 'Apply' in the left hand menu. Ensure 'Create ISO' is selected in the toolbar (it will prompt you to provide a name and location for the ISO to output to) and click 'Start'.
- NTLite will then run through the list, displaying a progress bar on the right. Once finished, the image is saved and the ISO can be used as a slipstreamed version of Windows.
Using WAIK/DISM via the command line
For the purists out there, it's also possible to slipstream Windows via the command line.
Deployment Image Servicing and Management (DISM) is a command-line tool that is used to mount and service Windows images before deployment. You can use DISM image management commands to mount and get information about Windows image (.wim) files or virtual hard disks (VHDs).
To slipstream Windows via command line:
- Download and install the WAIK tool kit from http://www.microsoft.com/en-us/download/details.aspx?id=5753
- Run the Deployement Tools Command Prompt as administrator
- Extract your Windows .ISO, using WinRar or similar, then create a directory where DISM can monut the installer
- Run the following command:
dism /mount-wim /wimfile:C:\Iso\Windows\sources\install.wim" /mountdir:"C:\Mount" /index:1
A breakdown of this command:
dism - Opens the Deployment Image Servicing and Management
/mount-wim - Tells DISM that we want to mount the Windows installer from an image.
/wimfile:*LOCATION* - This tells the DISM where the .wim file in located. This will be the directory in to which you extracted the .ISO. The install.wim file will be in the \sources subfolder.
/mountdir: - Location of where we want to mount the installer temporarily
/index:1 - The Version of the installer we are modifying (Windows typically has more than 1 OS version on a disk, such as Standard/Ent, Web and Datacenter editions, etc). This selects the version, which can be identified using imagex /info "LOCATION OF WIM FILE"
- Once this has completed, you can simply start adding updates using this command:
dism /image:C:\Mount /add-package /packagepath:PATH-TO-UPDATE
- Once all the necessary packages have been added, run the command:
Dism /unmount-wim /mountdir:C:\Mount /commit
The image will now commit the changes.
As an alternative to steps 5 and 6 you can use the updates from the OS you are already running. The OS you are running the command on must match the OS you are slipstreaming however. To do this, run the command:
Start /w for /R \\UPDATEDMACHINE\C$\Windows\SoftwareDistribution\Download\ %f in (*.cab) do DISM /image:C:\Mount /add-package /packagepath:”%U”
Where 'UPDATEDMACHINE' is the name of the computer that has the updates you wish to use.
How we use slipstreaming in the hosting environment
Slipstreaming is such a huge timesaver that it pays us to use it intensively in our datacentres. Thus we always maintain ISO images, complete with the latest updates, for all the Windows versions we use.
Once you have your slipstreamed OS installer ready, there are a number of ways you can deploy it. One really nice solution is to utilise Preboot Execution Environement (PXE), along with WAIK, to completely automate OS deployment. Though this may be beyond the needs of most.
Another good solution is to put your ISO file onto a Zalman drive, or any other drive that can mount ISO files. This way you can rock up to your server, select the iso file you want to install (using the LCD on Zalman), plug the drive in via USB and install the OS as if the disc were present.