Rocky Linux 8.5 unable to boot

My Laptop is Lenovo ThinkBook 15. Earlier, I have it dual-booted with Windows 11 and Ubuntu 21. I have no problem whatsoever in booting to either of them through the Grub Bootloader.

I wiped my Ubuntu 21 partition to install Rocky Linux. The installation is successful, but I am not able to boot to Rocky Linux. There is Grub Bootloader prompt to boot to either windows or linux, so what I tried was making the priority of booting to Rocky Linux as the first one, ubuntu as second (even though I don’t have Ubuntu anymore, but the option is still there in the bios, and I got prompted to Grub CLI if I try to boot to Ubuntu), and Windows 11 as the last priority. But even this did not help.

I used to have multiple linux OS on my laptop, and I have never faced this error.

Edit: I just tried installing Fedora, same error.
Edit 2: I installed Ubuntu 20 again, and everything seems to be working. I am not sure what RHEL based distros are not doing what Ubuntu seems to be doing. Maybe the bootloader is not being installed correctly for those distributions?

Yep, I THINK I know what the problem is:

I’ve been messing with installing Grub-Customizer. It use to work just fine; now ZIP!!

Starting with Fedora 30-something – and then with RHEL later – instead of putting the /boot/grub2/grub.cfg (can be viewed in /etc/grub.d/10_linux) like most everyone else does and allows Grub-Customizer to work, Red Hat has moved the boot files (?) to /boot/loader/entries, now grub.cfg only references where to look in order to boot ie. in /etc/grub.d/10_linux. In short it is looking in the WRONG Place. I was able to PROVE it too:

First I disconnected all my HDD’s and left only the NVMe drive that holds RL 8.5 in place. I then rebooted the machine even though the SSD that contains openSUSE 15.3 Leap , still popped up in the menu, even ough the drive itself was disconnected.

Next I ran:

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

and rebooted the machine. As expected the menu now only showed the 3 RL 8.5 entries.

Next I ran Grub Customizer expecting that the RL 8.5 entries would show up. THEY NEVER DID! Nor did openSUSE 15.3 since the cable to the SSD was still disconnected.

Next I re-connected all the cables and re-booted. I now still only had the Entries for RL 8.5.

Next I ran

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

and rebooted the machine. This time the menu now showed both the RL 8.5 Entries and the openSUSE 15.3 Leap Entries.

Finally I ran Grub-Customizer once again and this time the Grub-Customizer Menu was back and still referenced /etc/grub.d/30_os-prober as the drives where openSUSE 15.3 could be found. Rocky Linux 8.5 was still absent as was the case when I started.


By moving the boot files (?) from /boot/grub2/grub.cfg which references to look in /boot/loader/entries, since there is no INTERNAL reference point that points where to look in the EXTERNAL DRIVE that tells the drive to look under /boot/loader/entries to find the the boot files (?), instead you come up with the drive being unable boot the RL 8.5.

The SOLUTION MAY be fairly simple… or complex.

One use an EXTERNAL drive and then mount the Rocky Linux /boot partition under /mnt. Use a file viewer such as Midnight Commander and go into /mnt and look for the RL 8.5 /boot partition then GoTo /boot => /loader => /entries and open it up and look inside. If there are files inside /entries then you can PROBABLY get RL up and running; if /entries is EMPTY you have TROUBLES!!

ASSUMING that there are boot files (?) still in /boot/loader/entries the SOLUTION is to make the Rocky Linux 8.5 Menu the MASTER Menu. This will require that you run

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

any other OS or drive will be booted from the Rocky Linux 8.5 MASTER MENU. IF OTOH the Windows, or other OS holds the MASTER MENU, then RL is unlikely to boot if there is no pointer to look in /boot/loader/entries to boot RL 8.5

I was not familiar with Grub Customizer till your post so I went and took a look on the package site. I saw your post there describing the situation as per above, but I also took a look at the prior post by someone using centos 8 who’s issues are somewhat the same as yours but not as well documented, but do reference that the “/boot/loader/entries” are not found. This post and the only follow up is dated in May 2021.
What is currently implemented in RH 8 / Fedora > fc29 is a kludge between “systemd-boot” and the grub boot loader. There was a document that I can’t find now but was linked to back when Fedora made the change over that described the direction RH was headed in with “systemd-boot”. The intent is that eventually they will abandon grub2. The tool “grubby” is one means of administering the boot order and parameters of the loader entries but not of the other found systems via grub2. So what might you do to administer the boot of all the systems? I would suggest looking into the rEFInd boot manager / loader as one possible solution.