A second kernel is a convenience, but lack of it is not a showstopper. One can boot the install media in rescue mode, even when no kernel in the machine can be loaded.
The vmlinuz*
are the kernel. The corresponding initramfs*
are an image of “disk” that has drivers that the kernel needs in order to load the rest of the system. The resl of the drivers are under /lib/modules/
, but to reach them kernel has to be able to mount that filesystem first.
if you look at the size of the initramfs, for example with ls -lh /boot
, you probably see the *rescue*
to be larger. Furthermore, if you ask from which package each file is from, with rpm -qf /boot/*
you should see that the *rescue*
are “created”, not installed. The rescue kernels supposedly rely less on the rest of the system (I have not looked that up) and are created by a helper package as copy of a kernel.
The initramfs are always generated during install of a kernel and the “regular” images have only a minimal necessary set, while for example the image on install media has “all” drivers (as it must run on all supported hardware when there is no installed system).
As I wrote earlier, it is the files that are in /boot/loader/entries
that you see in the menu. You could remove the files that are for non-existent kernels:
rm -i /boot/loader/entries/*-4.18.0-{372,425}.*.conf
An open question is, why they were not removed when the corresponding kernel packages were uninstalled? While locally generated, the packages do have uninstall script that should clean out entryfile.
Another peculiarity is that we see three different identifiers:
0f7e3ff15bf5448ca13d62a6201f5802
f27e011ff34e4eaca255e6a40a20a49b
bdaddf12b7d64171bfd4f8c63fcea657
I think that is machine ID, but it should not change after first boot. So why has it, on each point update?
(The change of ID probably explains why there are three rescue kernels too.)
The kernel packages are “installonly”, i.e. one can have more than one installed.
One should see older packages that are in the repository with:
dnf list --showduplicates kernel
and one can install a specific version. For example:
dnf install kernel-4.18.0-477.21.1
(But that you do already have.)
The kernel
should pull kernel-core
and kernel-modules
as dependencies.