Windows boot menu entry disappeared

I broke my Manjaro installation a couple weeks when I tried to “fix” something and had to reinstall Manjaro. I had a dual boot setup (with Win10) before, which used to work fine. I installed Manjaro with a USB drive and the latest ISO and kept the previous partitions, just formating the Manjaro one and HOME partition.

Manjaro works fine but the boot manager did not show up anymore.

After some online research, I got that back by changing GRUB_TIMEOUT_STYLE=hidden to GRUB_TIMEOUT_STYLE=menu in /etc/default/grub

But the “Windows 10” option I had before is not there anymore.

I followed the instructions on the Arch wiki GRUB - ArchWiki

running sudo grub-mkconfig -o /boot/grub/grub.cfg (and also sudo update-grub) but it did not resolve the issue (the os-prober package is installed and GRUB_DISABLE_OS_PROBER=false is not commented out, and I mounted both /dev/sdb1 and /dev/sdb4; see attached image)

I also tried using a custom menu entry in /etc/grub.d/40_custom and running sudo update-grub

When I use this:

menuentry "Windows" {
	search --no-floppy --fs-uuid --set <UUID>
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

with the UUID of the partition with the Windows installation as (by running sudo blkid /dev/sdb4)

and select the Windows entry in the boot manager, I get

error: file '/EFI/Microsoft/Boot/bootmgfw.efi' not found

I searched the Windows partition for the file and found it in /Windows/Boot/EFI/bootmgfw.efi,
so I tried this

menuentry "Windows" {
	search --no-floppy --fs-uuid --set <UUID>
	chainloader (${root})/Windows/Boot/EFI/bootmgfw.efi
}

but then got error: symlink type invalid (80000017)

These are the partitions on the drive:
image

Looks like you didn’t create a separate efi partition for Manjaro and used Windows’ efi partition. Am I right? If so, that seems to have caused the issue.

Maybe, it’s been a couple weeks. If I remember correctly I just picked the partitions for “/”, “/home”, and swap. I don’t think I did anything to set an efi partition.

But maybe accidentally.

If so, is there a way to fix it?

Sorry :worried:, I do not know any solution to this (never being in such situation myself) other than reading about a few ‘solutions’ on internet that involve booting from Windows installation media and such things. But there are many much more experienced users on this forum who might be able to help you.
PS. - You might take a look at

But it does not seem it will keep the Manjaro EFI. So a backup is must if you must try.

Thank you anyway :slight_smile:

What makes you think that I used the Windows efi partition? Because I am pretty sure I did not create a new partition and which the partitions would then have been the “old Manjaro efi” partition?

Not 100% sure, but my partition table looks like -

Because, if you somehow did not wipe out the Windows EFI partition, why would grub refuse to recognise it ? Please do correct me if I am wrong.

What you are saying makes absolutely sense, I’m just wondering where the missing EFI partition went

I am pretty sure that UUID should point to the EFI Partition and not the Windows Installation.

This is as example of my grub entry (auto generated):

menuentry 'Windows Boot Manager (auf /dev/sda5)' --class windows --class os $menuentry_id_option 'osprober-efi-7800-25CB' {
	insmod part_gpt
	insmod fat
	set root='hd0,gpt5'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5  7800-25CB
	else
	  search --no-floppy --fs-uuid --set=root 7800-25CB
	fi
	chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

I mounted the EFI partition and those are the files on there:

- EFI
  - boot
    - bootx64.efi
  - Manjaro
    - grubx64.efi

I ran sudo update-grub after I mounted the EFI partition, but it did not say anything about adding an entry for windows.

Generating grub configuration file ...
Found theme: /usr/share/grub/themes/manjaro/theme.txt
Found linux image: /boot/vmlinuz-5.10-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-5.10-x86_64.img
Found initrd fallback image: /boot/initramfs-5.10-x86_64-fallback.img
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Adding boot menu entry for UEFI Firmware Settings ...
Found memtest86+ image: /boot/memtest86+/memtest.bin
done

Well, no wonder it does not find anything… there is no efi file for Windows on the Partition. I believe you reformatted /dev/sda2 while reinstalling.

I have separate EFI partition for each OS. The Windows one looks like this:

tree
.
├── EFI
│   ├── Boot
│   │   └── bootx64.efi
│   └── Microsoft
│       ├── Boot
│       │   ├── BCD
│       │   ├── BCD.bak
│       │   ├── BCD.LOG
│       │   ├── BCD.LOG1
│       │   ├── BCD.LOG2
│       │   ├── bg-BG
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── bootmgfw.efi
│       │   ├── bootmgr.efi
│       │   ├── BOOTSTAT.DAT
│       │   ├── boot.stl
│       │   ├── cs-CZ
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── da-DK
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── de-DE
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── el-GR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── en-GB
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── en-US
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── es-ES
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── es-MX
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── et-EE
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── fi-FI
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── Fonts
│       │   │   ├── chs_boot.ttf
│       │   │   ├── cht_boot.ttf
│       │   │   ├── jpn_boot.ttf
│       │   │   ├── kor_boot.ttf
│       │   │   ├── malgun_boot.ttf
│       │   │   ├── malgunn_boot.ttf
│       │   │   ├── meiryo_boot.ttf
│       │   │   ├── meiryon_boot.ttf
│       │   │   ├── msjh_boot.ttf
│       │   │   ├── msjhn_boot.ttf
│       │   │   ├── msyh_boot.ttf
│       │   │   ├── msyhn_boot.ttf
│       │   │   ├── segmono_boot.ttf
│       │   │   ├── segoen_slboot.ttf
│       │   │   ├── segoe_slboot.ttf
│       │   │   └── wgl4_boot.ttf
│       │   ├── fr-CA
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── fr-FR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── hr-HR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── hu-HU
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── it-IT
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── ja-JP
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── kd_02_10df.dll
│       │   ├── kd_02_10ec.dll
│       │   ├── kd_02_1137.dll
│       │   ├── kd_02_14e4.dll
│       │   ├── kd_02_15b3.dll
│       │   ├── kd_02_1969.dll
│       │   ├── kd_02_19a2.dll
│       │   ├── kd_02_1af4.dll
│       │   ├── kd_02_8086.dll
│       │   ├── kd_07_1415.dll
│       │   ├── kd_0C_8086.dll
│       │   ├── kdnet_uart16550.dll
│       │   ├── kdstub.dll
│       │   ├── ko-KR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── lt-LT
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── lv-LV
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── memtest.efi
│       │   ├── nb-NO
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── nl-NL
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── pl-PL
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── pt-BR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── pt-PT
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── qps-ploc
│       │   │   └── memtest.efi.mui
│       │   ├── Resources
│       │   │   ├── bootres.dll
│       │   │   └── de-DE
│       │   │       └── bootres.dll.mui
│       │   ├── ro-RO
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── ru-RU
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── sk-SK
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── sl-SI
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── sr-Latn-RS
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── sv-SE
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── tr-TR
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   ├── uk-UA
│       │   │   ├── bootmgfw.efi.mui
│       │   │   └── bootmgr.efi.mui
│       │   ├── winsipolicy.p7b
│       │   ├── zh-CN
│       │   │   ├── bootmgfw.efi.mui
│       │   │   ├── bootmgr.efi.mui
│       │   │   └── memtest.efi.mui
│       │   └── zh-TW
│       │       ├── bootmgfw.efi.mui
│       │       ├── bootmgr.efi.mui
│       │       └── memtest.efi.mui
│       └── Recovery
│           ├── BCD
│           ├── BCD.LOG
│           ├── BCD.LOG1
│           └── BCD.LOG2
├── Recovery
│   └── Logs
│       ├── BootUX (1).sqml
│       ├── BootUX (2).sqml
│       └── Reload.xml
└── Recovery.txt

46 directories, 144 files

You need to reinstall the windows bootloader, so that grub can find it.

Ok :frowning_face:

Just to understand what happened, is it theoretically possible that before both (Manjaro and Win10) were on the one EFI partition (sda2) and I accidentally formatted the partition?
Or do they have to be on separate partitions?

I think keeping them on separate efi partitions is safer, just in case of reinstalling. I don’t have to bother much about the efi. :sweat_smile:

1 Like

Since there is only one partition, then yes, I guess so.

Better have them separated… less hassle. Each OS 100M EFI Partition and it works…Grub can find other OSs on other EFI partitions

1 Like

Thank you :slight_smile:

So I have to set up a new partition and somehow restore the win10 efi on that, then run update-grub and it should work again?

Theoretically, it should work. :slightly_smiling_face:

I would first try to fix or rewrite the efi bootloader with rescatux.

Thank you all for your help. I finally got it working again.

Unfortunately, Rescatux did not work for me.

But fixing it manually wasn’t that hard in the end.
I loosely followed these sources:

Those are basically my steps (if I remember correctly)

  • backing up things
  • download Win10 ISO directly from Microsoft and put it on a vintoy USB drive
  • booting to the USB drive
  • NOT selecting “install” but the “repair” option, then open the command prompt
  • using diskpart to figure out which partition is which and assign an letter to the EFI drive
  • running bcdboot E:\Windows /s V:
    (E: is the partition of my Win10 installation, V: the EFI partition)
  • rebooting to linux and run sudo update-grub

For now both Manjaro and Win10 are on the same partition. I have set up a new partition for second EFI, but I read there is a certain order for Win in which the partitions should be set up. Therefore I chose to us the original EFI partition for Win again.

If I figure out how to safely move the Manjaro EFI to the other partition, I might do so. But I’m not up for experiments for now :wink: Just happy everything works at the moment.

Congrats! You solved your problem. Also, instead of renaming the topic title you can just mark your post as the solution by ticking the box right below it. :slightly_smiling_face:

I set your post as solution. There is a button called “Solution”. Please avoid typing “solved” at the title. Thanks.

1 Like