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