Can't boot windows 10 after installing fedora 33

Please help guys my laptop won’t booting windows 10 after installing fedora 33

1 Like

You appear to have multiple EFI partitions.

Have you tried going into your BIOS and selecting the “Windows Boot Manager” option? There is a usually a hotkey that will let you select at boot. It is different for each BIOS/keyboard but it is most commonly F8, F10, F11 or F12.

Yess but the result still booting to fedora 33

Does running grub2-mkconfig detects any bootable Windows?

If yes, then you can generate a new grub.cfg to make it effective.

Please have a Fedora LiveUSB on hand just in case something went wrong.
Always backup your existing grub.cfg before overwriting it.

  1. Locate where is your grub.cfg
  • depends on your version, your grub.cfg might be at one of the below location:
$ sudo find /boot -name grub.cfg
/boot/efi/EFI/fedora/grub.cfg
/boot/grub2/grub.cfg 

(I am on Fedora 34, the one under EFI is a pointer back to /boot/grub2/grub.cfg for me.)

  1. regenerate grub.cfg
# replace with your grub.cfg pathname
sudo grub2-makeconfig  > /boot/grub2/grub.cfg
  1. Reboot

ps.
I am curious, what is your installation method, your partition layout seems rather special to me.

Did you do manual storage layout during install? If yes, why this layout scheme is used?

my grub2-mkconfig output

[root@mancung ~]# grub2-mkconfig
Generating grub configuration file ...
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set pager=1

if [ -f ${config_directory}/grubenv ]; then
  load_env -f ${config_directory}/grubenv
elif [ -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
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=0
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=0
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
### END /etc/grub.d/01_users ###

### BEGIN /etc/grub.d/08_fallback_counting ###
insmod increment
# Check if boot_counter exists and boot_success=0 to activate this behaviour.
if [ -n "${boot_counter}" -a "${boot_success}" = "0" ]; then
  # if countdown has ended, choose to boot rollback deployment,
  # i.e. default=1 on OSTree-based systems.
  if  [ "${boot_counter}" = "0" -o "${boot_counter}" = "-1" ]; then
    set default=1
    set boot_counter=-1
  # otherwise decrement boot_counter
  else
    decrement boot_counter
  fi
  save_env boot_counter
fi
### END /etc/grub.d/08_fallback_counting ###

### BEGIN /etc/grub.d/10_linux ###
Found linux image: /boot/vmlinuz-5.8.15-301.fc33.x86_64
Found initrd image: /boot/initramfs-5.8.15-301.fc33.x86_64.img
menuentry 'Fedora' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-simple-e5a60ecf-ba48-425c-938e-60f77b420d6b' {
	savedefault
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='hd0,gpt9'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt9 --hint-efi=hd0,gpt9 --hint-baremetal=ahci0,gpt9 --hint='hd0,gpt9'  e5a60ecf-ba48-425c-938e-60f77b420d6b
	else
	  search --no-floppy --fs-uuid --set=root e5a60ecf-ba48-425c-938e-60f77b420d6b
	fi
	linux	/boot/vmlinuz-5.8.15-301.fc33.x86_64 root=UUID=e5a60ecf-ba48-425c-938e-60f77b420d6b ro resume=UUID=99c7a73d-0b26-4806-98a1-ae0b03963352 rhgb quiet 
	initrd	/boot/initramfs-5.8.15-301.fc33.x86_64.img
}
submenu 'Advanced options for Fedora' $menuentry_id_option 'gnulinux-advanced-e5a60ecf-ba48-425c-938e-60f77b420d6b' {
	menuentry 'Fedora (5.8.15-301.fc33.x86_64) 33 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.8.15-301.fc33.x86_64-advanced-e5a60ecf-ba48-425c-938e-60f77b420d6b' {
	savedefault
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd0,gpt9'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt9 --hint-efi=hd0,gpt9 --hint-baremetal=ahci0,gpt9 --hint='hd0,gpt9'  e5a60ecf-ba48-425c-938e-60f77b420d6b
		else
		  search --no-floppy --fs-uuid --set=root e5a60ecf-ba48-425c-938e-60f77b420d6b
		fi
		linux	/boot/vmlinuz-5.8.15-301.fc33.x86_64 root=UUID=e5a60ecf-ba48-425c-938e-60f77b420d6b ro resume=UUID=99c7a73d-0b26-4806-98a1-ae0b03963352 rhgb quiet 
		initrd	/boot/initramfs-5.8.15-301.fc33.x86_64.img
	}
Found linux image: /boot/vmlinuz-0-rescue-335b3c48275e43f9b53aef675a08e824
Found initrd image: /boot/initramfs-0-rescue-335b3c48275e43f9b53aef675a08e824.img
	menuentry 'Fedora (0-rescue-335b3c48275e43f9b53aef675a08e824) 33 (Workstation Edition)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-335b3c48275e43f9b53aef675a08e824-advanced-e5a60ecf-ba48-425c-938e-60f77b420d6b' {
	savedefault
		load_video
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd0,gpt9'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt9 --hint-efi=hd0,gpt9 --hint-baremetal=ahci0,gpt9 --hint='hd0,gpt9'  e5a60ecf-ba48-425c-938e-60f77b420d6b
		else
		  search --no-floppy --fs-uuid --set=root e5a60ecf-ba48-425c-938e-60f77b420d6b
		fi
		linux	/boot/vmlinuz-0-rescue-335b3c48275e43f9b53aef675a08e824 root=UUID=e5a60ecf-ba48-425c-938e-60f77b420d6b ro resume=UUID=99c7a73d-0b26-4806-98a1-ae0b03963352 rhgb quiet 
		initrd	/boot/initramfs-0-rescue-335b3c48275e43f9b53aef675a08e824.img
	}
}

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

### BEGIN /etc/grub.d/11_reset_boot_success ###
# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry
if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
  set menu_hide_ok=1
else
  set menu_hide_ok=0 
fi
# Reset boot_indeterminate after a successful boot
if [ "${boot_success}" = "1" ] ; then
  set boot_indeterminate=0
# Avoid boot_indeterminate causing the menu to be hidden more then once
elif [ "${boot_indeterminate}" = "1" ]; then
  set boot_indeterminate=2
fi
# Reset boot_success for current boot 
set boot_success=0
save_env boot_success boot_indeterminate
### END /etc/grub.d/11_reset_boot_success ###

### BEGIN /etc/grub.d/12_menu_auto_hide ###
if [ x$feature_timeout_style = xy ] ; then
  if [ "${menu_show_once}" ]; then
    unset menu_show_once
    save_env menu_show_once
    set timeout_style=menu
    set timeout=60
  elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
    set orig_timeout_style=${timeout_style}
    set orig_timeout=${timeout}
    if [ "${fastboot}" = "1" ]; then
      # timeout_style=menu + timeout=0 avoids the countdown code keypress check
      set timeout_style=menu
      set timeout=0
    else
      set timeout_style=hidden
      set timeout=1
    fi
  fi
fi
### END /etc/grub.d/12_menu_auto_hide ###

### BEGIN /etc/grub.d/14_menu_show_once ###
if [ x$feature_timeout_style = xy ]; then
  if [ "${menu_show_once_timeout}" ]; then
    set timeout_style=menu
    set timeout="${menu_show_once_timeout}"
    unset menu_show_once_timeout
    save_env menu_show_once_timeout
  fi
fi
### END /etc/grub.d/14_menu_show_once ###

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

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

### BEGIN /etc/grub.d/21_ppc_terminfo ###
### END /etc/grub.d/21_ppc_terminfo ###

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

### BEGIN /etc/grub.d/31_uefi-firmware ###
### END /etc/grub.d/31_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom_proxy ###

# 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_proxy ###

### 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/42_custom_proxy ###
menuentry "Windows 10" {
	   nsmod ntfs
	   search --no-floppy --set=root --fs-uuid 7CD27478D274388A
	   ntldr /bootmgr
}
### END /etc/grub.d/42_custom_proxy ###

### BEGIN /etc/grub.d/43_custom_proxy ###
### END /etc/grub.d/43_custom_proxy ###

### BEGIN /etc/grub.d/44_custom_proxy ###
menuentry "Windows 10 (loader)"{
	    insmod part_gpt
	    search --no-floppy --set=root --fs-uuid 7CD27478D274388A
	    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/44_custom_proxy ###
done

I am not very family with the grub.cfg file content.
But for my setup, when it detects Windows, it lists under the above section.

I can see you have a “proxy” entry here. But I am not sure what it is.

When you reboot, do you see a Grub menu entry for Windows?

I don’t know what happen but it only showing like that

We need to take one stop at a time:

  1. Find out if you got a grub menu
  • sometimes grub menu is hidden, you can press ‘alt’ while boot to force it to show.
  1. If you can see a boot menu, what entries do you have?
  • Fedora Rescue
  • Fedora
  • Windows
  1. Can you boot any of those entries?

  2. If none of it can boot (or you are dropped to the grub shell directly without any boot menu)

1 Like

Still can’t boot just show like the picture prev, but i can login with fedora installation bootable
What should i do please

Once you are in LiveUSB session, following the link in my previous post to reinstall the grub boot loader.

On the docs, it has two ways to fix it, LVM and BTRF. My question is how do i check whether i am using LVM or BTRF?

Win your LIveUSB session, open gnome-disks, then you can see the disks / partitions .

You can also mount the partitions to see what is being stored inside.

The very first thing you need to decide is:

  1. Which partition is which
  2. Which must be retained, which can be removed
    (If your Fedora is freshly installed, and nothing there to keep, the more simple way forward to to move all not needed partitions, and install again with a more normal storage layout.)

Here my result

From the screen shot, the the there partitions are involved for your Fedora:

/dev/sda2 - efi partition, the normal mount point is /boot/efi
dev/sda9 - swap partition. This partition can be skipped during bootloader recovery
/dev/sda8 - ext4 partition. This like is the root filesystem. The normal mount point is ‘/’

You do not have a boot partition. Most likely it is part of /dev/sda8 .

So you are not using LVM nor BTRFS. You are using standard partitioning scheme.

This will be what you need to do:

1.  launch gnome-terminal
2.  Inside the termianl, run

$ sudo mkdir /mnt
$ sudo mkdir /mnt/root
$ sudo mount /dev/sda8 /mnt/root
# check what is inside /mnt/root/boot, and make sure /mnt/root/boot/efi exists
$ sudo ls -l /mnt/root/boot
#mount efi partition, create by mkdir /mnt/root/boot if not there 
$ sudo mount /dev/sda2 /mnt/root/boot/efi
$ sudo mount -o bind /dev /mnt/root/dev
$ sudo mount -o bind /proc /mnt/root/proc
$ sudo mount -o bind /sys /mnt/root/sys
$ sudo mount -o bind /run /mnt/root/run
$ sudo chroot /mnt/root
$ sudo grub2-install /dev/sda

#for Fedora 33 or older with EFI
$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

#for Fedora 34 
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

# reboot and see if new bootloader is woking now.
# this should at least able to Boot Fedora. 
# then we continue to fix Windows menu entry issues.

What should i do please?

I was try using this method


and got the output like this

Should i reboot now?

You can reboot to test now.

If still not working, then do the mount -o bind and grub2-install commands …

Unluck i already restart but still like prev pic and i try your prev tips here the output


Please try to run the commands prefix with “$”.
Those prefix with “#” are comments.

Thank Mr sampsonf the fedora is back now, what should i do next please?

1 Like

That is good progress. Thanks for updating back.

The next will be, try to mount the NTFS partitions (in gnome-disks) then run grub2-mkconfig .

Normally, grub2 will be able to locate the Windows OS.