It's not clear if you've installed Ubuntu in BIOS/CSM/legacy mode or if you're saying you haven't yet installed it but that you can boot the installer in BIOS mode.
If you want to boot the installer, either to install directly or to run Boot Repair, you must find your EFI's built-in boot manager. In most cases, this can be accessed by hitting a function key early in the boot process, but which one is completely non-standardized. (Some computers also use some other key, like Esc.) When it comes up, it will usually have two options for external media, one of which includes the string "UEFI" and the other of which does not. Select the "UEFI" option to boot in that mode and the other one to boot in BIOS/CSM/legacy mode.
In some cases, you may need to enter the firmware setup utility to disable its "fast start" feature (or words to that effect; again there's no standardization) in order for the boot manager to become available.
Also, note that only the 64-bit version of Ubuntu has an EFI boot loader. The 32-bit (x86) version lacks an EFI boot loader and so is not bootable in EFI mode unless you add an EFI boot loader of your own -- and installing the 32-bit Ubuntu on a system with a 64-bit EFI adds another layer of trickiness, so I do not recommend going that route.
Secure Boot should not be an issue, but sometimes it is, so disabling Secure Boot may be worth doing if you try other things and still can't get it to work.
As a general rule, you should not perform a BIOS/CSM/legacy-mode install of Ubuntu on a computer that already has Windows booting in EFI/UEFI mode. If you've already installed in this way, you pretty much must get the Ubuntu installer booted again in EFI mode, either to run Boot Repair or to re-install Ubuntu. The other option is to install an EFI boot loader in some other way. For instance, you could use the USB flash drive version of my rEFInd boot manager to boot Ubuntu in EFI mode, then either switch from the BIOS-mode GRUB (grub-pc
) to EFI-mode GRUB (grub-efi
) or install rEFInd to the hard disk via the Debian package or PPA.
First, one question is why you want to switch to EFI-mode booting. Based on your gdisk
output, it looks like you've got a single-OS installation, so you don't seem to need to coexist with something else. If you can boot in BIOS/CSM/legacy mode already, why switch? As the saying goes, "if it ain't broke, don't fix it." (OTOH, I see no BIOS Boot Partition, so maybe you can't currently boot in BIOS mode....)
Supposing you have a reason to boot in EFI mode, though, let's start at the beginning....
YUMI is not the only tool for creating a bootable USB flash drive. You can also do it with dd
, UNetbootin, Startup Disk Creator, Rufus, and other tools. All of the tools I've named are capable of creating an EFI-bootable USB flash drive, with the caveat that EFI implementations differ, so what works on one might not work on another. Some tools also have options that can affect how well a created disk will work, either in general or on a specific EFI. Thus, creating your installation disk with another tool should enable you to boot it in EFI mode (assuming, of course, that your computer uses an EFI rather than a traditional BIOS). That said, if you've already installed, re-creating your boot medium and re-installing is overkill....
If you have no other bootable OS on the computer, one solution is to install an EFI boot loader as EFI/BOOT/bootx64.efi
on the EFI System Partition (ESP; your /dev/sda1
). This is easily done if you're installing by hand, but if you're using a tool like grub-install
, you'll have to move files around manually after the fact. Specifically, the EFI version of grub-install
will put GRUB in EFI/ubuntu/grubx64.efi
(perhaps with shimx64.efi
in the same directory). You'll have to copy files to the right location to get them to launch when you boot the computer. If Secure Boot is inactive, copy EFI/ubuntu/grubx64.efi
to EFI/BOOT/bootx64.efi
. You might also need to copy EFI/ubuntu/grub.cfg
to EFI/BOOT/grub.cfg
, too. If Secure Boot is active, it gets more complex; you must copy shimx64.efi
to EFI/BOOT/bootx64.efi
and copy grubx64.efi
to EFI/BOOT/grubx64.efi
. (Note that all these filenames are relative to the ESP's root, so if you were to mount partitions as shown in your /etc/fstab
, you must add /boot/efi/
to the start of each path.) With a boot loader installed to EFI/BOOT/bootx64.efi
and nothing else referenced in the NVRAM entries, your computer should boot from that "fallback" filename.
Another option is to prepare an Ubuntu installer using one of the tools I mentioned earlier, then boot it in EFI mode. With that done, you should be able to run Boot Repair in EFI mode, so it should be able to set up GRUB in that mode. In fact, even in BIOS mode, Boot Repair should be able to copy EFI files as described in the previous paragraph. (I'm not sure how well this works in practice, though; Boot Repair might just try to do a BIOS-mode repair and not attempt to set up an EFI fallback boot loader.)
Yet another option is to use my rEFInd boot manager to get the process started. You can download the CD-R or USB flash drive version of rEFInd and boot from it. rEFInd should detect your Linux kernel(s) and enable you to boot. If this works, you'll be booted in EFI mode, and you can then install the rEFInd PPA or Debian package to use it permanently (without the USB drive); or you can install GRUB via grub-install
and it should set things up correctly. (Note that you'll need the EFI GRUB package, grub-efi
, installed for grub-install
to set up the EFI version of GRUB.) Whether you install rEFInd or GRUB in this way, it will be able to set up an EFI NVRAM entry, since the boot from the rEFInd USB drive will be into EFI mode, thus enabling the OS to add EFI NVRAM variables.
Best Answer
As the error message says, you should run Boot-Repair in UEFI mode. Since your main installation does not support that, you have to get a system where it’s possible. Moreover, modifying important properties of the running installations (like moving the root partition) is mostly not possible.
The easiest way is to run Boot-Repair from Ubuntu live medium or even using the Boot-Repair-Disk. Make sure to boot it in UEFI mode, the particular procedure depends on your hardware (or firmware to be precise).