Can't find EndeavourOS in boot loader after install Window 11 (as dual boot)

Hello, I used EndeavourOS for a while and this morning I decide to install window 11 as dual boot

Endeavour will run on SSD and window 11 run on HDD

But the problem is after I install window 11, I can’t find the bootloader for Endeavour anymore

I followed this thread and created Linux boot manager but still only see window 11 on boot

I also try grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=endeavouros --recheck --removable

But nothing seem work

How does this happen?

I’m on live usb right now and I think here’s some log might useful

Model: ATA Samsung SSD 870 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name  Flags
 1      2097kB  317MB  315MB  fat32              boot, esp
 2      317MB   500GB  500GB  ext4         root


Model: ATA TOSHIBA MQ04ABF1 (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  17.8MB  16.8MB               Microsoft reserved partition  msftres, no_automount
 2      858MB   108GB   107GB   ntfs         Basic data partition          msftdata
 3      108GB   1000GB  893GB   ext4         root


Model: ASolid USB (scsi)
Disk /dev/sdc: 31.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                 Flags
 1      1049kB  31.5GB  31.5GB  fat32        Main Data Partition  msftdata
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001,0002,0000
Boot0000* Windows Boot Manager	HD(1,GPT,1382a22c-57fd-b948-8368-0bd392a2ec55,0x1000,0x96000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000079000100000010000000040000007fff0400
Boot0001* UEFI: ASolid USB, Partition 1	PciRoot(0x0)/Pci(0x14,0x0)/USB(13,0)/HD(1,GPT,1a0b5e16-9462-45a6-9e05-46a196aa420c,0x800,0x3a977e0)0000424f
Boot0002* Linux Boot Manager	HD(1,GPT,1382a22c-57fd-b948-8368-0bd392a2ec55,0x1000,0x96000)/File(\EFI\systemd\systemd-bootx64.efi)

Also this is what I see in /mnt chroot, idk if it useful or not.

Maybe I’ve done something wrong because there’s a dir name EFI inside EFI dir?

[liveuser@eos-2023.05.28 endeavouros]$ sudo chroot /mnt
[root@EndeavourOS /]# ls
bin   dev  home		      lib    lost+found  mnt  proc  run   snap	sys  usr
boot  etc  install-script.sh  lib64  media	 opt  root  sbin  srv	tmp  var
[root@EndeavourOS /]# cd /boot
[root@EndeavourOS boot]# ls
 boot   dev   EFI   grub   loader   proc   sys	'System Volume Information'
[root@EndeavourOS boot]# cd EFI
[root@EndeavourOS EFI]# ls
boot  Dell  EFI  endeavouros  Linux  Microsoft	systemd
[root@EndeavourOS EFI]# cd endeavouros
[root@EndeavourOS endeavouros]# ls
grubx64.efi
[root@EndeavourOS endeavouros]#

Your system doesn’t seem to be using systemd-boot for two reasons: first, EnOS’ uses an ESP of the size 1000MB for systemd-boot (yours is 315MB); second the ESP would be mounted at /efi (you don’t seem to have such a directory)

This doesn’t look quite right, I think.
The default directory in EnOS when using Grub should be /boot/efi.

Could you show the content of /etc/fstab from your installed system?

[liveuser@eos-2023.05.28 etc]$ cat fstab
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>

This is from the live session, looks like.

I would like to see the one from your installed system.

That’s inside the /mnt/etc which I have mounted from /dev/sda2. The partition contains endeavouros

Idk if I don’t understand “installed system” correctly, sorry if I’m not

Alright, sorry for my misunderstanding!

Don’t know why it is empty then.

Try generating a new fstab.


sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi 
sudo genfstab -U /mnt >> /mnt/etc/fstab

You could post the content of the fstab afterwards:

cat /mnt/etc/fstab

Also please post:

ls /mnt/boot

Honeslty, it looks a bit messed up inside your boot folder.

Also, you should be using sudo arch-chroot /mnt.

[liveuser@eos-2023.05.28 etc]$ sudo chown liveuser /mnt/etc/fstab
sudo genfstab -U /mnt >> /mnt/etc/fstab
[liveuser@eos-2023.05.28 etc]$ sudo chown root /mnt/etc/fstab
[liveuser@eos-2023.05.28 etc]$ cat fstab
# Static information about the filesystems.
# See fstab(5) for details.

# <file system> <dir> <type> <options> <dump> <pass>
[liveuser@eos-2023.05.28 etc]$
[liveuser@eos-2023.05.28 etc]$ ls /mnt/boot
efi  grub  initramfs-linux-fallback.img  initramfs-linux.img  intel-ucode.img  vmlinuz-linux

Do you think what you have done is anything close to the instructions given?

Yes, you have.

I did do it. But it denied me so I have to change the chown

[liveuser@eos-2023.05.28 efi]$ sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi 
sudo genfstab -U /mnt >> /mnt/etc/fstab
bash: /mnt/etc/fstab: Permission denied

Also, if the problem is unfixable, I can reinstall the os, that might be a good choice

You need to run those commands one at the time.

Not copy all and paste and run them all at once :wink:

The problem may or may not be fixable depending how “messed up” your system is at this point.

I need some coffee now :sweat_smile:

Good luck!

@demonducky

The parameters needed for the grub-install command can likely be retrieved by analyzing the output of command

sudo grep "grub-install" /var/log/{Calamares,endeavour-install}.log 2>/dev/null

of your system (in arch-chroot).

And this applies likely unless you have changed the essentials of your system (e.g. changed mount points for UEFI related stuff).

Edit: made a bash function original-grub-install-parameters to find parameters for grub-install from the install logs:

original-grub-install-parameters() {
    local out=$(sudo grep 'grub-install' /var/log/{Calamares,endeavour-install}.log 2>/dev/null)
    echo "$out" | sed -E -e 's|.*Running \(||' -e 's|"([^"]+)"[,)]*|\1|g' | head -n1
}

But use it at your own risk! No warranties whatsoever!

If you install Windows after and is also on another drive on UEFI it will take over as the boot drive, You need to boot from the drive that had endeavourOS and run the update grub command. It possibly may also be necessary to reinstall grub and update it. I would try the grub update command first if you can boot from the right drive from UEFI settings.