Can't Install Windows on EFI systems
I want to format my Computer that currently have this partition
- Disk 0 Partition 1 // Formatted
- Disk 0 Partition 2 // Formatted
- Disk 1 Partition 1 // Formatted
- Disk 1 Partition 2
- Disk 1 Partition 3
but after I format the partition and try to install the Windows, I got a warning like this
Windows cannot be installed to this disk. The selected disk has an MBR partition table. On EFI systems, Windows can only be installed to GPT disks.
What should I do to install the Windows again? If it's possible, without having to format or delete the other 2 partition that's not formatted yet
I'm using 1 HDD and 1 SSD
Solution 1:
Please read this answer completely before doing anything!
Converting without data loss is possible. For the theory, read this. To do this, you need gdisk
, AKA GPT fdisk. It’s contained on the GParted LiveCD, so I’ll go with that.
After booting you’ll end up with a screen somewhat like this:
In this image, I have already identified the hard disk I want to modify: /dev/sdb
. The panel on the left (accessible via View → Device Information) shows I have a “msdos” partition table (AKA MBR). Remember the device name (/dev/sdb
in my case), because we’ll need it. Close GParted.
Now, open a Terminal and type the following command, replacing /dev/sdb
with the disk you want to modify:
sudo gdisk /dev/sdb
gdisk
will explain in a complain-ish message that it didn’t find a valid GPT and converted the existing MBR table to GPT:
In my screenshot, I already executed the p
(print) command, which shows the disk layout gdisk
would write. Double-check that everything looks okay! This is very important. If anything looks wrong, immediately quit with q
(quit)! Otherwise, you might destroy data.
If you find everything to be acceptable, type w
(write) and confirm with y
.
Congratulations, you have now converted MBR to GPT while keeping all partitions.
However, your work is not done. To be able to boot, you’ll need an EFI System Partition. This is a special FAT32 partition that holds boot information. Its recommended size is 200 MiB.
If you don’t have that much space, you’ll have to shrink one of the partitions.
Once again start GParted. On the correct disk, select some unallocated space of enough size and create a FAT32 partition. Apply these changes.
Now, right-click on the FAT32 partition, select “Manage Flags”. Select “esp”, this will also automatically select “boot”. This change takes effect immediately.
After that, start your Windows Setup (in UEFI mode, naturally), and you’ll be able to go through with the installation.
“Upgrading” to UEFI
Follow the steps above, then continue with this answer. You’ll need an installation medium for this.
Since the steps are slightly different, here’s the gist of it:
Fire up Windows Setup, press ShiftF10 to get a command prompt.
Assign a drive letter in diskpart
:
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 C System NTFS Partition 119 GB Healthy Boot
Volume 1 FAT32 Partition 100 MB Healthy System <-- EFI System Partition
DISKPART> select volume 1
...
DISKPART> assign letter=b:
...
DISKPART> exit
Restore boot info, bootrec
may or may not be necessary:
b:
bootrec /fixboot
bcdboot c:\Windows /l en-US /s b: /f ALL
And you’re done. Simply abort setup (don’t press the PC’s Reset button, it’s bad for data integrity) and it’ll boot with UEFI.