Imaging A Surface Pro
Recently, I had to build to image a bunch of Surface Pro’s for a lab that we have called the Customer Immersion Experience (CIE). This post documents the process and hopefully will save you the time that I had to go through to get the image working.
I have also attached a PDF with the steps documented her: Imaging A Surface Pro.
I tried multiple ways to get the imaging to work with the Surface Pro. Here are some things that I tried and what I got working.
· PXE boot from Network Adapter and load from WDS.
· USB Win PE boot and get image from WDS
· USB Windows install.
1.1 PXE Boot from Network Adapter and load from WDS
In this approach, you use a USB network adapter and PXE boot the Surface Pro and install the image from WDS.
This is the approach that I ultimately got working.
1.2 USB Win PE boot and Get Image from WDS
In this approach, you need a USB hub since the Surface Pro only has one USB port. You need two USB ports. One USB port will hold the USB stick to boot from. The other USB port will hold the network adapter to connect to the WDS server.
I couldn’t get this approach to work since I couldn’t boot off the USB through my USB hub. I could boot directly from the USB stick but then didn’t have network connectivity to the WDS server since I only used the USB port for the USB stick.
1.3 USB Windows Install
In this approach, you load the entire image onto the USB stick. There is an issue. The UEFI boot of Surface Pro requires FAT32 partition. FAT32 partition only support a maximum of 4GB in size. The full Windows 8 install image is larger than 4GB. So, you need to partition the USB stick into two partitions. One partition is FAT32 to boot from and the other partition is NTFS. To do this, you need a USB stick that comes up as a fixed disk so that you can partition it.
I didn’t have a USB stick with this spec so I skipped this approach.
2 Imaging via PXE Boot from Network Adapter and Load From WDS
For the rest of this document, I will record the steps to image the Surface Pro using PXE Boot from Network Adapter.
First, you need to use the Surface Pro USB Ethernet adapter (see here). I tried with another network adapter and couldn’t get it to consistently PXE boot.
To PXE boot the Surface Pro, you will need to install at least the May firmware update (see here) for more information. I got the latest update through Windows Update.
Disable Secure Boot. Secure Boot requires only signed drivers in the boot process. To disable secure boot, hold down the Volume Up button (on the left hand side) and press and release the power button. Release the Volume Up button, when the Surface logo appears.
Download the Surface Pro Driver and Firmware update (here). Read through the Enterprise Deployment Quickstart Guides. They have some great information.
2.1 Inject Surface Drivers into MDT
First, my disclaimer is that I am not an OS deployment guru so I maybe mentioning the tools incorrectly. I had to learn this over the two days that I had to get this up and running.
I am using MDT Workbench to build the image to use on the Surface Pro.
Copy the Surface Pro Driver and Firmware Update pack to the MDT/WDS server. Unzip the driver zip file.
Launch the MDT Workbench
Need to inject the Surface Pro drivers into the Task Sequence. Navigate to the Out-of-Box Drivers.
I created a sub-folder called “Win8-x64-SurfacePro”. Right-click and select “Import Drivers”. Select the folder containing the Surface Pro drivers. Select Next until Finish.
2.2 Modify Customsetting.ini
According to the Surface Pro Enterprise Deployment Quickstart Guide (p. 5), we need to modify the customsettings.ini file. See below.
The customsettings.ini file is located in: c:\sources\deploymentshare\control
I backed up the original file and edited it by adding the recommended settings that were in the Enterprise Deployment Guide.
_SMSTSOrgName=Customer Immersion Experience 4.5
TimeZoneName=Pacific Standard Time
[Surface with Windows 8 Pro]
Note, don’t skip this step or else you’ll be wondering why image process is crashing and the Pro can’t find its network driver.
2.2.1 Created a Task Sequence for the Surface Pro Image process
The CIE contained a task sequence to image other devices. I copied it and created a task sequence image the Surface Pro’s.
Note, I discovered that there isn’t an easy way to copy a task sequence from one to another. You need to create a new task sequence. Then, when the new one is created, then you can copy the tasks from one task sequence to the other. You can copy the top level task sequence and it will copy the lower level tasks along with it. Then you just need to move down the sequence to get it at the right level.
I noticed that the task sequence crashing/stopping at a step that involved BCDEdit. Surface Pro only supports UEFI. Some laptops/devices support both UEFI and Legacy boot options. Since Pro only support UEFI, it doesn’t allow changes to the boot that attempted to be made by the BCDEdit. So I disabled this task in the sequence.
The task sequence uses a lot of .wsf scripts. These are compiled scripts and you can’t open them with Notepad. I installed Visual Studio and then I was able to open and edit them.
2.3 Copy the Answer file
I ran the task sequence and it crashed since it was missing the answer file. I copied the unattend.xml from the initial task sequence sub-directory to the copied one.
2.4 Update the Deployment Share
After making changes to the task sequence, the deployment share needs to be updated. Open MDT Workbench. Right-click the “MDT Deployment Share” and select “Update Deployment Share”.
Select “Completely regenerate the boot image”
Press Next until Finish.
It will take some time to regenerate the image.
By the way, I discovered that if you want to generate an ISO image, then you need to enable that option. Right-click the “MDT Deployment Share” and select “Properties”
Select the “Windows PE” tab and select the Platform (e.g. x64). Check the checkbox to “Generate a Lite Touch bootable ISO image”. Press Ok.
Now, the next time that you update the deployment share and generate the image, the ISO file will be created. BTW, it will be created in: c:\sources\deploymentshare\boot
2.5 Update WDS with the new Deployment Image
Go to the Boot Images folder and right-click and select “Add Boot Image”
Specify the location of the boot image in the c:\sources\deploymentshare\boot and point it to the new image that we created.
I created a new Boot Image for the SurfacePro
After a couple test runs, I determined that I could hit F12 to get the SurfacePro to do a PXE boot, so I changed the WDS to force a PXE boot.
Right-click the WDS server and select Properties
Hmm… I thought that I changed the setting to “Continue the PXE boot unless the user presses the Esc key” but I noticed that the setting is set to “Require the user to press the F12 key to continue the PXE boot” so this may not be necessary. If you have problems getting the Pro to PXE, you could try this change.
2.6 PXE Booting the Pro
To PXE boot the Pro, hold down the Volume Down button and press and release the Power on button. When the Surface logo comes up, release the Volume down button and the system should PXE boot. It should detect the WDS server and begin the task sequence as normal.