I have an arch install on my PC, But dual booting windows 10 needs UEFI.
How would I convert BIOS into UEFI ? Without losing data.
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
These Arch Wiki articles will be useful:
First, you need to create an EFI system partition (ESP), which will contain the UEFI bootloaders; it'll be shared between Windows and Linux. It doesn't matter where on disk the partition is, but it should be at least 256 MB in size (for future expansion). So shrink some partitions using GParted if necessary.
Make sure to set the correct type code – the ESP has its own special type, shown as "EF00" in gdisk, "1 - EFI System" in modern fdisk, "esp" in parted/GParted, or C12A7328-F81F-11D2-BA4B-00A0C93EC93B in some other tools.
(MBR disks use type "EF" for the ESP, but that's irrelevant as you already have GPT anyway.)
Format the ESP as FAT32 (mkfs.vfat).
Now you have two choices:
Mount the ESP on
/boot, moving all existing files from /boot to the partition. This is easiest if you plan to use systemd-boot or similar bootloaders.
Mount the ESP on
/boot/efi. This avoids some vaguely defined problems, but causes other problems (e.g. the kernel must be copied from /boot to /boot/efi after every single upgrade...)
Personally I would select the
/boot option, for simplicity.
Install a bootloader. GRUB 2, systemd-boot, syslinux support UEFI.
As you're currently using BIOS mode, accessing EFI variables is impossible, so the bootloader will only install to the "fallback" location,
So you'll need to reboot – making sure that you choose UEFI mode from now on – and install the bootloader again. This time it will also add itself to the UEFI-provided boot menu. (Later, Windows will also add itself to the same menu, so you can install Windows and won't need to fix Linux.)