How can I get kernel to be installed into /boot?

Hi,

I just installed Fedora 43 (I used to run Fedora some five years ago and wanted to check it out again).

One problem I ran into is - I multi-boot using ReFind which automatically finds kernels under /boot on all partitions. This works with Ubuntu, Manjaro (and of course it can also boot Windows so I can play games).

However, it appears that Fedora 43 does not install the kernel into /boot anymore. I found an older topic about this but seems like there is no clear solution.

Is there some configuration setting that would make Fedora kernels (and ram disks) to be copied into /boot (where ReFind can find them)?

My Fedora kernals are all in /boot for a Fedora KDE plasma and Fedora Server instance.

$ ls -l /boot
total 522788
-rw-r--r--. 1 root root   290048 Oct 12 01:00 config-6.16.12-200.fc42.x86_64
-rw-r--r--. 1 root root   292938 Oct 19 01:00 config-6.17.4-200.fc42.x86_64
-rw-r--r--. 1 root root   292938 Oct 23 01:00 config-6.17.5-200.fc42.x86_64
-rw-r--r--. 1 root root   292938 Nov  2 00:00 config-6.17.7-300.fc43.x86_64
-rw-r--r--. 1 root root   292971 Nov 13 00:00 config-6.17.8-300.fc43.x86_64
drwx------. 5 root root     4096 Jan  1  1970 efi/
drwxr-xr-x. 2 root root     4096 Nov  7 12:02 extlinux/
drwx------. 3 root root     4096 Nov 28 18:22 grub2/
-rw-------. 1 root root 81691000 Oct 18 10:44 initramfs-6.16.12-200.fc42.x86_64.img
-rw-------. 1 root root 81597651 Oct 26 14:49 initramfs-6.17.4-200.fc42.x86_64.img
-rw-------. 1 root root 82046119 Oct 31 10:52 initramfs-6.17.5-200.fc42.x86_64.img
-rw-------. 1 root root 87141675 Nov  7 12:14 initramfs-6.17.7-300.fc43.x86_64.img
-rw-------. 1 root root 51654871 Nov 24 12:25 initramfs-6.17.8-300.fc43.x86_64.img
drwxr-xr-x. 3 root root     4096 Mar 17  2022 loader/
drwx------. 2 root root    16384 Mar 17  2022 lost+found/
lrwxrwxrwx. 1 root root       47 Oct 18 10:43 symvers-6.16.12-200.fc42.x86_64.xz -> /lib/modules/6.16.12-200.fc42.x86_64/symvers.xz
lrwxrwxrwx. 1 root root       46 Oct 26 14:49 symvers-6.17.4-200.fc42.x86_64.xz -> /lib/modules/6.17.4-200.fc42.x86_64/symvers.xz
lrwxrwxrwx. 1 root root       46 Oct 31 10:52 symvers-6.17.5-200.fc42.x86_64.xz -> /lib/modules/6.17.5-200.fc42.x86_64/symvers.xz
lrwxrwxrwx. 1 root root       46 Nov  7 12:13 symvers-6.17.7-300.fc43.x86_64.xz -> /lib/modules/6.17.7-300.fc43.x86_64/symvers.xz
lrwxrwxrwx. 1 root root       46 Nov 24 12:25 symvers-6.17.8-300.fc43.x86_64.xz -> /lib/modules/6.17.8-300.fc43.x86_64/symvers.xz
-rw-r--r--. 1 root root 11847227 Oct 12 01:00 System.map-6.16.12-200.fc42.x86_64
-rw-r--r--. 1 root root 12020373 Oct 19 01:00 System.map-6.17.4-200.fc42.x86_64
-rw-r--r--. 1 root root 12020817 Oct 23 01:00 System.map-6.17.5-200.fc42.x86_64
-rw-r--r--. 1 root root 12022173 Nov  2 00:00 System.map-6.17.7-300.fc43.x86_64
-rw-r--r--. 1 root root 11126070 Nov 13 00:00 System.map-6.17.8-300.fc43.x86_64
-rwxr-xr-x. 1 root root 17656168 Oct 12 01:00 vmlinuz-6.16.12-200.fc42.x86_64*
-rwxr-xr-x. 1 root root 18257960 Oct 19 01:00 vmlinuz-6.17.4-200.fc42.x86_64*
-rwxr-xr-x. 1 root root 18257960 Oct 23 01:00 vmlinuz-6.17.5-200.fc42.x86_64*
-rwxr-xr-x. 1 root root 18262056 Nov  2 00:00 vmlinuz-6.17.7-300.fc43.x86_64*
-rwxr-xr-x. 1 root root 18184232 Nov 13 00:00 vmlinuz-6.17.8-300.fc43.x86_64*

What Fedora spin are you using?

I’m using Fedora Workstation so GNOME.

In my /boot only 6.17.1 is available even though I have 6.17.8 installed as well (confirmed with rpm -q etc.).

what is the output of

rpm -ql kernel-core

rpm -ql kernel-core-6.17.8-300

on your system?

rpm -ql kernel-core-6.17.8-300

Shows that the linux image and the ramdisk should exist in /boot but they’re not there.

If I remember correctly (I used to run Fedora as my primary work system a few years ago), those files are not actually in the rpm but are copied during installation…. Or not copied :slight_smile:

If rpm -ql says that they are… they are. But if I have a faint memory, that in some specific case (secure boot? full disk encryption?) a second boot device could be mounted over /boot during kernel installation and unmounted afterwards.

What is the output of

lsblk
mount

?

I have several disk drives and quite a few partitions - what exactly are you looking for?

My /boot is not a separate partition, it’s under / and it is definitely mounted properly and was mounted properly when dnf upgrade installed kernel 6.17.8.

I think the issue is something else - Fedora 43 uses systemd-boot and the location of kernel image files and ramdisk fileshas changed.

See this - New kernels not being installed in /boot anymore - but there does not appear to be a solution in that thread.

I tried using kernel-install as suggested in that other thread, but it did not copy the files into /boot.

My EFI partition is NOT out of space.

My guess is that your bootloader can’t read btrfs filesystems.

What fedora edition are you using.?

AFAIK there are no official fedora editions that use systemd-boot and if you are using that then it is very understandable that the kernel location has changed.
Please post the output of sudo ls -r /boot and the commands asked for by @paulatz above.
lsblk -f and mount

Not necessarily because the kernel files in /boot are marked as ghost files, which means that the kernel files is installed by running the kernel-install program from the rpm scripts. Run rpm -ql --noghost kernel-core-6.17.8-300 to see what is provided by the package and rpm -q --scripts kernel-core-6.17.8-300 to see the scripts that run the kernel-install program.