How to show Windows as an option in grub?

Hi

My system already had Windows 10 installed on an SSD before I installed Manjaro on a 2nd SSD.

In grub I don’t see an option to boot into Windows and I have to use that by pressing F12 when the system is booting up and select Windows from the BIOS/UEFI boot options.

How can I add Windows to the grub menu?

Thanks!

Can you post /boot/grub/grub.cfg here ?

Hello wonderful person! :slight_smile:

lsblk and /boot/grub/grub.cfg
[Nexus ~]# lsblk 

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme1n1     259:0    0 953.9G  0 disk 
├─nvme1n1p1 259:5    0   300M  0 part /boot/efi
└─nvme1n1p2 259:6    0 953.6G  0 part /
nvme0n1     259:1    0 476.9G  0 disk 
├─nvme0n1p1 259:2    0    50M  0 part 
├─nvme0n1p2 259:3    0 476.4G  0 part 
└─nvme0n1p3 259:4    0   505M  0 part 




[Nexus ~]# cat /boot/grub/grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

set menu_color_normal=light-gray/black
set menu_color_highlight=green/black

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  29b52930-03c1-4460-b6b9-44dfe812fee5
else
  search --no-floppy --fs-uuid --set=root 29b52930-03c1-4460-b6b9-44dfe812fee5
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_AU
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menuwq
  set timeout=10
# Fallback hidden-timeout code in case the timeout_style feature is
# unavailable.
elif sleep --interruptible 10 ; then
  set timeout=0
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-29b52930-03c1-4460-b6b9-44dfe812fee5' {
	savedefault
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root  29b52930-03c1-4460-b6b9-44dfe812fee5
	else
	  search --no-floppy --fs-uuid --set=root 29b52930-03c1-4460-b6b9-44dfe812fee5
	fi
	linux	/boot/vmlinuz-5.8-x86_64 root=UUID=29b52930-03c1-4460-b6b9-44dfe812fee5 rw  quiet apparmor=1 security=apparmor udev.log_priority=3 acpi=off
	initrd	/boot/amd-ucode.img /boot/initramfs-5.8-x86_64.img
}
submenu 'Advanced options for Manjaro Linux' $menuentry_id_option 'gnulinux-advanced-29b52930-03c1-4460-b6b9-44dfe812fee5' {
	menuentry 'Manjaro Linux (Kernel: 5.8.6-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.6-1-MANJARO x64-advanced-29b52930-03c1-4460-b6b9-44dfe812fee5' {
	savedefault
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root  29b52930-03c1-4460-b6b9-44dfe812fee5
		else
		  search --no-floppy --fs-uuid --set=root 29b52930-03c1-4460-b6b9-44dfe812fee5
		fi
		linux	/boot/vmlinuz-5.8-x86_64 root=UUID=29b52930-03c1-4460-b6b9-44dfe812fee5 rw  quiet apparmor=1 security=apparmor udev.log_priority=3 acpi=off
		initrd	/boot/amd-ucode.img /boot/initramfs-5.8-x86_64.img
	}
	menuentry 'Manjaro Linux (Kernel: 5.8.6-1-MANJARO x64 - fallback initramfs)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.6-1-MANJARO x64-fallback-29b52930-03c1-4460-b6b9-44dfe812fee5' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root  29b52930-03c1-4460-b6b9-44dfe812fee5
		else
		  search --no-floppy --fs-uuid --set=root 29b52930-03c1-4460-b6b9-44dfe812fee5
		fi
		linux	/boot/vmlinuz-5.8-x86_64 root=UUID=29b52930-03c1-4460-b6b9-44dfe812fee5 rw  quiet apparmor=1 security=apparmor udev.log_priority=3 acpi=off
		initrd	/boot/initramfs-5.8-x86_64-fallback.img
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/60_memtest86+ ###
if [ "${grub_platform}" == "pc" ]; then
    menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
        search --fs-uuid --no-floppy --set=root  29b52930-03c1-4460-b6b9-44dfe812fee5
        linux16 /boot/memtest86+/memtest.bin 
    }
fi
### END /etc/grub.d/60_memtest86+ ###

Windows is on nvme0n1 and Manjaro on nvme1n1.

PS: I borrowed that phrase from the What Da Math channel on YouTube. :slight_smile:

Then try to start Manjaro and execute

update-grub

as sudo or root.

I Think you have Windows installed on BIOS/MBR mode but your Manjaro is in UEFI mode. If that’s the case, you can’t add Windows to the grub menu. Grub doesn’t support that. If I recall it correctly, refind supports that type of mixed boot (but I’m not sure)

You can check if your windows is on UEFI or BIOS/MBR mode with this: https://www.addictivetips.com/windows-tips/check-uefi-or-bios-legacy-firmware-on-windows-10/ (First result in google :slight_smile:)

You were right, however I am not sure how that has happened as I had disabled legacy mode in the BIOS. I will reinstall Windows and report back.

Hi all,

I had accidentally enabled (or maybe it was enabled by default) the CSM (Compatibility Support Module) and looks like that was what causing all the problems. I disabled it and reinstalled Windows and Manjaro and now everything is A-Okay.