Grub doesn't detect Fedora after installing a grub theme

GitHub - vinceliuice/grub2-themes: Modern Design theme for Grub2 here’s what I used to install the theme, the guide was provided in the README.md file. Didn’t edit anything at all. And yeah, thanks for the advice, I’ll back up my files.

/boot/loader/entries/ exists, and there are 3 files in there, 1 more than in the live usb /boot/loader/entries/ directory.

Yes, as computersavvy and Jonathan S said, there are several scenarios possible.

You have two efi partitions. This usually works fine. However since you installed a custom theme, something went wrong and you may have installed grub a second time into the windows efi partition (sda1). I believe I’ve seen a setup where you could select several Linux Bootloader in the Bios/UEFI-Setup. You can verify if you also have several listed and try them.

The files you found under /etc/grub2.cfg and /etc/grub2-efi.cfg are generated from templates for the actual written bootloader. It is composed of files in /etc/grub.d/ and /etc/default/grub.
The bootloader is written to /boot/grub2/.

There are several files written that after all should point your sd8

sda8      btrfs    fedora_fedora-80xh     1339ff31-2770-40c5-8983-e26f24c962ce

see “/boot/efi/EFI/fedora/grub.cfg” for example.
However it is not recommended to manually edit there.
After you backed up, you can try however.

Jonathan S advice seems promising.
You also can try to merge them.

However I belive what bootloader is being taken should be set in your BIOS/UEFI Settings.

I tried searching for that, but there seems to be no clear answer. I tried a few different guides, but neither seemed to work.

I’ll try that, thanks. Honestly, if that doesn’t work, I’ll probably just end up reinstalling. I’ve taken a backup of everything important I have, and that should probably it. I’m no expert, and I might end up accidentally breaking something important while editing those files. Thanks anyways for all your help though :slight_smile:

When booted to fedora you can use efibootmgr to see the uefi bios boot order. It can also be used to modify the boot order and default boot loader.

I also looked at the install.sh that you used to install the grub theme and there are errors in it.
The way it was written works well for the older grub.cfg location used for Fedora 33 and earlier and runs

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

if that file exists, which is not correct for Fedora 34 and later.
Fedora 34 places the grub.cfg file at /boot/grub2/grub.cfg.

A clean new install of F34 does not create /boot/efi/EFI/fedora/grub.cfg so the theme install will work properly, but upgrading to F34 from F33 or earlier will leave the existing grub.cfg file at that location which then causes the error.

If the file grub.cfg already exists under the /boot/efi/ path it will cause the install of your theme to improperly place the updated grub.cfg file in that location rather than in /boot/grub2/ .

4 Likes

Nice find :+1:

JV

I agree with huben - that is a good catch. :slight_smile:

calimari

Above, you posted the contents of /boot/grub2/grub.cfg, which looks correct, but you appear to be loading (as JV says) /boot/efi/EFI/fedora/grub.cfg.

You could try using the ‘configfile’ command of grub to load your /boot/grub2/grub.cfg.
To run the grub configfile command, press c to go to the grub commandline and type:

configfile /grub2/grub.cfg

Note that there is no preceding /boot - that is implicit.

If that loads the grub menu as it was, then you’re in luck - just load Fedora, back up your /boot/grub2.grub.cfg (to say /boot/grub2/grub.cfg.bak) and run:

grub2-mkconfig -o /boot/grub2/grub.cfg

If desperate, you can always use configfile to load the .bak file.

This trick has saved my bacon on a production server. :wink:

I installed a grub2 theme yesterday and on rebooting, grub wasn’t detecting Fedora. :slightly_smiling_face:

Did end up installing MX Linux because someone recommended it :frowning: @jerrymdaniel could use this though

Well, that seems to be fixed now.

I run into the same issue, fedora boot entry disappeared and only windows boot menu shows up, it’s probably caused by the grub theme installation. I tried grub configfile <grub config on disk> and grub2-mkconfig to re-regenerate the config file, however they don’t work for me. I’m providing my steps how I recovered my fedora boot entry for your reference:

  1. In grub boot menu, press “c” to enter grub command line:
  2. List disk partitions with ls command
grub> ls
hd2,gpt1 hd2,gpt2 ...
  1. Find out the root partition by check the partitions one by one, for example, my root partition is (hd2,gpt2).
grub> ls (hd2,gpt2)
root
  1. Now you should be able to find out the kernel boot opts on your root partition.
grub> cat (hd2,gpt2)/root/etc/grub2.cfg  # or other grub2 config files in your root partition
   ...
   set kernelopts="root=UUID=... ro rootflags=subvol=root"
   ...
  1. Now use the kernel boot opts to boot up your fedora by manual.
grub> linux (hd2,gpt6)/root/boot/vmlinuz-5.14.xxxx root=UUID=... ro rootflags=subvol=root
grub> initrd (hd2,gpt6)/root/boot/initramfs-5.14.xxxx
grub> boot
  1. Now you enter your fedora os, you can try grub2-mkconfig or other possible solutions, these don’t work for me, and seems I recovered my fedora boot entry by reinstalling the grub2 and shim rpms, because I tried many thing, I’m not pretty sure it was fixed by the reinstalling of grub2 and shim rpms, but it worth a try if everything else don’t work for you.
$ sudo dnf reinstall grub* shim*
 Package                                  
========================
Reinstalling:
 grub2-common        
 grub2-efi-ia32
 grub2-efi-ia32-cdboot
 grub2-efi-x64           
 grub2-efi-x64-cdboot    
 grub2-efi-x64-modules   
 grub2-pc               
 grub2-pc-modules
 grub2-tools
 grub2-tools-efi         
 grub2-tools-extra       
 grub2-tools-minimal     
 grubby                  
 shim-ia32       
 shim-x64

Note: grub2-efi-x64-modules is probably an important rpm need to be installed and reinstall it, so it’s better that you have all these rpms installed and then reinstall them.
7. After reinstalling the grub and shim rpms, reboot, you should see your fedora boot entries again.

1 Like