Educational ICT Virtualisation Specialist

Twitter LinkedIn E-mail
Precedence Technologies Ltd
Technology House, 36a Union Lane
Cambridge, CB4 1QB, United Kingdom
T: +44 (0)8456 446 800 / +44 (0)1223 359900
E: enquiries@precedence.co.uk
XenServer-UEFIVM

Jump To: Support > KB > Citrix > XenServer > UEFIVM

Convert existing VM to UEFI boot

  1. Power down the VM
  2. Note the name of the system disk (add description or rename if it is the same as another disk on the same storage)
  3. Detach its system disk
  4. Boot a conversion VM with Server 2019 or Windows 10 on, can be very temporary
  5. Attach the system disk to the conversion VM
  6. Log into the conversion VM and open an administrator command prompt
  7. Run echo list disk | diskpart to determine the disk number you want to convert (in our example it is Disk 1):
    C:\Windows\system32>echo list disk | diskpart
    
    Microsoft DiskPart version 10.0.17763.1911
    
    Copyright (C) Microsoft Corporation.
    On computer: WIN-GAIAOBLFJCD
    
    DISKPART>
      Disk ###  Status         Size     Free     Dyn  Gpt
      --------  -------------  -------  -------  ---  ---
      Disk 0    Online           32 GB      0 B
      Disk 1    Online           24 GB      0 B
    
    DISKPART>
    
  8. Run mbr2gpt /disk:1 /allowfullos /convert, replacing 1 by the disk number:
    C:\Windows\system32>mbr2gpt /disk:1 /allowfullos /convert
    
    MBR2GPT will now attempt to convert disk 1.
    If conversion is successful the disk can only be booted in GPT mode.
    These changes cannot be undone!
    
    MBR2GPT: Attempting to convert disk 1
    MBR2GPT: Retrieving layout of disk
    MBR2GPT: Validating layout, disk sector size is: 512 bytes
    MBR2GPT: Trying to shrink the OS partition
    MBR2GPT: Creating the EFI system partition
    MBR2GPT: Installing the new boot files
    MBR2GPT: Performing the layout conversion
    MBR2GPT: Migrating default boot entry
    MBR2GPT: Adding recovery boot entry
    MBR2GPT: Fixing drive letter mapping
    MBR2GPT: Conversion completed successfully
    MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!
    
    C:\Windows\system32>
    
  9. Shutdown the conversion VM
  10. Detach the system disk you have just converted
  11. Re-attach the system disk to the original VM
  12. Determine the UUID of the original VM. You can get this from XenCenter or by using xe vm-list name-label="VM NAME" as shown:
    [root@xenserver01 ~]# xe vm-list name-label="Windows 10 BIOS"
    uuid ( RO)           : e98a0a89-2fb9-886b-a843-b8a08642afa4
         name-label ( RW): Windows 10 BIOS
        power-state ( RO): halted
    
  13. Set the VM to use UEFI boot with xe vm-param-set uuid=UUID HVM-boot-params:firmware=uefi as shown:
    [root@xenserver01 ~]# xe vm-param-set uuid=e98a0a89-2fb9-886b-a843-b8a08642afa4 HVM-boot-params:firmware=uefi
    
  14. Start the VM and test it boots correctly

Notes

Converting a disk using mbr2gpt will fail if there is no active partition, settings containing unknown in the BCD bootloader configuration or no recovery partition. You may view any errors by looking at C:\Windows\setupact.log

The active partition can be set with diskpart or in Disk Management.

The bootloader can be viewed and edited as follows. Drive F: represents the disk be converted:


C:\Users\administrator>bcdedit /store f:\boot\bcd /enum active

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  unknown
description             Windows Boot Manager
locale                  en-GB
inherit                 {globalsettings}
default                 {default}
resumeobject            {ec9ff585-ae46-11e9-a7aa-a701b0d3a2b6}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  unknown
path                    \Windows\system32\winload.exe
description             Windows 10
locale                  en-GB
inherit                 {bootloadersettings}
recoverysequence        {ec9ff587-ae46-11e9-a7aa-a701b0d3a2b6}
displaymessageoverride  Recovery
recoveryenabled         No
allowedinmemorysettings 0x15000075
osdevice                unknown
systemroot              \Windows
resumeobject            {ec9ff585-ae46-11e9-a7aa-a701b0d3a2b6}
nx                      OptIn
bootmenupolicy          Standard
bootstatuspolicy        IgnoreAllFailures

C:\Users\administrator>bcdedit /store f:\boot\bcd /set {bootmgr} device partition=F:
The operation completed successfully.

C:\Users\administrator>bcdedit /store f:\boot\bcd /set {default} device partition=F:
The operation completed successfully.

C:\Users\administrator>bcdedit /store f:\boot\bcd /set {default} osdevice partition=F:
The operation completed successfully.
© Copyright Precedence Technologies 1999-2024
Page last modified on August 10, 2022, at 01:28 PM by sborrill