Hi, this is my first time trying Fedora or any Linux distro for a daily use. I have configured btrfs snapshots based on this video https://www.youtube.com/watch?v=iSyDgIuBDWU, except I have decided to keep my /boot directory on a separate partition. I have already successfully installed nvidia drivers.
I have a problem with dual booting Fedora 42 KDE Plasma and Windows 11. First I have installed Fedora, removed Fedora drive and installed Windows on a separate drive. Then installed back Fedora drive. So Fedora’s and Windows’ ESPs are on separate drives. After installing Fedora and before installing Windows I have updated my BIOS (didn’t think about potential compatibility problems and still don’t know if there are any).
I had to add windows to grub menu, as it wasn’t there. I started with editing /etc/default/grub and adding GRUB_DISABLE_OS_PROBER=false
. Then I have run sudo grub2-mkconfig -o /boot/grub2/grub.cfg
. It worked and started showing windows in boot menu, but when I tried to boot it I got an error:
error: ../../grub-core/commands/search.c:472:no such device: E846-EF0D.
error: ../../grub-core/fs/fshelp.c:257:file ‘/efi/Microsoft/Boot/bootmgfw.efi’ nof found
Then, when I try to boot Fedora I get:
error: ../../grub-core/fs/fshelp.c:257:file ‘/vmlinuz-6.16.3-200.fc42.x86_64’ not found
error: ../../grub-core/loader/i386/efi/linux.c:258:you need to load the kernel first.
It seems that it only happens when I am rebooting from Fedora (but I am not sure about that one) and only if I first try to boot Windows. Then Fedora also gets the error and nothing can be booted. It gets fixed after rebooting through firmware settings. Booting directly from Windows drive from BIOS always works reliably.
Things I have tried so far to fix the problem:
- checking if I am in UEFI mode
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
- checking if os-prober detects Windows
- disabling secure boot in BIOS
- disabling fast boot on Windows
- checking if the correct Windows ESP UUID is entered in configuration file
sudo cat /boot/efi/EFI/fedora/grub.cfg
- manually adding Windows entry in /etc/grub.d/40_custom
menuentry ‘Windows 11’ {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root E846-EF0D
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
- reinstalling shim and grub.cfg
sudo rm -f /boot/grub2/grub.cfg /boot/efi/EFI/fedora/grub.cfg
sudo dnf reinstall “shim-” “grub2-efi-” grub2-common
- recreating Fedora’s EFI grub.cfg multiple times and every time after some re-configuring/reinstalling
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
- adding a fallback shim on Fedora drive
sudo cp /boot/efi/EFI/fedora/shimx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI
- recreating EFI/Windows boot files from Windows system
- checking boot order and
efibootmgr -v
entries’ UUIDs
The files indicated in the error seem to be exactly where they’re supposed to be.
Those are the outputs of some commands I have been using:
-
sudo efibootmgr -v
(I have replaced long hex stings with “…” to reduce clutter)
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0004,0003
Boot0003* Windows Boot Manager HD(1,GPT,0da39…)/\EFI\Microsoft\Boot\bootmgfw.efi57494e444f5753000190000088000000780000004200430044001f0047004a004500430054003d007b003900640065006100380036003200630e2d0035006300640064002d0034006500370030002f0071006300630031002d006600340032006200330034003400640034003700390035007d0000000000010000006000000001d000007fff05f0
dp: …
data: …
Boot0004* Fedora HD(1,GPT,d686…)/\EFI\fedora\shimx64.efi0000424f
dp: …
data: …
-
sudo lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 vfat FAT32 E846-EF0D
├─sda2
├─sda3 ntfs 2AF04895F0486961
└─sda4 ntfs 12827F8F827F7657
zram0 swap 1 zram0 31f867bf-795e-4a3f-aee6-d5e1eb478805 [SWAP]
nvme0n1
├─nvme0n1p1 vfat FAT32 A123-11CF 579.5M 3% /boot/efi
├─nvme0n1p2 ext4 1.0 c6052336-7401-4c70-af78-4e04f734a026 218.9M 71% /boot
└─nvme0n1p3 btrfs fedora b6f298cc-1778-4c38-bccc-a10b54a19f1d 1.8T 3% /var/tmp
/var/spool
/var/log
/var/lib/sddm
/home
/var/cache
/opt
/var/lib/libvirt
/
-
sudo blkid /dev/sda1
/dev/sda1: UUID=“E846-EF0D” BLOCK_SIZE=“512” TYPE=“vfat” PARTLABEL=“Basic data partition” PARTUUID=“0da39514-423c-40a4-8f52-a2e5b4bc5ed0”
-
sudo blkid /dev/nvme0n1p1
/dev/nvme0n1p1: UUID=“A123-11CF” BLOCK_SIZE=“512” TYPE=“vfat” PARTLABEL=“EFI System Partition” PARTUUID=“d686a99b-290f-4679-96ba-35b571b57f44”
Please don’t assume I am more advanced in Linux than I am based on those commands, I was just copy pasting (while trying to stay careful). I definitely classify as a beginner