Nowadays, the BIOS is rapidly giving way to UEFI, which provides all kinds of benefits.
At the same time, hard drives have sort of evolved, so now we’re supposed to use GPT instead of MBR.
Well, okay… First of all, what does all that mean?
And second, how on earth do you convert your MBR drive to the new GPT format without having to reinstall Windows?
It turns out Microsoft has made the process really easy!
First thing’s first
First of all, thanks go to Wingwong for shooting me an e-mail and letting me know about mbr2gpt.
I hadn’t heard anything about it, which is pretty weird considering how awesome it is.
So, thanks WW!
UEFI vs BIOS
Okay, what’s this UEFI and BIOS stuff?
The Basic Input Output System, or BIOS, is firmware that sits in a chip on your motherboard. When you power your puter on, it does all kinds of exciting things.
The BIOS looks at all the hardware in your puter, allocates memory to different devices, and more or less sets up all the hardware to work nicely together.
Once done, it then looks for an operating system to boot, starts it, and then takes a back seat. Voila! Windows loads.
UEFI, or Unified Extensible Firmware Interface, is like a new version of the BIOS that does more stuff – and better. UEFI has all kinds of new toys, like:
- A fancy graphical configuration interface
- Faster boot, standby, and resume times
- Secure boot
- Modular and flexible design for future-proofness
- Support for ginormous hard drives with GPT
In short, UEFI is the future of computers – at least when they boot up. Chances are, if your puter is only a few years old, it probably already has UEFI instead of the traditional and outdated BIOS.
MBR vs GPT
So what’s the difference between MBR and GPT?
Master Boot Record, or MBR, is basically the boot sector on a hard drive that contains a boot loader for the installed operating system and information about the drive’s logical partitions.
The boot loader is a small chunk of code that usually loads a larger boot loader from another partition on the drive. In other words, the Boot Sector has a Boot Loader that tells Windows to fire up.
Well, why change that if it works?
MBR was created way back in 1983. It has several limitations, namely only 4 primary partitions are allowed, and the maximum size for an MBR hard drive is 2TB.
Naturally, something better was needed.
Enter GPT, or the GUID Partition Table!
Just as UEFI is replacing the BIOS, GPT is replacing MBR.
GPT has several advantages:
- Totally enormous hard drive sizes supported (like, REALLY big)
- Redundant boot/partition info is stored on disk, so GPT is “self-healing”
- Totally huge number of partitions are supported – not just 4
- To get those faster boot times with UEFI, you really need UEFI on the motherboard + GPT on your hard drive
Now it gets hairy
So, you’re going to need to know if you have UEFI or an older BIOS.
Frankly, the rest of this article is not for the faint of heart.
You can totally screw stuff up if you’re not careful!
If your puter uses UEFI, the next thing to do is to see if your C: is MBR. You can do that like so:
- Right-click This PC and choose Manage
- Click Disk Management under Storage
- At the bottom, right-click Disk 0, and in the popup menu, see if it says “Convert to GPT Disk“
- If it does, your C: is using MBR. If not, you’re already using GPT!
How to convert from MBR to GPT
In the past, you’d have to reinstall Windows. That’s pretty sucky.
Fortunately, beginning with the Windows 10 Creator’s Update (version 1703), Microsoft decided to include a tool located here:
You can read all about MBR2GPT on Microsoft’s site, and they even have a nice video to watch.
In short, MBR2GPT allows you to convert the boot/partition mojo on your Windows 10 hard drive from MBR to GPT – without reinstalling Windows 10!
Hold your horses!
A few important notes…
You probably noticed the /allowFullOS switch. This allows you to do the conversion from an admin Command Prompt from inside Windows 10.
Microsoft itself recommends against doing this!!
So do I, actually.
The reason is that it’s far safer to modify your Windows drive when the Windows on it isn’t actually running. That’s kind of a no-brainer.
The other reason is that – as far as I can tell – using /allowFullOS means that MBR2GPT won’t be able to re-use your “System Reserved” partition at the beginning of your hard drive. Instead, it will shrink the main data partition of your C: and create a new “system partition” at the end of the drive.
This works fine, but some people have reported that they then have this extra, old System Reserved partition as a new drive letter in Explorer. To me, that seemed like a silly tradeoff.
So, I did things the MS-recommended way: I booted from a Windows 10 PE (Preinstallation Environment) USB stick that I had to make.
Can I instead boot from…
Yes, you could go into Settings and reboot Windows 10 into Recovery Mode, fire up a command prompt, and run MBR2GPT that way.
BUT it’s pretty much the same thing as running it from within Windows itself, since you’re still running the command from a partition on the drive you’re going to be modifying.
I’m not sure, but I think this is why MS recommends using Windows PE to do the deed: because it’s the “sure way” of doing it, and you’re far less likely to run into problems.
How do I get Windows 10 PE so I can boot from it?
Note that the above process means you have to download 6.5GB of files, run some commands, and you’ll get a bootable ISO file.
Who wants to do all that? Well, I do! So I did. You can download the ISO below and avoid all the hard work:
Ta-DA! It’s a ZIP file. Just extract the ISO, burn it to a CD or DVD (it’s about 270MB), and boot from it.
Note that this version of the WinPE for Windows 10 also works for versions 2004 and 20H2 of Windows 10!
If you want a bootable USB stick, just use something like Rufus to write the ISO to the stick, and then boot from that.
Do the GPT deed!
Next stop: Boot from your Windows PE CD / DVD / USB stick.
In the command prompt, do this:
- Type: diskpart
- Type: list disk
- Note the Disk # for your C:, which should NOT show an * in the GPT column
- Type: exit
- Type: mbr2gpt /validate /disk:X, where X is the # of the disk you got from diskpart for your C:
- If it validates okay, you’re good to go. If not, stop because there is some problem!
- Type: mbr2gpt /convert /disk:X to do the actual conversion
- Reboot your puter, and if necessary go into UEFI, and change the boot setting from Legacy to UEFI
You can now enjoy extremely huge boot drives and faster boot, standby, and resume times. 😀
By the way, on my Asus motherboard, I didn’t have to change the UEFI boot settings. I already had CSM=Auto and Secure Boot=Other OS, and I’m now running in full UEFI + GPT mode with no config changes.
For more info, see: Fix UEFI BIOS boot problems on a new motherboard