Converting a Windows 8.1 BIOS installation to UEFI

I got my hands on a Sony Vaio Pro 13” Ultrabook (very nice laptop btw) which originally came equipped with the basic version of Windows 8. It was going to be used as a work computer however, so I decided to install our Windows 8.1 Enterprise image on it. That said, I noticed that the current Windows installation was an UEFI installation of Windows 8. Our own image doesn’t include the needed partitions for UEFI, so it isn’t deployable as an UEFI installation (without MDT or partition modifications). MDT 2012 and newer are able to deploy both BIOS and UEFI versions from the same image but I didn’t test that stuff just yet. I don’t have a spare workstation with UEFI to test on either 😦 Update: I was able to test UEFI in combination with MDT 2013 and WDS in VMware workstation, more info later in the document. Update 2: I have now also tested a “real life” computer (HP Compaq Elite 8300 workstation) with UEFI PXE enabled in the bios. I can confirm that the WDS-server indeed HAS to be version 2012 (R2). I tried with the old Windows Server 2008 R2 and the boot image was NOT found. This statement can of course be untrue with other computer brands. I also enabled fast boot in the bios on the Elite 8300 after successful deployment, but I can’t really tell if it boots faster than before. At least it works, but it’s probably more noticeable on laptops.

Some info about UEFI in MDT:

“By default, MDT creates the appropriate partitions to support computers running UEFI. MDT supports UEFI versions from 2.0 up to 2.3.1. UEFI 2.3.1 is a newer version of UEFI that will be used on Windows 8 logo–compliant computers.
For more information about UEFI support in MDT, see the section, “Deploy to Computers with UEFI”, in the MDT document Using the Microsoft Deployment Toolkit.”
Source: http://www.edugeek.net/forums/downloads/125660-microsoft-deployment-toolkit-mdt-2013-a.html

I saw different requirements for the WDS server also; some say that UEFI pxe-booting works with Windows Server 2008 R2, and some say it requires Windows Server 2012. I can confirm that it works with Server 2008 R2 for 64-bit clients at least. Some links:

http://social.technet.microsoft.com/Forums/en-US/8cfa4b2d-a20d-4201-8568-f77da388d5f5/does-server-2008-r2-support-uefi-pxe-boot-for-wds
http://www.windows-noob.com/forums/index.php?/topic/8045-trying-to-deploy-over-pxe-uefi-x86-with-wds-2012/

Sony isn’t our main brand so it was unnecessary to add a bunch of drivers for it in MDT. UEFI isn’t in use on many of our computers either so I’ll put the whole UEFI with MDT on hold for a while. Now it’s time for some old school manual labor with a Boot CD and ImageX + diskpart 🙂

Here’s the process:

  • Entered the bios on the Sony and changed boot device from UEFI to Legacy. I also changed the boot order so it would boot from CD/DVD as first boot device.
  • Booted from a WinPE 5.0 CD (Windows 8.1 install DVD is also fine).
  • Ran diskpart with the commands “list disk”, “select disk 0”, “clean”. This cleans the whole disk and partitions
  • Created a new primary partition, “create partition primary”. I could have created more partitions NOW and not later, this way I would have had the computer UEFI-ready instantly. See the Conversion to UEFI step. It did work fine this way also, just more (unnecessary) steps…
  • Made it active with the command “active”.
  • Formatted the partition, format fs=ntfs label=”Windows 8” quick
  • Assigned drive letter, “assign letter=c”
  • Exited diskpart with “exit”
  • Applied the image (from a usb hard drive) with ImageX (integrated on my WinPE CD).
  • Imagex.exe /apply path-to-Windows81.wim 1 c:
  • bcdboot c:\Windows
  • Exit. Wait. Done.
  • I now have a regular mbr/ntfs image applied and running.

 

Conversion to UEFI

With the laptop still running in “normal bios/legacy mode”, I did the following:

  • Installed EaseUS Partition Master Free (http://www.partition-tool.com/) in Windows.
  • Created an unallocated chunk of disk space “to the left” of the Windows partition. Mine was 350MB. If you already have a 300+ MB system partition you can skip this step. I didn’t have one though as I didn’t create one in the steps above. MDT creates this system partition for you automatically if you deploy with that and not manually.
  • Formatted the partition and gave it a drive letter. Doesn’t matter which drive letter you give it as it’s going to be partitioned (and formatted) again real soon. I could have left it unformatted/unallocated also.
  • Downloaded gptgen (http://sourceforge.net/projects/gptgen/). This is needed to convert the whole disk to GPT (GUID Partition Table). GPT is needed for UEFI, and in turn UEFI is needed for Secure Boot (if you choose to enable it).
  • Ran gptgen.exe –w \\.\physicaldrive0 from an administrative command prompt. (You get the drive number from Windows Disk Management, usually 0). After this, the computer won’t/can’t boot with normal legacy mode anymore so you MUST boot the computer with the WinPE or Windows installation disk.
  • Restarted the computer and booted with the WinPE CD
  • Time for diskpart again:
  • diskpart
  • list disk
  • select disk 0
  • list partition
  • Showed me two partitions, Partition 1 which was the newly created one (350MB) and the other which was my Windows installation (120GB)
  • I selected the the 350MB’s partition and deleted it, “select partition 1”, “delete partition”
  • Created new partitions for EFI and system:
  • create partition EFI size=100 offset=1
  • format fs=fat32 label=”System” quick (EFI partition should be fat32)
  • assign letter=S
  • create partition msr size=128 offset=103424
  • Listed the partitions again, “list partition”
  • Partition ###  Type              Size     Offset
           ————-  —————-  ——-  ——-
           Partition 1    System             100 MB  1024 KB
           Partition 2    Reserved         128 MB   101 MB
           Partition 3    Primary            120 GB   229 MB

  • Partition 3 is my Windows partition
  • list volume
  • select volume 3 (my Windows 8 Volume, not same as Partition, just happen to be “3” in both cases)
  • assign letter=c
  • exit diskpart
  • bcdboot c:\Windows /s s: /f UEFI
  • restarted computer and enabled UEFI in bios.
  • Worked! Enjoy!

Source: https://social.technet.microsoft.com/wiki/contents/articles/14286.converting-windows-bios-installation-to-uefi.aspx

Configure UEFI/GPT-Based Hard Drive Partitions: http://technet.microsoft.com/en-us/library/hh824839.aspx

P.S. This has to be the fastest (Windows 8.1) computer I’ve ever tested. Bootup and restart only takes a couple of seconds due to UEFI and Windows 8 Fast Boot feature.

 

Bonus: UEFI PXE-Windows 8 Deployment in VMware Workstation 9

This was actually quite an easy task. It also answered some of my earlier questions regarding the PXE/WDS server version. I had an old virtual machine named “miffo” which was my old test deployment client. It had Windows 8 running at the moment (not that it matters). I opened up up the configuration file for the vm, namely miffo.vmx. I added an extra line into the file: “firmware=”efi”.

Source: http://community.landesk.com/support/docs/DOC-27736

Now I could boot the virtual machine with an UEFI-enabled “bios” (Fig 1). EFI-boot from hard drive should be unsuccessful due to the fact that the current installation is using bios/mbr and UEFI can’t boot from mbr.

efi_vmware

Fig 1. EFI boot.

Just as with “normal” pxe-boot, the client contacted the pxe server (Fig 2). NOTE: The LiteTouchPE boot image HAS to be 64bit. If you boot with x86 architecture it will fail (vm will eventually shut itself down). As far as I know, this should be fixed in WDS for Windows Server 2012 (better support for UEFI and x86). I’m using Windows Server 2008 R2 WDS/PXE in my test environment so I wouldn’t know…

pxe_loadingfiles

Fig 2. PXE booting

After this everything was running as normal. You choose your task sequence and sit back and enjoy the show. I did not change anything in the task sequence regarding “Format and Partition Disk”, but MDT was smart enough to partition the disk correctly despite that (Fig 3).

gpt_uefi

Fig 3. Gpt + UEFI partitions created automatically

Same thing checked after successful deployment (Fig 4):

diskpart_from_windows8

Fig 4. Gpt + UEFI partitions again

And just to make sure we’re running UEFI (Fig 5):

msinfo32

Fig 5. System Information (msinfo32.exe)

 

This little test shows that UEFI deployments can be rather pain-free. Hopefully the same goes for production environments. Fingers crossed.

Some more links regarding UEFI and fast boot:

http://blogs.msdn.com/b/b8/archive/2011/09/20/reengineering-the-windows-boot-experience.aspx (especially the fast boot video)
http://blogs.msdn.com/b/b8/archive/2011/09/08/delivering-fast-boot-times-in-windows-8.aspx
http://blogs.msdn.com/b/olivnie/archive/2012/12/14/windows-8-fast-boot.aspx
http://blogs.msdn.com/b/b8/archive/2011/09/22/protecting-the-pre-os-environment-with-uefi.aspx
http://www.techrepublic.com/blog/windows-and-office/how-windows-8-hybrid-shutdown-fast-boot-feature-works/

It would be nice to have the Windows 8 Fast Boot feature on a workstation also, but that requires UEFI GOP support from the graphics card. This isn’t probably a big deal if you have an integrated graphics card on the motherboard, but for people with an (older) add-on graphics cards there can be problems. My own workstation graphics card (Nvidia Quadro NVS 450, non-integrated) won’t support UEFI GOP for example 😦 This is yet to be tested on another workstation (even though this feature is much more desirable on laptops).

Advertisements

11 thoughts on “Converting a Windows 8.1 BIOS installation to UEFI

  1. I am having Dell XPS 15 L502x model with BIOS only. Is there any way to get UEFI installed. If yes, please suggest the procedure. I am running Windows 7 HP – Pre-installed and Windows 8.1 Pro.

    Thanks in advance

    Venkat Kumar

  2. Thank you. I have struggled with this for days and all other guides that I found were unbelievably convoluted and difficult/impossible to follow, or else missing vital steps. Your solution was easy to follow and worked first time. I only needed the “Conversion to UEFI” section personally and used Minitool Partition Wizard, which worked equally well (I presume) compared to Easus.
    Anyhow, many thanks 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s