I've installed Windows 10 in BIOS mode and use MBR. How can I convert it to use UEFI and GPT without reinstalling Windows 10? Is this possible?
In Windows 10 v1703 (Creators Update, Build 15063), there is a tool called
MBR2GPT.EXE included which does all steps.
Best is to boot from a Win10 v1703 DVD/USB drive to the repair option (WinPE) and run
Command prompt (cmd.exe) under
repair options. Now use diskpart and list command to see all drives.
X:\>diskpart Microsoft DiskPart version 10.0.15063.0 Copyright (C) Microsoft Corporation. On computer: Win10v1703 DISKPART> list disk Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 60 GB 0 B
Now look or the disk number where your Windows is installed. This number is important for next step. Now run
mbr2gpt /convert /disk:ID with the ID:
X:\>mbr2gpt /convert /disk:0 MBR2GPT will now attempt to convert disk 0. If conversion is successful the disk can only be booted in GPT mode. These changes cannot be undone! MBR2GPT: Attempting to convert disk 0 MBR2GPT: Retrieving layout of disk MBR2GPT: Validating layout, disk sector size is: 512 bytes MBR2GPT: Trying to shrink the system partition 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!
Now, reboot the PC, enter the UEFI and change the mode from BIOS/legacy to UEFI only:
Now save the changes, reboot and Windows 10 should boot. When you run
msinfo32.exe you should see that Windows 10 runs now in UEFI mode.
Note: You can also convert Windows 10 v1511, 1607 installations, but you need to boot from a 1703 ISO! Converting older Windows versions (7,8,8.1) is not supported by Microsoft. ALSO, always make a full backup of the PC, in case something goes wrong!
The tool to which magicandre1981 refers sounds interesting and useful, but I've never used it myself. If I had that latest Windows version and wanted to convert to EFI-mode booting, I'd probably try that tool.
If you've got an older version and don't want to upgrade, it is possible, but the procedure is complicated. In brief, you must convert from MBR to GPT using a tool that can do this losslessly and then install an EFI-mode boot loader for Windows. This blog post describes one procedure for doing this.
Whatever approach you use, I strongly recommend making a complete system backup, or at least backing up your personal files, before attempting such a conversion. Although the MBR-to-GPT conversion is surprisingly simple, there's always a risk of severe data loss when mucking about with partition tables and boot loaders, so having backups is important.
When it works, mbr2gpt is fast and simple, and it's the first thing that you should try.
However, I ran into errors trying to use the mbr2gpt tool. After becoming exhausted with debugging that tool (it does create useful log files), I found an alternative solution for migrating Windows from BIOS/MBR boot to UEFI boot:
- Install an EFI boot Windows OS install to a new drive
- Boot to Ubuntu Live, and using ntfsclone, copy the OS partition from the old drive, to the new drive.
When I solved my issue, I actually backed up the partition to a USB connected HDD drive, and restored to a new SSD, overwriting the boot partition of a fresh UEFI-boot Windows 10 install. But I think the two-step method above, is what I would use if I had another machine that needed migration - unless it was a laptop. In that case, I would again backup to a USB connected drive, or a network drive.
I believe that I encountered issues with MBR2GPT because I installed Windows 7 on a small SSD many years ago, and disposed of the recovery partition (later, I upgraded to Windows 10). I don't think that the MBR2GPT tool was designed for that use case. I'm sure that we can get it to work if we spend enough time debugging it. But it seems that there's no single solution that fits everyone's problems with the tool.