You are not logged in.

#1 2023-01-02 21:09:33

Cheeto
Member
Registered: 2022-09-11
Posts: 64

[SOLVED] Windows not showing in grub

EDIT*******************
**************SOLUTION

It's not clear what fixed it, but after all of the below, I just used my machine for about 30mins and then opened grub-customizer and it showed the windows boot manager like it should have been doing awhile ago. Sadly this doesn't teach me anything and despite being "solved" I don't think it helps anyone.

***********************
***********************



sudo os-prober

returns

/dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi

so i did

sudo mount -t vfat /dev/nvme0n1p1 /mnt/winefi
grub-mkconfig

The grub-customizer app also doesn't show any windows stuff even after running os-prober.



***********************
EDIT*******************

This is on a Dell XPS 9720 with windows 11. I installed a new SSD and put arch on it. It may have shown windows then, but I wiped it and reinstalled arch and I believe at that point it stopped showing windows.

I don't know how relevant or correct that is, but I think the pertinent stuff is this:



***********************
EDIT*******************

Output of grub-mkconfig is

Generating grub configuration file ...
#
# 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="0"
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
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2
    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_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-zen.img
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod fat
	search --no-floppy --fs-uuid --set=root 02C1-BD8C
	echo	'Loading Linux linux-zen ...'
	linux	/vmlinuz-linux-zen root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/intel-ucode.img /initramfs-linux-zen.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
	menuentry 'Arch Linux, with Linux linux-zen' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-zen-advanced-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux-zen ...'
		linux	/vmlinuz-linux-zen root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-zen.img
	}
Found fallback initrd image(s) in /boot:  intel-ucode.img initramfs-linux-zen-fallback.img
	menuentry 'Arch Linux, with Linux linux-zen (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-zen-fallback-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux-zen ...'
		linux	/vmlinuz-linux-zen root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-zen-fallback.img
	}
Found linux image: /boot/vmlinuz-linux-lts
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-lts.img
	menuentry 'Arch Linux, with Linux linux-lts' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux-lts ...'
		linux	/vmlinuz-linux-lts root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-lts.img
	}
Found fallback initrd image(s) in /boot:  intel-ucode.img initramfs-linux-lts-fallback.img
	menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux-lts ...'
		linux	/vmlinuz-linux-lts root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-lts-fallback.img
	}
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux.img
	menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux.img
	}
Found fallback initrd image(s) in /boot:  intel-ucode.img initramfs-linux-fallback.img
	menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-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 ###
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
Adding boot menu entry for UEFI Firmware Settings ...
if [ "$grub_platform" = "efi" ]; then
	fwsetup --is-supported
	if [ "$?" = 0 ]; then
		menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
			fwsetup
		}
	fi
fi
### 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 ###
done


***********************
EDIT*******************

I had failed to uncomment the line

GRUB_DISABLE_OS_PROBER=false

so I remounted the windows efi per the arch wiki, ran sudo os-prober, then ran sudo grub-mkconfig.

Rebooted, and it still doesn't show, despite sudo grub-mkconfig now properly showing that it does see the windows boot manager:

Generating grub configuration file ...
#
# 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="0"
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
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2
    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_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-zen.img
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod fat
	search --no-floppy --fs-uuid --set=root 02C1-BD8C
	echo	'Loading Linux linux-zen ...'
	linux	/vmlinuz-linux-zen root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
	echo	'Loading initial ramdisk ...'
	initrd	/intel-ucode.img /initramfs-linux-zen.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
	menuentry 'Arch Linux, with Linux linux-zen' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-zen-advanced-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux-zen ...'
		linux	/vmlinuz-linux-zen root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-zen.img
	}
Found fallback initrd image(s) in /boot:  intel-ucode.img initramfs-linux-zen-fallback.img
	menuentry 'Arch Linux, with Linux linux-zen (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-zen-fallback-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux-zen ...'
		linux	/vmlinuz-linux-zen root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-zen-fallback.img
	}
Found linux image: /boot/vmlinuz-linux-lts
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-lts.img
	menuentry 'Arch Linux, with Linux linux-lts' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux-lts ...'
		linux	/vmlinuz-linux-lts root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-lts.img
	}
Found fallback initrd image(s) in /boot:  intel-ucode.img initramfs-linux-lts-fallback.img
	menuentry 'Arch Linux, with Linux linux-lts (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux-lts ...'
		linux	/vmlinuz-linux-lts root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-lts-fallback.img
	}
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux.img
	menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux.img
	}
Found fallback initrd image(s) in /boot:  intel-ucode.img initramfs-linux-fallback.img
	menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod fat
		search --no-floppy --fs-uuid --set=root 02C1-BD8C
		echo	'Loading Linux linux ...'
		linux	/vmlinuz-linux root=UUID=c9468797-fd6c-4fd2-b1b1-3e4babe6a1d2 rw rootfstype=ext4 loglevel=3 quiet
		echo	'Loading initial ramdisk ...'
		initrd	/intel-ucode.img /initramfs-linux-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 ###
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.
Found Windows Boot Manager on /dev/nvme0n1p1@/efi/Microsoft/Boot/bootmgfw.efi
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-B03E-D179' {
	insmod part_gpt
	insmod fat
	search --no-floppy --fs-uuid --set=root B03E-D179
	chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
Adding boot menu entry for UEFI Firmware Settings ...
if [ "$grub_platform" = "efi" ]; then
	fwsetup --is-supported
	if [ "$?" = 0 ]; then
		menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
			fwsetup
		}
	fi
fi
### 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 ###
done

Last edited by Cheeto (2023-01-02 22:14:39)

Offline

#2 2023-01-03 06:39:45

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 9,003
Website

Re: [SOLVED] Windows not showing in grub

Cheeto wrote:

It's not clear what fixed it, but after all of the below, I just used my machine for about 30mins and then opened grub-customizer and it showed the windows boot manager like it should have been doing awhile ago.

You shouldn't rely on grub-customizer.

Cheeto wrote:

so i did

sudo mount -t vfat /dev/nvme0n1p1 /mnt/winefi
grub-mkconfig

You have to direct grub-mkconfig's output to the GRUB configuration file. Details on the GRUB ArchWiki page you clearly haven't bothered reading.


Jin, Jîyan, Azadî

Offline

#3 2023-01-03 21:56:01

Cheeto
Member
Registered: 2022-09-11
Posts: 64

Re: [SOLVED] Windows not showing in grub

Head_on_a_Stick wrote:
Cheeto wrote:

It's not clear what fixed it, but after all of the below, I just used my machine for about 30mins and then opened grub-customizer and it showed the windows boot manager like it should have been doing awhile ago.

You shouldn't rely on grub-customizer.

Cheeto wrote:

so i did

sudo mount -t vfat /dev/nvme0n1p1 /mnt/winefi
grub-mkconfig

You have to direct grub-mkconfig's output to the GRUB configuration file. Details on the GRUB ArchWiki page you clearly haven't bothered reading.

Sadly the sort of rude """help""" you get in the literal newbie section. I explicitly referenced parts of the arch wiki (which I DID read). Go away and don't come back. People hate this place because of you.

Offline

#4 2023-01-04 00:25:39

dagorret
Member
From: Argentina
Registered: 2017-12-29
Posts: 11

Re: [SOLVED] Windows not showing in grub

It's not being rude. It is to help you learn.
If you look for the clue in the Wiki or in Google you can get to how to do it and the necessary commands.

The Wiki page that teaches you how to manage Grub is: https://wiki.archlinux.org/title/GRUB
In the Configuration section.

Take a look and you can ask now for a more specific problem you have about GRUB.

Offline

Board footer

Powered by FluxBB