GRUB boot broken after update

After updating alma linux i got the following error when starting up:


Booting `AlmaLinux (5.14.0-570.33.2.el9_6.x86_64) 9.6 (Sage Margay)`

error: ../../grub-core/fs/fshelp.c:257:file `/initramfs-5.14.0-570.33.2.el9_6.x86_64.img' not found.

Press any key to continue...


[    1.492370] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.492395] CPU: 7 PID: 1 Comm: swapper/0 Not tainted 5.14.0-570.33.2.el9_6.x86_64 #1
[    1.492416] Hardware name: Dell Inc. Latitude 7400 2-in-1/0HCMR3, BIOS 1.8.0 06/16/2020
[    1.492471] Call Trace:
[    1.492475]  <TASK>
[    1.492483]  dump_stack_lvl+0x34/0x4b
[    1.492503]  panic+0x107/0x2bb
[    1.492513]  mount_root_generic+0x1c6/0x149
[    1.492519]  ? mount_root+0x13/0x176
[    1.492523]  prepare_namespace+0x1ae/0x1f5
[    1.492530]  kernel_init_freeable+0x182/0x1a7
[    1.492541]  ? _pfx_kernel_init+0x10/0x10
[    1.492563]  kernel_init+0x16/0x136
[    1.492571]  ret_from_fork+0x29/0x50
[    1.492591]  </TASK>
[    1.492645] Kernel Offset: 0x1400000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[    1.492671] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

I tried several “Repair GRUB” tutorials but they didnt work out as expected. Please help

Hi @pprkut!
I can see, and I hope I’m not mistaken for fix, try with:

sudo dracut -f /boot/initramfs-5.14.0-570.33.2.el9_6.x86_64.img 5.14.0-570.33.2.el9_6.x86_64

But choose 'u are bios legacy
1. UEFI: sudo grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg
2. Bios legacy: sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Reboot and pick the normal 5.14.0-570.33.2.el9_6.x86_64) 9.6 (Sage Margay) entry

All the best! :crossed_fingers:

That is not correct in el9. It was in el8.

In el9 one should use sudo grub2-mkconfig -o /boot/grub2/grub.cfg in both modes, because the /boot/efi/EFI/almalinux/grub.cfg used by UEFI boot in el9 is a mere wrapper that includes the /boot/grub2/grub.cfg.

If you overwrite the wrapper, then your entire ‘grub.cfg’ will be in /boot/efi/EFI/almalinux/
(That should work too – until something assumes that the actual config is in /boot/grub2/)

Furthermore, the mkconfig (of el9) does no longer update kernel options it BLS entries,
unless you give it option --update-bls-cmdline
See man grub2-mkconfig


Does that file exists? If not, then why not? Not enough space for it?
Can you boot with earlier kernel?

ls -lh /boot
df -h /boot

I use UEFI and not legacy. Should i use these commands when booting the old kernel?

What sould i do to keep it near the standard ?

[1@localhost boot]$ ls -lh /boot
insgesamt 318M
-rw-r--r--. 1 root root 229K 22. Jul 14:07 config-5.14.0-570.28.1.el9_6.x86_64
-rw-r--r--. 1 root root 229K 30. Jul 11:24 config-5.14.0-570.30.1.el9_6.x86_64
-rw-r--r--. 1 root root 229K 14. Aug 13:48 config-5.14.0-570.33.2.el9_6.x86_64
drwx------. 3 root root 4,0K  1. Jan 1970  efi
drwx------. 3 root root   50 20. Aug 11:59 grub2
-rw-------. 1 root root 131M  8. Dez 2023  initramfs-0-rescue-9e2d63ea62d047aaaf8ac900e294c2a7.img
-rw-------. 1 root root  63M 28. Jul 11:33 initramfs-5.14.0-570.28.1.el9_6.x86_64.img
-rw-------. 1 root root  42M 19. Aug 11:44 initramfs-5.14.0-570.28.1.el9_6.x86_64kdump.img
drwxr-xr-x. 3 root root   21  8. Dez 2023  loader
lrwxrwxrwx. 1 root root   52 28. Jul 11:31 symvers-5.14.0-570.28.1.el9_6.x86_64.gz -> /lib/modules/5.14.0-570.28.1.el9_6.x86_64/symvers.gz
lrwxrwxrwx. 1 root root   52  3. Aug 18:55 symvers-5.14.0-570.30.1.el9_6.x86_64.gz -> /lib/modules/5.14.0-570.30.1.el9_6.x86_64/symvers.gz
lrwxrwxrwx. 1 root root   52 19. Aug 11:41 symvers-5.14.0-570.33.2.el9_6.x86_64.gz -> /lib/modules/5.14.0-570.33.2.el9_6.x86_64/symvers.gz
-rw-------. 1 root root 9,0M 22. Jul 14:07 System.map-5.14.0-570.28.1.el9_6.x86_64
-rw-------. 1 root root 9,0M 30. Jul 11:24 System.map-5.14.0-570.30.1.el9_6.x86_64
-rw-------. 1 root root 9,0M 14. Aug 13:48 System.map-5.14.0-570.33.2.el9_6.x86_64
-rwxr-xr-x. 1 root root  13M  8. Dez 2023  vmlinuz-0-rescue-9e2d63ea62d047aaaf8ac900e294c2a7
-rwxr-xr-x. 1 root root  15M 22. Jul 14:07 vmlinuz-5.14.0-570.28.1.el9_6.x86_64
-rwxr-xr-x. 1 root root  15M 30. Jul 11:24 vmlinuz-5.14.0-570.30.1.el9_6.x86_64
-rwxr-xr-x. 1 root root  15M 14. Aug 13:48 vmlinuz-5.14.0-570.33.2.el9_6.x86_64

I am able to boot the first entry with the “Sage Margay” nametag. All further update runs did not work

And i am not sure why the /initramfs-5.14.0-570.33.2.el9_6.x86_64.img file does not exist. i only used the standard yum update.

Update:

did the trick. i used
sudo grub2-mkconfig -o /boot/grub2/grub.cfg afterwards.
How can i check if the boot with the new kernel now works as designed?

Can you now boot with the 5.14.0-570.33.2.el9_6.x86_64 kernel?

If yes, then that kernel ought to be ok.


We see files from three kernels: 5.14.0-570.28.1.el9_6.x86_64, 5.14.0-570.30.1.el9_6.x86_64, and 5.14.0-570.33.2.el9_6.x86_64,
but initramfs only for the 5.14.0-570.28.1.el9_6.x86_64.

(The rescue vmlinuz and initramfs are an automatically create copy of whatever kernel you had/installed in December 2023. Old. GRUB menu should have “rescue” entry for booting with that.)

For each initramfs*.img there is also initramfs*kdump.img made/used by kdump service. Normal users rarely use it.


For future the question is, why installation of kernel did not write the corresponding initramfs(s)? It should. If the write did fail, then what else did fail? Will the install of next kernel fail similarly?


How much free space does the /boot have? The df -h /boot should answer that.
If the answer is “not much”, then making space will be necessary.
If the answer is “plenty”, then the issue is elsewhere.

Hi, next update same problem:

error: ../../grub-core/fs/fshelp.c:257:file `/initramfs-5.14.0.-570.35.1.el9_6.x86_64.img' not found.

df -Th on boot:

Dateisystem    Typ  Größe Benutzt Verf. Verw% Eingehängt auf
/dev/nvme0n1p2 xfs   960M    360M  601M   38% /boot