How do I convert my linux disk from MBR to GPT with UEFI?
Before starting, make sure you have a backup, and make sure to have a linux live boot ready to rescue your system. It's easy to mess this up!
- Use gdisk to convert the partition table to GPT.
gdisk /dev/sda
- Create the "BIOS boot" partition that GRUB needs.
n
to create a new partition. Needs to be about 1MB. You can probably squeeze this in from sectors 34-2047. UseL
orl
to look up the code for "BIOS boot" (ef02). - Write the new partition table.
w
- Reload the partition table.
partprobe /dev/sda
Re-install the GRUB boot loader using the new partition scheme.
grub-install /dev/sda
Optionally reboot to verify it's working. If you just need GPT and not UEFI, you can stop here.
- Use gdisk to add an "EFI System" partition (ESP). Officially should be 100-500MB, but mine only used 130kB. Can be anywhere on the disk, so consider putting it at the end if you're using non-resizable media like a physical disk.
gdisk /dev/sda
and usen
to create the partition. - Give the ESP a distinctive label without whitespace like
EFI-system
, because we'll reference the partition label in fstab.c
to set the label. - Write the partition table.
w
- Reload the partition table.
partprobe /dev/sda
- Build the filesystem for the ESP.
mkfs -t vfat -v /dev/disk/by-partlabel/EFI-system
- Create the ESP mount point.
mkdir /boot/efi
- Add the ESP to
/etc/fstab
. It should look like this:/dev/disk/by-partlabel/EFI-system /boot/efi vfat defaults 0 2
- Mount the ESP.
mount /boot/efi
- Install the GRUB EFI bootloader.
grub-install --target=x86_64-efi /dev/sda
- Reboot.
- Change the BIOS from BIOS boot to UEFI boot.
- Use the one-time boot menu to force boot the disk. You may have to navigate to the disk ->
EFI
->ubuntu
->grubx64.efi
. - Re-install GRUB's EFI bootloader to update the UEFI boot selector.
grub-install
Resources:
- The author of
gdisk
has a verbose description of MBR, GPT, and UEFI. - Clonezilla restore MBR disk to 4TB disk (convert to GPT) -- LINUX (not Windows!) covers the first part of the process.