Can't boot into windows after updating

Ever since upgrading I believe yesterday, I can’t boot to Windows 10 from GRUB. When I select the WIndows 10 entry in the GRUB menu, a black screen appears saying “error: file ‘/EFI/Microsoft/Boot/bootmgfw.efi’ not found”. I tried changing the chainloading path in the Windows entry in grub.cfg but nothing worked.

I can boot into Windows from the BIOS menu, but not from GRUB.

EDIT: When editing the Windows entry directly from GRUB and pressing to complete the path to /EFI/Microsoft/Boot/bootmgfw.efi in the chainloader line, it doesn’t complete with the EFI directory. That means, I guess, that the Windows EFI partition is not being correctly mounted in GRUB? But my /etc/fstab has the correct UUID for the EFI partition, so I don’t really understand. I’m attaching my /etc/fstab file contents just in case.

Here’s the output of various commands, if you need more I’d be happy to provide.

Contents of /etc/fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=1A94-42AC                            /boot/efi      vfat    umask=0077 0 2
UUID=f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652 /              ext4    defaults,noatime,discard 0 1
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0
UUID=0C86E5A686E5908E                     /mnt/Data      ntfs    rw,auto,users,exec,nls=utf8,umask=003,g

Output of sudo blkid:

/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="4dc66a91-a0a5-4bcd-aed4-997becbc5846"
/dev/sda2: LABEL="DATA" BLOCK_SIZE="512" UUID="0C86E5A686E5908E" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="b4c0e754-0d60-4ef3-b221-dbcb852b564e"
/dev/sdb1: LABEL="ESP" UUID="1A94-42AC" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="922e013a-8050-4191-b289-d11254189dfa"
/dev/sdb2: PARTLABEL="Microsoft reserved partition" PARTUUID="51496300-10b4-4884-8759-53558e5847c0"
/dev/sdb3: LABEL="OS" BLOCK_SIZE="512" UUID="A636DBE636DBB611" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="b0e2b430-db4c-40d6-99cd-98d97bcbefe1"
/dev/sdb4: LABEL="WINRETOOLS" BLOCK_SIZE="512" UUID="DC82366182363FF6" TYPE="ntfs" PARTUUID="107772bc-e3bb-4229-b701-b380e164ca58"
/dev/sdb5: LABEL="Image" BLOCK_SIZE="512" UUID="E22A371E2A36EEE3" TYPE="ntfs" PARTUUID="423af344-2683-430d-86b8-771625380127"
/dev/sdb6: LABEL="DELLSUPPORT" BLOCK_SIZE="512" UUID="9C480A59480A3316" TYPE="ntfs" PARTUUID="1a5589c9-32f4-4e16-b6b7-ec0246885248"
/dev/sdb7: UUID="f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="3b3d3471-1de3-4348-9327-ce377ba966d9"

Output of sudo fdisk -l:

Disk /dev/sda: 931,51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: ST1000LM035-1RK1
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: gpt
Disk identifier: CD6A0926-183D-4A33-9996-0EFCF4523C7B

Device      Start        End    Sectors   Size Type
/dev/sda1    2048     264191     262144   128M Microsoft reserved
/dev/sda2  264192 1953523711 1953259520 931,4G Microsoft basic data


Disk /dev/sdb: 119,24 GiB, 128035676160 bytes, 250069680 sectors
Disk model: SK hynix SC311 S
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: gpt
Disk identifier: C4F3446C-1F96-438F-9932-2D5718DBD08D

Device         Start       End   Sectors  Size Type
/dev/sdb1       2048   1333247   1331200  650M EFI System
/dev/sdb2    1333248   1595391    262144  128M Microsoft reserved
/dev/sdb3    1595392 157749247 156153856 74,5G Microsoft basic data
/dev/sdb4  219189248 221216767   2027520  990M Windows recovery environment
/dev/sdb5  221216768 247769087  26552320 12,7G Windows recovery environment
/dev/sdb6  247771136 250048511   2277376  1,1G Windows recovery environment
/dev/sdb7  157749248 219189247  61440000 29,3G Linux filesystem

Partition table entries are not in disk order.

My grub.cfg is the following:

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

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
set root='hd1,gpt7'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
else
  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
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_GB
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod ext2
set root='hd1,gpt7'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
else
  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
fi
insmod gfxmenu
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_24.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_48.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_bold_16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_mono_12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-18.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b18.pf2
insmod png
set theme=($root)/usr/share/grub/themes/manjaro/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=hidden
  set timeout=-1
# Fallback hidden-timeout code in case the timeout_style feature is
# unavailable.
elif sleep --interruptible -1 ; 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-f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652' {
	savedefault
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	set root='hd1,gpt7'
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
	else
	  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
	fi
	linux	/boot/vmlinuz-5.7-x86_64 root=UUID=f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652 rw  quiet apparmor=1 security=apparmor udev.log_priority=3
	initrd	/boot/intel-ucode.img /boot/initramfs-5.7-x86_64.img
}
submenu 'Advanced options for Manjaro Linux' $menuentry_id_option 'gnulinux-advanced-f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652' {
	menuentry 'Manjaro Linux (Kernel: 5.7.14-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.7.14-1-MANJARO x64-advanced-f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652' {
	savedefault
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt7'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		else
		  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		fi
		linux	/boot/vmlinuz-5.7-x86_64 root=UUID=f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652 rw  quiet apparmor=1 security=apparmor udev.log_priority=3
		initrd	/boot/intel-ucode.img /boot/initramfs-5.7-x86_64.img
	}
	menuentry 'Manjaro Linux (Kernel: 5.7.14-1-MANJARO x64 - fallback initramfs)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.7.14-1-MANJARO x64-fallback-f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt7'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		else
		  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		fi
		linux	/boot/vmlinuz-5.7-x86_64 root=UUID=f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652 rw  quiet apparmor=1 security=apparmor udev.log_priority=3
		initrd	/boot/initramfs-5.7-x86_64-fallback.img
	}
	menuentry 'Manjaro Linux (Kernel: 5.7.14-1-MANJARO x64 - recovery mode)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.7.14-1-MANJARO x64-recovery-f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt7'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		else
		  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		fi
		linux	/boot/vmlinuz-5.7-x86_64 root=UUID=f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652 rw single 
		initrd	/boot/initramfs-5.7-x86_64-fallback.img
	}
	menuentry 'Manjaro Linux (Kernel: 5.4.57-1-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.57-1-MANJARO x64-advanced-f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652' {
	savedefault
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt7'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		else
		  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		fi
		linux	/boot/vmlinuz-5.4-x86_64 root=UUID=f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652 rw  quiet apparmor=1 security=apparmor udev.log_priority=3
		initrd	/boot/intel-ucode.img /boot/initramfs-5.4-x86_64.img
	}
	menuentry 'Manjaro Linux (Kernel: 5.4.57-1-MANJARO x64 - fallback initramfs)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.57-1-MANJARO x64-fallback-f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt7'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		else
		  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		fi
		linux	/boot/vmlinuz-5.4-x86_64 root=UUID=f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652 rw  quiet apparmor=1 security=apparmor udev.log_priority=3
		initrd	/boot/initramfs-5.4-x86_64-fallback.img
	}
	menuentry 'Manjaro Linux (Kernel: 5.4.57-1-MANJARO x64 - recovery mode)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.57-1-MANJARO x64-recovery-f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		set root='hd1,gpt7'
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		else
		  search --no-floppy --fs-uuid --set=root f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
		fi
		linux	/boot/vmlinuz-5.4-x86_64 root=UUID=f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652 rw single 
		initrd	/boot/initramfs-5.4-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 ###
menuentry 'Windows Boot Manager (on /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-efi-/dev/sdb1' {
	savedefault
	insmod part_gpt
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi
### 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 --hint-ieee1275='ieee1275//disk@0,gpt7' --hint-bios=hd1,gpt7 --hint-efi=hd1,gpt7 --hint-baremetal=ahci1,gpt7  f61b25a0-b8d8-47ef-b6b4-3fb74dbcb652
        linux16 /boot/memtest86+/memtest.bin 
    }
fi
### END /etc/grub.d/60_memtest86+ ###

Okay, I managed to start the Windows bootloader by changing the chainloader /EFI/Microsoft/Boot/bootmgfw.efi to chainloader (hd1,gpt1)/EFI/Microsoft/Boot/bootmgfw.efi in grub.cfg, but now it shows an error with status 0xc0000225 that reads “The Boot Configuration Data for your PC is missing or contains errors”.

can you return

sudo pacman -Qs grub 
sudo pacman -Qs os-prober 
inxi -Mxxa
sudo parted -l 
sudo efibootmgr -v

Here you go:

  • sudo pacman -Qs grub:
local/grub 2.04-11.1
    GNU GRand Unified Bootloader (2)
local/grub-theme-manjaro-dev 18.0-3
    Manjaro Linux grub theme (devel)
  • sudo pacman -Qs os-prober
local/os-prober 1.77-1
    Utility to detect other OSes on a set of drives
  • inxi -Mxxa
Machine:   Type: Laptop System: Dell product: G5 5587 v: N/A serial: <superuser/root required> 
           Chassis: type: 10 serial: <superuser/root required> 
           Mobo: Dell model: 0MJGJT v: A00 serial: <superuser/root required> UEFI: Dell v: 1.9.0 
           date: 02/11/2019 
  • sudo parted -l
Model: ATA ST1000LM035-1RK1 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  135MB   134MB                Microsoft reserved partition  msftres
 2      135MB   1000GB  1000GB  ntfs         Basic data partition          msftdata


Model: ATA SK hynix SC311 S (scsi)
Disk /dev/sdb: 128GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Warning: failed to translate partition name
Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  683MB   682MB   fat32        EFI system partition          boot, esp
 2      683MB   817MB   134MB                Microsoft reserved partition  msftres
 3      817MB   80,8GB  80,0GB  ntfs         Basic data partition          msftdata
 7      80,8GB  112GB   31,5GB  ext4
 4      112GB   113GB   1038MB  ntfs                                       hidden, diag
 5      113GB   127GB   13,6GB  ntfs                                       hidden, diag
 6      127GB   128GB   1166MB  ntfs                                       hidden, diag

  • sudo efibootmgr -v
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0004,0001,0000,0005,0006,0007,0008
Boot0000* Windows Boot Manager	HD(1,GPT,922e013a-8050-4191-b289-d11254189dfa,0x800,0x145000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0001* ubuntu	HD(1,GPT,922e013a-8050-4191-b289-d11254189dfa,0x800,0x145000)/File(\EFI\ubuntu\shimx64.efi)
Boot0004* Manjaro	HD(1,GPT,922e013a-8050-4191-b289-d11254189dfa,0x800,0x145000)/File(\EFI\Manjaro\grubx64.efi)
Boot0005* Diskette Drive	BBS(Floppy,Diskette Drive,0x0)..BO
Boot0006* USB Storage Device	BBS(USB,USB Storage Device,0x0)..BO
Boot0007* CD/DVD/CD-RW Drive	BBS(CDROM,CD/DVD/CD-RW Drive,0x0)..BO
Boot0008* Onboard NIC	BBS(Network,Killer E2400 Boot    ,0x0)..BO

if the trouble is only for windows ,
you need a USB windows for repair boot entry EFI

Exact same issue. My dual boot setup was working well, but a recent update changed two things:

  1. Added a new “UEFI Settings” menu option to my Grub boot screen
  2. Killed my Windows entry, resulting in the exact same issue.

I wouldn’t immediately jump to “fix it with Windows USB” since that’s not where the problem originated.

I’m also investigating. OP, as you find solutions, please share here.

Okay, I managed to add a custom entry to GRUB to boot Windows. I added these lines at the end of /etc/grub.d/40_custom:

menuentry 'Windows Boot Manager (on /dev/sdb1) - Alt' --class windows --class os $menuentry_id_option 'osprober-efi-/dev/sdb1' {
	insmod part_gpt
	insmod chain
	set root=(hd1,gpt1)
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

The part after set root will depend on which disk and partition you have the Windows EFI partition. This can be checked with sudo parted -l I believe. In my case it was the first entry of the second disk, so hd1 instead of hd0 for the disk, and gpt1 for the first partition, according to what I understood.

I then ran sudo update-grub. On next restart, I used the new entry “Windows Boot Manager (on /dev/sdb1) - Alt” to open Windows, and it booted succesfully. You can change the entry name by changing the name of the menuentry.

The main difference with the entry I had earlier is that in the other one there’s no set root line. That maybe means then that os_prober can’t generate correct menuentries with EFI partitions located not on the first disk. This is probably a recent bug with os_prober then?

Nice, thanks.

Any chance the change can be made directly to the original entry which I believe is generated in 30_os-prober?

Perhaps embedded here:

  case ${LONGNAME} in
    Windows\ Vista*|Windows\ 7*|Windows\ Server\ 2008*)
    ;;
    *)
      cat << EOF
    drivemap -s (hd0) \${root}

Or introducing a new block for “Windows Boot Manager”

case ${LONGNAME} in
    Windows\ Boot\ Manager)
    ;;
    *)
      cat << EOF
    set root=XXXX

Tried that, didn’t work because those lines are inside this case:

case ${BOOT} in
    chain)

, which is not our case because ${BOOT}=efi. It does work if I write, beginning in line 205:


      case ${LONGNAME} in
	Windows\ Boot\ Manager)
	  cat << EOF
	set root=(hd1,gpt1)
EOF
	;;
      esac

, but that hardcodes the drive and partition. It would be nice if there were some variable that stored those things, but I can’t find one by skimming through the code, though I wasn’t very thorough.

EDIT: Fixed the code, it was doing the exact opposite of what I wanted.
EDIT2: It’s from line 205, not 208.

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