Recently, I had to prepare some UEFI based Windows 8 deployments to tablets using ConfigMgr 2012 SP1 CU2 and ran into a couple issues that I would like to write down, as I wasted quite some time to get those resolved. Some of those issues have already been mentioned in some other blog posts, TechNet forum questions or sometimes a short a comment. But I thought it would be helpful to have a combined list. Even it it’s only for my own reference.
After the installation of SP1 and CU1 ConfigMgr 2012 is supposed to support UEFI based devices with 32 and 64 Bit. This is working fine if using PXE Boot and if the PXE Service Point is based on Server 2012. But it’s still lacking some support for other Boot medias. The following has been tested against CU2 as well, with no improvement so far.
Due to some administrative reason, I had to use a bootable media instead of PXE boot for the initial testing. And it turned out, that the bootable media created by ConfigMgr 2012 doesn’t boot at all on UEFI devices! No matter if creating a USB stick or using an ISO image. All failed to boot.
For verification I used a MDT 2012 Update 1 based LiteTouch Boot image and this was working fine. After some investigation it turned out, that the boot image is simply missing a file.
On the ConfigMgr 2012 Boot Image you will find the UEFI Boot loader in the EFI\Microsoft\Boot folder called bootmgfw.efi. To support booting on removable devices, the UEFI specification defines some Auto-detection of boot loaders. So far so good. However, this auto-detection relies on a standardized file path to the OS loader, depending on the actual architecture to boot which is EFI\Boot\boot[architecture name].efi. Please see this Wikipedia entry for some more information about UEFI.
Looking at the MDT 2012 Update 1 LiteTouch Boot image, we can actually find this EFI\Boot folder, containing a file called bootx64.efi. As MDT sticks to the UEFI specification, the boot-manager is able to detect the appropriate boot loader and boot.
So for the fun of it, I just copied the EFI\Boot folder from the MDT LiteTouch Boot Image to the ConfigMgr 2012 Boot Image and wonder what, it booted fine into the ConfigMgr environment. However, combining boot files from two different sources didn’t sound nice. So I just copied the EFI\Microsoft\Boot folder to the EFI folder and renamed the bootmgfw.efi file into bootx64.efi. And again, this did the trick as well. It would actually be enough to just create a folder EFI\Boot, copy the bootmgfw.efi to this folder and rename it to bootx64.efi. So whatever you prefer.
On x86 based devices, this file needs to be named bootia32.efi. (Not bootx86.efi, as one could assume)
So far I wasn’t able to find a way how to fix the process in ConfigMgr itself to avoid manipulating an ISO file or boot media every time after it has been created, but wasn’t successful yet. I’ll post any further findings here.