Grub does not list Windows, os-prober does nothing

Hey!

I finally decided to switch over to Linux, but opted to keep W10 for CAD and gaming (mostly gaming). I have a working Manjaro installation, but W10 does not appear when Grub appears on boot.

Wiki pages I followed:
Dual boot with Windows
Installation with Manjaro Architect

What I did:

  1. Clean install of Windows, upgraded to Education, updated, debloated, etc.
  2. Shrinked C: partition to make room for Manjaro.
  3. Booted into Manjaro Architect and installed Kernel 420 and minimal KDE.
    -3a. Mounted / in unallocated space.
    -3b. Did not create swap, home, or any additional partition.
    -3c. Mounted UEFI on the EFI partition, which was previously created by Windows.

The problem:
When I boot, GRUB show manjaro but it does not show W10.

What I’ve tried:

  • Googling my issue.
  • sudo os-prober, then sudo update-grub
    *(Found something about needing to mount windows, don’t know what this means).

What I suspect is the problem:
Installation and wikis were pretty straightforward, except for " #UEFI_systems section on Arch wiki linked above " part. (sorry, 2 links limit) Specifically the part about mounting bootloader on existing EFI partition. I feel like this contradicts the warning above, which says all four partitions created by Windows are essential. Nevertheless, step 3c on my list had no option to skip it, and I had nowhere else to mount it, so I assumed that was the way to do it.

Here are the assumptions I made about this step:
-EFI partition created by Windows is Windows equivalent to GRUB.
-Grub can be used to replace it.
-The partition itself is essential, but not it’s content, so it can safely be reformatted when installing linux.
The fact that I can not boot into Windows tells me this might not be the case, or I’ m missing something.
i.e. Either I broke something, or something is broken.

Full disclaimer: I’m a complete noob on Linux, so I probably shouldn’t have gone with architect. But I wanted to install the newest kernell and packages upfront, and have a better understanding of the install process, so I opted to give it a try. Either way, I’m happy to learn by screwing up.

fdisk output:

Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1023999 1021952 499M Windows recovery environ
/dev/nvme0n1p2 1024000 1228799 204800 100M EFI System
/dev/nvme0n1p3 1228800 1261567 32768 16M Microsoft reserved
/dev/nvme0n1p4 1261568 127090687 125829120 60G Microsoft basic data
/dev/nvme0n1p5 127090688 1000214527 873123840 416.3G Linux filesystem

Did I do it right, or did I break something? How can I unbreak it? Furthermore, what would have been the cleanest way to install everything?

Thanks :slight_smile:

It depends…

This is a wrong assumption. You should NOT format $esp, the contents include the Windows bootloader. If you did, then you lost Windows entry.
To veify, look in /boot/efi. If there is no Windows folder/files, then you broke it.

Do everything from start maybe the easiest, also it will make you not forget… :stuck_out_tongue_winking_eye:

As you did, except NOT formatting $esp when installing Manjaro.

1 Like

Understood. There is no Windows entry on /boot/efi

Will do. :slight_smile:

Alright, this time I will NOT format any of Windows’ partition. In that case, where should I mount Manjaro’s bootloader then?
Am I correct in assuming that I need a minumum of two aditional partitions for the install to work?

As I currently understand it, I’ll need all four Windows partitions, and two for Manjaro, so the final partition table would look like this:

  • Windows recovery
  • Windows bootloader
  • Microsoft reserved partition
  • Windows C: drive
  • Manjaro bootloader
  • Manjaro root folder

Did I get the gist of it? My intended behavior is to boot into Grub and have thhem both as options, defaulting to Manjaro unless I quickly choose another kernel or Windows.

Final question, assumming I got it right. How big should the partition for the linux bootloader be?

Thanks for the quick help btw :slight_smile:

1 Like

For “Manjaro bootloader” partition, use/assign “Windows bootloader” partition, with a mount point as /boot/efi, so it will be one partition for both of them.
This partition is called $esp in UEFI type BIOS and is used to shelter all “bootloaders” from all installed OSes on PC. It is (has to be) of file system FAT, usually between 100MB and 250MB (even 100MB is enough normally).

Good luck!

Since Windows boot is gone, you have to reinstall windows boot. Just the boot, not the whole os.
Then you will need to reinstall manjaro bootloader, just use the[[Simple First Start here

2 Likes

You deleted the windows boot files from the efi partition.

If you have windows installation media (CD/DVD), you can repair that in a few minutes.
Follow this - https://neosmart.net/wiki/fix-uefi-boot/#Fix_1_Use_diskpart

For the next time know this -

  1. While Dual Booting linux after installing Windows, the efi partition for linux is the same as that of windows.
  2. Do NOT format the efi partition, simply mount it at /boot/efi

The final partition table should look like this:

  • Windows recovery
  • Windows bootloader (mounted in linux at /boot/efi )
  • Microsoft reserved partition
  • Windows C: drive
  • Manjaro root folder (mounted at /)
  • (OPTIONAL) Manjaro home folder (mounted at /home)

This way you’ll get both options in Grub.

How big should the partition for the linux bootloader be?

Let it be at the size Windows created.
Mine is 260mb. (for reeference) (Most of it free space.)

Cheers.

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