Deploying Native Boot VHDs [1]

Having discussed this lengthily in a previous series of posts it’s time to start working on a real world implementation – and by the way, happy new year!

The following steps should be those needed to set up a Native Boot VHD from scratch:

  1. Develop the image
    1. Create a new VHD and attach it to a virtual machine
    2. Deploy the OS and all required applications
    3. Sysprep the VHD by running a custom sysprep-only task from MDT
    4. After the VM is shutdown, use DISM to service the VHD by injecting the drivers to it
    5. Copy the VHD to a portable hard disk or similar means of distribution media
  2. Configure the target machine
    1. Boot the target machine in Windows PE using bootable media.
      1. Find out if the recovery option is installable in the standard boot partition so that F8 can be pressed to boot off the HDD instead of needing a boot disk in subsequent Windows PE tasks.
    2. Run a few Windows PE commands to create a boot partition and create the required entries in the BCD
  3. Deploy the VHD
    1. Copy the VHD file to the target hard disk
    2. Reboot the machine
    3. Enter any initialisation data needed when Windows 7 boots off the VHD
  4. Update the VHD
    1. If the VHD needs to be updated follow the sequence again but it should just be a case of replacing the existing VHD file with a new one once the machine has been booted into Windows PE. To replace an existing VHD a command may be needed to dismount the existing VHD.

There are a few special considerations. One is that we want a second VHD that is used by the user as scratch space shared by all users (video editing for example). A special command can be used to create this the first time the system is set up. Another consideration is whether to convert the boot VHD from dynamic to fixed size after it is copied. Keeping it dynamic up until copying reduces the size massively. Fixed is recommended for best performance in a native boot VHD deployment. If it is dynamic it gets automatically expanded to its maximum size at boot anyway but this will lengthen the boot time.

Right now I am working on some of the steps in each group but not through all of them. I am about to get my target test platform set up so that I can be ready to check out some of the configuration work before I get onto finishing preparing the image for it.

The overall aim is to have a deployment system that is simpler to use than MDT for deployment. MDT is a good deployment system provided that you have the necessary training and means to resolve issues with it. If your deployment is just to a few machines and your staff are not specifically MDT savvy but they know how to do stuff in Windows PE then it’s easier that way and you eliminate the extra steps of doing a capture each time your deployment image is changed.

In the next part I will look in more detail at the nitty gritty of these steps above and hopefully I will have deployed to my target test system.

Previous series: