Vista Deployment - What is Imaging?
Having just been on some rather good training about Vista deployment I wanted to put together a quick post highlighting some of the areas where deployment has been completely re-engineered in Vista. It's best to start with some explanations about the new deployment tools and techniques, and who better to introduce them than David D’Souza - the Director of Development in the Windows Core OS Division.
In this excerpt he talks about imaging - which is really the crux of deployment in Vista:
Why Imaging
Ideally, installation of an operating system is two fairly simple steps. First, copy all the OS files to the hard disk. Second, configure the machine dependent files & registry settings such as security identifiers, machine name,
and specific hardware drivers required for the system. Install time should scale with the size & number of files in the operating system.
However, the software development process is structured around smaller, isolated, components – kernel, file system, shell - that combine to produce the full OS. Thus, our developers create an installation script that is a long list of individual components, each with their own state, configuration, and instructions for installation. Each component copies its files, builds its databases, and individually adds its registry keys. This makes it easy for Windows developers to change one component without disturbing other components. Unfortunately, this means install time scales with the number of components, files, and registry keys. This is the process we used to install Windows XP.
Imaging allows us to execute the “slow” installation process internally at Microsoft and capture the resultant files and a list of machine dependent state. Subsequent installs simply copy all the files – the OS image - and reconfigure the machine dependent state. The imaging process allows us to have the best of both worlds – an agile internal software development process that is component centric and a final installation process that optimizes towards installing the full operating system. Additionally, imaging is highly reliable because significantly fewer & simpler operations are performed to install an image. Imaging is the default installation process we use in Windows Vista.
How We Image
Windows Vista supports a collection of imaging tools & file formats to enable image based deployment by OEMs & Corporations.
Windows Imaging technologies (WIM) – Also includes the Windows Image Format that contains all the files required to install the operating system. WIMGAPI is an API set developers can use to read or write WIM image files so more tools can be developed around this. This is a file based imaging technology that enables a greater degree of hardware independence.
ImageX is the tool that allows users to capture a WIM image, edit certain files offline, deploy it onto a harddisk, and configure the machine dependent state so the OS boots & runs.
Setup provides a friendly user interface around ImageX to install the Windows image stored on the DVD. Setup can do a clean install or upgrade an existing operating system such as Windows XP or Windows Vista. When doing an upgrade, Setup first captures all your documents, settings, drivers, & applications, lays down the clean image, and then reapplies your state into the new OS. Supporting upgrade scenarios via imaging ensured our imaging technology worked across a huge variety of hardware configurations. This helps reduce the number of images corporations & OEMs need to maintain.
Windows Deployment Services (WDS) – is a server product that allows you to boot your bare metal PC from the network and install an image onto your hard disk. This is primarily used by corporations & OEMs for large scale, remote image deployment.
Performance
Let’s first look at the overall performance numbers we are seeing from our latest RC builds:
This data represents Windows Vista Ultimate clean installation times across hundreds of thousands of RC1 installations on diverse hardware with varying DVD drives and network traffic. The time is based on the start of copying the files to the disk to the time the OS is ready to run – the time to enter the product key (PID), select your drive, and enter the language and do the performance check during OOBE is not included.
Overall, we come very close to our 15 minute install time goal across a broad array of hardware and installation mechanisms using the Windows Vista Ultimate product. There are many things that influence this time - speed of the network or dvd drive, the flavor of Windows Vista you install (Home is smaller than Ultimate), and the number of PnP devices on your system.
Additionally, we also support in place upgrades from Windows XP to Windows Vista. During an in place upgrade, we install the image and ensure your applications, drivers, settings, and documents are properly moved into Vista. This process of finding and moving your state adds at least 30 minutes to the upgrade process. And some machines with large numbers of files, applications, or drivers can take up to 120 minutes.
The deployment team has put a lot of effort into the install process, and in some scenarios installation is going to be as short as 20 minutes and in others, it will be longer. I hope you all have a better understanding of installation and the great progress we have made. Please install RC1 and try it for yourself. To get all the deployment tools I mentioned, go to connect.microsoft.com and download the Business Desktop Deployment solution (BDD 2007) – this has best practice guidance on how to use these tools as well.
Technorati tags: Vista, Deployment, Imaging