12 November 2017

In the olden days, your puter had a BIOS.

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

Note the last item above: UEFI supports huge hard drives as long as the drive is using 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:

  1. Right-click This PC and choose Manage
  2. Click Disk Management under Storage
  3. At the bottom, right-click Disk 0, and in the popup menu, see if it says “Convert to GPT Disk
  4. 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:

C:\Windows\System32\mbr2gpt.exe

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…

No.

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?

More hairiness!

The short version is to go here and download the Windows ADK. Then, you’ll need to follow the instructions in this video.

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:

Windows 10 PE 1803 ISO file

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.

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:

  1. Type: diskpart
  2. Type: list disk
  3. Note the Disk # for your C:, which should NOT show an * in the GPT column
  4. Type: exit
  5. Type: mbr2gpt /validate /disk:X, where X is the # of the disk you got from diskpart for your C:
  6. If it validates okay, you’re good to go. If not, stop because there is some problem!
  7. Type: mbr2gpt /convert /disk:X to do the actual conversion
  8. Reboot your puter, and if necessary go into UEFI, and change the boot setting from Legacy to UEFI

That’s it!

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

Convert your Windows 10 boot drive from MBR to GPT
Tagged on:                     

5 thoughts on “Convert your Windows 10 boot drive from MBR to GPT

  • 22 November 2017 at 00:53
    Permalink

    That was great! :-O
    I’ve already GPT’ed some 3TB drive from scratch, as they won’t load on Windows, and seen the fancy UEFI at work more and more often, but… did you do that on a SSD drive? Wasn’t aware of the partition and speed features of GPT.

    Thanks a lot for the detailed tutorial! I’m gonna love that 😉

    Reply
    • 22 November 2017 at 14:01
      Permalink

      Yes, it works for SSDs, too. I have 2 drives: SSD is C:, and data drive is a 2TB hybrid. The larger 2TB drive was already GPT since it was easy to just set it to GPT before I copied data over from my old data drive. But my C: was a bit more problematic…

      Well, it’s a good idea to make a backup before you mess with your boot drive, but I have crazy backups. So I just pulled the trigger – and poof! It was done. My C: is an NVMe SSD, but it also works on SATA SSDs just fine.

      Reply
  • 15 September 2018 at 05:10
    Permalink

    Nice write up, good effort, but for unknown reasons my disk didn’t validate. I don’t have time to chase this down another Window’s rabbit hole…

    Thanks!

    Reply
  • 18 September 2018 at 04:36
    Permalink

    Tried it but because I still had the master boot table & a lager partition on the drive it would not do it.
    But because it is a Microsoft tool,, you guessed it,,, it still tried & went ahead with the process and totally stuffed everything up first before telling me there was an issue with the extra partitions.
    Lucky I had a Full drive backup

    Reply
    • 18 September 2018 at 12:32
      Permalink

      Oh man… Since I switched to using an SSD for my boot drive, I never have multiple partitions on the primary drive. I did that a lot in the past, and I ALWAYS had some problem or another. For example, ages ago, I had 1 HDD with Win XP. Tried to dual-boot with linux. It worked! No problem. Then I decided that linux had to go because wasn’t playing nicely with the Win machines on the network (and vice versa), and I tried to remove those extra partitions without screwing up Windows… HA! I had to buy partitioning software to get ‘er done without losing everything. SIGH…

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.