My laptop have already installed Windows 10 in UEFI but I mistakenly dual boot Ubuntu OS In legacy mode. So everytime I have to change BIOS SETUP settings to UEFI for Windows and legacy and legacy first for Ubuntu. So what I do to when I start my pc it ask me which OS to use(it also ask currently but don't run the other one according to BIOS setting)
-
What is your question? Please [edit] to clarify. – wjandrea Sep 09 '18 at 01:03
-
it's easy to find out how to convert Ubuntu to UEFI mode if you paste that to Google and search – phuclv Sep 09 '18 at 02:11
2 Answers
The switch from legacy boot to UEFI boot in Ubuntu should be fairly easy, only a few steps are needed.
First of all make sure that Windows is fully shut down, Windows Fast-startup
-feature should be disabled. Boot your current Ubuntu installation.
You need to know which partition is your EFI-System-Partition (ESP). You can use the command lsblk -f
to get the device name and UUID of the ESP. The ESP is formatted in FAT and normally has a size of a few hundred MB, mostly the partition will be labeled and you can find it easily.
Create a directory as mount-point for the ESP with
sudo mkdir /boot/efi
Now add a line to /etc/fstab with the following content:
UUID=XXXXXXXXX /boot/efi vfat umask=0077 0 1
Use the UUID you found before.
Mount the ESP with sudo mount-a
Now install the grub-efi-amd64
-package:
sudo apt install grub-efi-amd64
This will automatically remove grub-pc
(the legacy boot-mode version of Grub).
Other commands like grub-install or update-grub
are not needed, installing grub-efi-amd64
will install the boot-loader to the ESP during installation of the package.You are ready to reboot.
Enter the UEFI-settings and check your boot-order. I'd also recommend to disable CSM in UEFI-settings to speed up the boot process.

- 15,925
-
I don't understand the downvote, I've successfully converted my legacy install to efi this way. – mook765 Dec 01 '20 at 13:33
I suggest you to reinstall Ubuntu in UEFI mode cause moving from legacy to UEFI not so simple. You should:
- Boot from Live-USB;
- Create FAT32 partition (minimum 33MB of size) and mark it with boot flag;
- Enter chroot mode by:
sudo mount -o /dev/sdxX /mnt
where xX is you drive and partition number where a root partition is;sudo mount /dev/sdxX /mnt/boot/efi
for i in /dev /dev/pts /proc /run /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
for i in /dev /dev/pts /proc /run /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
Now install grub:
apt-get install --reinstall grub-efi-amd64
grub-install --recheck /dev/sdX
or just:
dpkg-reconfigure grub-efi-amd64
It should create 'ubuntu' menu item in UEFI.
Now edit your fstab by sudo nano /etc/fstab
and add the following to it:
UUID=bla-bla /boot/efi vfat umask=0077 0 1
You should run blkid
to identify which UUID your efi partition has.
Check which packages are installed by dpkg --get-selections | grep grub
grub-common install
grub-efi install
grub-efi-amd64 install
grub-efi-amd64-bin install
grub2-common install
Those are packages should be installed for UEFI boot. All other you should remove.
Also check that /EFI/ubuntu/grubx64.efi
file is exist.
Exit from chroot by Ctrl+D.
Unmount all in /mnt
and try to reboot.

- 521