My laptop has no CD-ROM. So I use YUMI to create a bootable USB stick, which seems not support UEFI.
I use legacy mode boot from USB and finish install ubuntu(Only one OS). Now I want to switch to UEFI mode. How to? The official doc says that use livecd from UEFI mode and use boot-repair. But I have no CD-ROM, and USB stick not support UEFI. I can't use this way.
I've already created esp and use GPT, but how to install grub UEFI in legacy mode, any way?
~$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.8
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): E9A1D023-63F1-4014-A152-2C5741B77981
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB EF00
2 1026048 41940991 19.5 GiB 8300
~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda2 during installation
UUID=d2f2277b-478f-48af-96eb-cc0ee071d0fe / xfs defaults 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=E432-31B3 /boot/efi vfat utf8,umask=007,gid=46 0 1
Best Answer
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 likegrub-install
, you'll have to move files around manually after the fact. Specifically, the EFI version ofgrub-install
will put GRUB inEFI/ubuntu/grubx64.efi
(perhaps withshimx64.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, copyEFI/ubuntu/grubx64.efi
toEFI/BOOT/bootx64.efi
. You might also need to copyEFI/ubuntu/grub.cfg
toEFI/BOOT/grub.cfg
, too. If Secure Boot is active, it gets more complex; you must copyshimx64.efi
toEFI/BOOT/bootx64.efi
and copygrubx64.efi
toEFI/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 toEFI/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 forgrub-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.