Introduction To UEFI
The Legacy BIOS that we are all accustomed to has been around for a long time and is showing it’s age, for example it cannot handle discs larger than 2TB in size. Realizing the need for change, Intel originally created the Intel Boot Initiative back in 1998. Within a few years a bunch of well known companies (including Microsoft, HP, Dell, AMD and others) got together and formed the UEFI specfication which was the next logical step in its evolution.
Unified Extensible Firmware Interface (UEFI) is meant as a replacement for the legacy BIOS present in all IBM PC-compatible personal computers.
As a result, most modern computers today will have a bios that is both Legacy (bios) and UEFI capable, for example on a Dell Latitude E6320 you have both options available in the BIOS screen under the General, boot Sequence, Boot List Options menu. More than likely it’s already set to Legacy, but we will be changing that later in this post.
With the recent release Windows 8 RTM and updates released for Configuration Manager 2012 to support Windows 8 (amongst other things via the CTP release of SP1) we now have the ability to create task sequences with UEFI abilities built in. But first before you try using UEFI please understand one thing, it’s very different to what you are used to with the traditional bios so there is a learning curve.
Don’t expect PXE boot (via UEFI) to work on your current hardware as UEFI network bios drivers for it are not readily available (you might see them on certain servers, contact your hardware manufacturer for details). I believe once Windows 8 starts shipping (October timeframe) that we will see laptops shipping with UEFI enabled by default and these newer devices should have the ability to Network boot over UEFI as long as they have the latest bios and that bios supports this ability. I don’t have access to one of these devices so therefore cannot test this, yet. See this post for more details.
Step 1. Verify your client computer supports UEFI
Most OEM manufacturers are releasing UEFI capable computers nowadays but check the actual bios/computer specifications online first (or verify with the manufacturer) before attempting this. In my BIOS screenshots in this post I’m using a Dell Latitude E6320 with Bios version A05. This laptop is both Legacy Bios and UEFI capable. If your computer is not UEFI capable then you’ll have to get one that is (if you are lucky, a bios upgrade on your computer to the latest version may enable this functionality).
Step 2. Upgrade ConfigMgr to SP1
To deploy Windows 8 in Configuration Manager 2012, you’ll need to install the Windows Assessment and Deployment Kit and to upgrade ConfigMgr to Service Pack 1 which is currently in Community Technology Preview phase (CTP 1). See here for a link describing how to install both.
Note: As a result this means you have to do this in your LAB as the CTP release is not supported in production.
Step 3. Add Operating System Image.
In your newly updated ConfigMgr console, click on the Software Library workspace, Operating System Deployment and select Operating System Images, right click and choose Add Operating System Image
When the wizard appears, browse to the path of the Windows 8 installation media, and select the Install.WIM file contained in the Sources folder of that media. (This is ok, Windows will not get installed on D: like it used to)
continue through that wizard until completion.
Step 4. Distribute Content to your DP’s
Right-click your newly added Windows 8 WIM image and choose Distribute Content, select your dp’s and you are good to go
complete the wizard.
You can review content status to verify that your WIM image has reached your distribution points.
Step 5. Create a Deploy Task Sequence
In this post we will create a Deploy task sequence, in a future post I will explain how to do a Build and Capture task sequence and link it here.
Right click on Task Sequences, and choose Create Task Sequence,
choose Install an existing image package
fill in some details about the task sequence including a descriptive name, make sure to select a X64 boot image (64 bit boot image).
Select our previously added Windows 8 RTM install.wim file and make sure that the format and partition step is selected, also type in your Windows Product Key (blanked below) and enter an administrator password.
Note: if you are using a previously captured Windows 8 WIM file which has more than one image index, make sure to select the image index that contains the Operating System otherwise you will not be given any UEFI options in the task sequence.
continue through the wizard until completion.
Right click on your new task sequence, choose Edit, take note of the Partition Disk 0 – UEFI step, if it is not present, please review my Note above.
Step 6. Deploy the Task Sequence
Right click our task sequence, select Deploy, choose a suitable collection, and make the task sequence available (optional). Note the new options on the Deployment Settings screen, select only media and PXE.complete the wizard.
Note don’t deploy task sequence to All Systems in production, otherwise bad things can happen. Instead, use specifically created OSD collections and add resources that you want to Deploy to those collections. This is a LAB so for the purposes of this post it’s ok.
Step 7. Create Task Sequence Media (USB Flash Drive)
In the ribbon select Create Task Sequence Media, select the first option (Standalone) and click next.
Note: If you select Allow unattended operating system deployment and do not set a password on your media you risk the chance of getting a system wiped and having it’s OS replaced if you leave the USB flash drive plugged in.
Select USB Flash Drive and point to your inserted USB key.
Enter a security password if required then at the next screen select our Deploy Windows 8 X64 RTM – UEFI task sequence, wait until the referenced packages are listed in the box below.
Add your distribution points and click through to completion
and now you can take a break while the USB Flash Drive get’s created..
Step 8. Change the bios to UEFI mode
On your UEFI capable computer, boot into the BIOS Setup screen and enable UEFI as the boot type. The screenshot below is from a Dell E6320 (the UEFI bios options look different on Lenovo but can enable the same functionality), select boot sequence, and then Boot List Option in the bios screen, by default Legacy is selected, choose UEFI from the list.
Save your settings and exit from the Bios. Now you are ready to boot to UEFI.
Step 9. Start the deployment
Boot the computer and press F12 to get a one-time-boot menu, notice the UEFI device is listed as UEFI: INT13(USB,0x80)
Select the UEFI device and press enter to start deploying, you’ll notice once the partitioning step starts that it is partitioning the disk for UEFI.
Note: if it states that it’s partitioning the disk for BIOS instead then you are not getting a UEFI deployment and you’ll need to press F8 and start reading the SMSTS.log file to find out why.
During our UEFI deployment, if you examine the SMSTS.log file you should see a line that reads:-
The condition for the action (Partition Disk 0 – UEFI) is evaluated to be true
and that the read only variable _SMSTSBootUEFI is set to True.
Once Windows has finished deploying you can run diskpart and you’ll see the UEFI partitions.
Step 10. Verification
In addition to checking your partition layout, you can open an administrative command prompt and type bcdedit /v to list the Windows Boot Manager (should be listed as EFI) and Windows boot Loader should reference winload.efi.
And you can run msinfo32 to see BIOS Mode listed as UEFI (thanks Mattias)
That’s it, job done, you are deploying Windows 8 systems with UEFI using Configuration Manager 2012.
Step 11. Further reading about UEFI.
The following links will give you some good information about UEFI.
- Protecting the Pre-OS Environment with UEFI
- Introduction to UEFI
- Extensible Firmware Interface (EFI) and Unified EFI (UEFI)
- Windows and GPT FAQ
- Sample: Configure UEFI/GPT-Based Hard Drive Partitions by Using Windows Setup