Cannot boot from UEFI in dual boot with WIndows 10

Hi there. I have a laptop with an SSD which came pre-installed with Windows 10 in UEFI. I installed EOS in an ext4 partition that I created there (I made only one partition for everything). The partitions looks like -

  1. EFI partition (default made by windows)
  2. Windows C drive (default made by windows, shrunk by me)
  3. Windows NTFS recovery (default made by windows)
  4. An ext4 partition with EOS

Some problems that I am encountering -

  1. When I created the installation usb, it didn’t boot up in UEFI mode, had to change to Legacy.
  2. I cannot boot into EOS unless I am in legacy mode, laptop directly boots into Windows.
  3. In Legacy, EOS grub doesn’t show any Windows option.

Using GParted, I have tried marking on and off the EFI partition as EFS+Boot, as also the / partition as both EFS+Boot and BIOS-GRUB. The results are the same.

Following the solution here -

I get the following output -
EFI variables are not supported on this system.

There way be several reasons.

How did you create the USB installer? Here are some instructions: https://endeavouros.com/docs/installation/create-install-media-usb-stick/

Then, does your machine have Secure Boot enabled? Check it in BIOS and if it is enabled, you need to disable it since Arch based distros to not support it.
Also, you should disable hibernation in Windows because it can cause problems.

There may be some other machine specific settings, but these are very typical reasons for problems.

Some additional tips here: https://endeavouros.com/docs/installation/calamares-offline-installer-tips/

Created USB using Rufus, in MBR or GPT setting.
Secure Boot and Hibernation are both disabled.

Your machine probably has gpt disks. Rufus need to be run in DD mode.
The best way IMHO is to create the USB installer with dd (under Linux).

Can you give us more details, like preferably ogs or pictures about the actual error you are getting?

Actual error for what exactly ?

I have installed EOS so at this moment creating another usb might not be required unless I have to reinstall.

When I go into my BIOS and set it to boot from UEFI, the laptop without any options or Grub boots directly to Windows.

Similarly when I am setting it to Legacy, I am getting a Grub in which there is EOS but not windows.

So you have installed EOS in BIOS Legacy mode and Windows is installed in UEFI mode.
And you change BIOS settings when you boot to EOS or Windows.
If that’s the case, it is a bit annoying, but it works.

I’m not sure if you can fix that without generating a properly working USB installer, and reinstalling EOS.
Note that I’m assuming you don’t want reinstall Windows.

First, check the USB drive letter (X in /dev/sdX below). You can find it by looking at the output of command

lsblk -fm

That should show also if the stick has proper partitions, so please show the output here too.
BTW, if it doesn’t show lines starting with /dev/sdX (tree-like), then different instructions are needed, so please don’t continue.

To create the installer, use dd (umount the stick first):

umount /dev/sdX
dd bs=4M if=/path/to/EOS.iso of=/dev/sdX && sync

where X is the USB drive letter.

IMPORTANT: be absolutely sure to use the correct letter, otherwise you will overwrite something that you didn’t want!

With this newly created USB stick you can test if it boots in UEFI mode. If so, then you may try reinstalling.

I know, it /dev/sda in my case, so the only solution is to make a new usb using dd, then check if I can boot into the usb in UEFI or not, if yes, then I reinstall. If I am getting it correct, kindly tell me the flags i need to set given that I will have only one partition for / and not separate.

You got it right. (Well, I’m not sure it is the only solution, but should work.) So the rest deals with reinstalling only.

The link I showed above, https://endeavouros.com/docs/installation/calamares-offline-installer-tips/ should cover the required flags.

  • You have already created one partition for EOS, mount it to “/” at install. Create no other partitions.
  • IMPORTANT: be sure not to format the existing EFI partition. Only mount EFI partition to /boot/efi during install.
  • If you don’t have much RAM, you may later create a swap file (see Arch wiki about it).
  • And /home will be inside “/”, nothing more to do about /home.

Hope these tips make installing clear and easy. But if you have new issues, feel free to ask. There are many people here that can help.

How do I set that mount please tell.

you can enable swap in calamares also, if you do not use encryption it will work.

I dont think I need a swap partition, and please tell me how do I set the EFI partition to mount on /boot/eft, is there a way in Calamares ?

You have to be booting in UEFI mode in order for Calamares to show that. You can’t go back and change it. @manuel @joekamprad I’m not sure if the flag can be set in Gparted? After it’s installed this way?

@joekamprad, @ricklinux, @manuel Thanks everyone. I used dd to make the usb, now it got detected in UEFI mode. I set the EFS partition to mount at /boot/efi in calamares. Took about 2 minute and 50 seconds to install.

In the first boot it again went straight to Windows. Next boot I checked the Boot Menu, EOS was there in the last entry. When I selected it, I got grub with both Win and EOS.

Then I went to the BIOS settings and changed my boot order. There weirdly I had multiple Windows Boot Manager entries, and nothing else. Still I moved the last one to the top, and wow, it works now. Directly booting via UEFI goes to Grub with all options.

Thanks a lot again eveyone.

1 Like

You will have multiple boot entries in the UEFI bios because it keeps a list. You just have to make sure that grub is first in the entry as it is what boots both Windows add EOS from the grub menu.

Yes I did, and it works :smiley: