Windows not listed as boot option after manually installing GRUB

I installed Manjaro on my desktop computer which has multiple SSDs with one SSD having a Windows 10 installation. I tried to install Manjaro on a secondary SSD, which worked fine, but GRUB was unable to install as it was unable to find the EFI system partition (ESP) on the drive. I check manually and there was no ESP on any of the drives. I manually created a ESP as described in the Arch wiki and manually installed GRUB for EFI Systems as described in the Manjaro wiki.

The problem I have is that Windows 10 is not found by grub-mkconfig and therefor not listed in the boot options anymore, only Manjaro is listed. I guess the reason for that is that the Windows installation still uses BIOS and not UEFI. If I read this Ask Ubuntu question correctly, I need to switch GRUB back from UEFI to BIOS so GRUB can find the Windows installation. What is the best way to archive this in a clean way?

My current drive setup is as following: sda (SSD with Windows 10 installation):

Disk /dev/sda: 232,89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 850 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb507cf23

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048   1026047   1024000   500M  7 HPFS/NTFS/exFAT
/dev/sda2         1026048 487320175 486294128 231,9G  7 HPFS/NTFS/exFAT
/dev/sda3       487321600 488392703   1071104   523M 27 Hidden NTFS WinRE

sdb (sdb5 is the shrunk NTFS data partition, sdb2 Manjaro and sdb3 the manually created ESP partition).

Disk /dev/sdb: 1,82 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: CT2000MX500SSD1 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x26b4b1bf

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sdb1             1985 1984962559 1984960575 946,5G  5 Extended
/dev/sdb2       1984962560 3905980415 1921017856   916G 83 Linux
/dev/sdb3  *    3905980416 3907028991    1048576   512M ef EFI (FAT-12/16/32)
/dev/sdb5             2048 1984841727 1984839680 946,4G  7 HPFS/NTFS/exFAT

Partition 1 does not start on physical sector boundary.
Partition table entries are not in disk order.

There is also a third NTFS SSD sdc which only holds data.

Installed in BIOS mode as per your sda layout.

That’s normal, as the Windows 10 UEFI files do not exist and you cannot mix BIOS and UEFI installs.
Now you need to put the machine in BIOS mode to boot to Windows and in UEFI mode to boot into Manjaro.

The solution without having to change the boot mode, you ask???

  • Delete Manjaro and install it in BIOS mode too and grub will find Windows in BIOS mode…
    OR
  • Delete Windows and reinstall it in UEFI mode

:sob:

Note: Just in case you re-install, ensure the following lines are present without a # on the second line in /etc/defaut/grub:

# Uncomment this option to enable os-prober execution in the grub-mkconfig command
GRUB_DISABLE_OS_PROBER=false
1 Like

Thanks @Fabby for your response! So just to confirm: It is not possible to simply re-install GRUB, I need to either completely re-install Windows 10 or Manjaro as you described.

How do I re-install Manjaro in BIOS mode? The way I initially installed Manjaro was just by booting up the live USB install and running the installer, which then, as described, failed to install GRUB at the end of the installation process. I can’t seem to recall that there was an option to either install Manjaro in BIOS or UEFI mode.

That’s weird: you need to change your UEFI settings to CSM / BIOS mode and then both Manjaro and Windows autodetect what mode you’re in.

That should have been a FAT/FAT16/FAT32 partition if Windows was installed in UEFI mode like this one:

Did you change the format afterwards, because if that’s the case, that would be a reason the Manjaro installer doesn’t recognize that as an ESP partition… (and why I didn’t recognize it as one neither)

:thinking:

Thanks again @Fabby for your help! I was able to fix the issue, as mentioned in your first post, I simply need to re-enable legacy boot mode in my mainboard’s BIOS to be able to boot into my existing Windows 10 install again. For some reason I missed that option as it was called CSM support. Thanks again for your help! BTW I’m really enjoying Manjaro! :raised_hands:

Just to summaries what happened if anyone is ready this thread later on:
As described in my initial post, I installed Manjaro on a secondary SSD. The Manjaro installer was unable detect a ESP partition and install GRUB (as there was non, not even on the other drives, as Windows 10 was installed in BIOS mode).
After the GRUB installation failed, I manually created the ESP partition and installed GRUB as described in the Manjaro wiki, but I also disabled legacy boot mode in my BIOS (for my Mainboard it is called CSM Support, or UEFI CSM (Compatibility Support Module).
After re-activating CSM Support, I am again able to select either Manjaro or Windows 10 in the BIOS as an boot option, even though Windows 10 is installed in BIOS mode and Majaro in UEFI mode.

Be aware that you are using an out-of-spec installation scheme which could cause issues in the future. You use an ESP on an msdos parted disk and luckily get it booted by your firmware. Usually, ESP is dedicated for gpt parted disks.

An alternative approach could be to restore the bootloader as foreseen for BIOS installations directly on the MBR of sdb. After slight adjustment of /etc/default/grub and executing sudo update-grub you would be able to boot into sdb from your BIOS and if needed to boot into Windows from the grub menu.

@Wollie thanks for the heads up. I agree, it works but the setup is not optimal. What would the steps be to change the Manjaro boot sequence from UEFI back to BIOS? I guess:

  • Boot into Manjaro live
  • Remove ESP partition (e.g. with GParted)
  • Re-install GRUB as described in the Manjaro wiki in BIOS mode (grub-install --force --target=i386-pc --recheck --boot-directory=/boot /dev/sdy)

Or am I wrong? Did I miss anything?

I still don’t really understand why the Manjaro installer initially was unable to detect that it was in BIOS mode and to install GRUB during the install process.

Therefore, I’ve marked this answer as the solution to your question as it is by far the best answer you’ll get.

However, if you disagree with my choice, please feel free to take any other answer as the solution to your question or even remove the solution altogether: You are in control! (If you disagree with my choice, just send me a personal message and explain why I shouldn’t have done this or :heart: or :+1: if you agree)

:innocent:
P.S. In the future, please don’t forget to come back to your question after your issue has been solved and click the 3 dots below the answer to mark a solution like this below the answer that helped you most:
Solution
so that the next person that has the exact same problem you just had will benefit from your post as well as your question will now be in the “solved” status.

Yes, this would be the right procedure, just manjaro-chroot after booting from live ISO and make sure to replace

/dev/sdy

by

/dev/sdb

Don’t forget, to see the Windows partition in grub menu you need to re-enable os-prober in your /etc/default/grub file and run sudo update-grub afterwards, before rebooting. So replace in your /etc/default/grub

#GRUB_DISABLE_OS_PROBER=false

by

GRUB_DISABLE_OS_PROBER=false

Don’t do anything! It works and you know how it works!

Just:

  • don’t make the same mistake on your next computer when you buy a new one.
  • mention you have a dual boot:
    • W10 CSM/BIOS over on Windows forums
    • Manjaro UEFI install whenever you post here for Manjaro issues.

:man_shrugging:

P.S. unless you don’t mind re-installing Windows as you’re the only person I know that has W10 in BIOS mode on an UEFI computer.

That is absolutely fine by me and thanks for the info, will do in future! :raised_hands:

Roger, forgot to add that in my original post. But as @Fabby mentioned, as the setup is working right now, even though it is an unconventional setup, I may leave it as for the time being. But good to know what the fix is if I want to clean it up.

I think the reason why Windows is in BIOS mode is because the Windows install itself is older than the Computer, I moved that Windows 10 install from my old to my current machine. I guess that explains all the issues I mentioned in my first post.

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.