I got 2 PCs which I upgraded to fedora36
The fist one has a /boot/efi of 512Mb, there was no disk full on it, but still there is missing kernel
The second one has a /boot/efi of 200Mb
On both, /boot/efi is big because I got file like that:
$ ll /boot/efi/368e02543398477bb01d02927d94e4fa/5.17.5-300.fc36.x86_64
total 60M
-rwx------. 1 root root 49M 3 mai 21:36 initrd
-rwx------. 1 root root 12M 3 mai 21:36 linux
so 60Mb per kernel (NOTE : only the fc36 kernel are here, the fc35 (the only one I can boot ) is not there
Additional note : on my 200Mb computer, It goes disk full because of the 0-rescue kernel which did have a initrd of 160Mb in the /boot/efi/xxxxxx/0-rescue directory.
I temporarly removed dracut-recue to prevent this file generation
Additional debug:
I followed the 92-crashkernel.install script.
The issue is on the kdumpctl script on the “_find_kernel_path_by_release()”, it use a
_grubby_kernel_str=$(grubby --info ALL | grep “^kernel=.*$_release”)
but grubby is unable to find the newer kernel
#> grubby --info ALL
index=0
kernel=“/boot/vmlinuz-5.17.1-200.fc35.x86_64”
args=“ro rhgb quiet systemd.unified_cgroup_hierarchy”
root=“UUID=83597a76-4a55-4681-9de0-9df2e09899d8”
initrd=“/boot/initramfs-5.17.1-200.fc35.x86_64.img”
title=“Fedora Linux (5.17.1-200.fc35.x86_64) 35 (Workstation Edition)”
id=“368e02543398477bb01d02927d94e4fa-5.17.1-200.fc35.x86_64”
index=1
kernel=“/boot/vmlinuz-0-rescue-368e02543398477bb01d02927d94e4fa”
args=“ro rhgb quiet systemd.unified_cgroup_hierarchy”
root=“UUID=83597a76-4a55-4681-9de0-9df2e09899d8”
initrd=“/boot/initramfs-0-rescue-368e02543398477bb01d02927d94e4fa.img”
title=“Fedora (0-rescue-368e02543398477bb01d02927d94e4fa) 30 (Workstation Edition)”
id=“368e02543398477bb01d02927d94e4fa-0-rescue”
No trace of any fc36 kernel
Note: I tried to remove the 92-crashkernel script and reinstall the kernel, there was no error, but no kernel either.
On additional note, in the /boot directory I did not have file like previous kernel. For instance, the kernel-core-5.17.5-300.fc36.x86_64.rpm is told to provides a /boot/initramfs file, but on my computer, it did not.
ll /boot
total 143M
drwxr-xr-x. 3 root root 4,0K 15 mars 2018 16a25ba363244c0e9f6e1ec47539e715
-rw-r–r–. 1 root root 239K 1 avril 22:50 config-5.17.1-200.fc35.x86_64
drwx------. 7 root root 16K 1 janv. 1970 efi
-rw-r–r–. 1 root root 148K 27 janv. 12:54 elf-memtest86±5.31
drwxr-xr-x. 2 root root 4,0K 23 avril 17:46 extlinux
drwx------. 4 root root 4,0K 25 mars 21:40 grub2
-rw-------. 1 root root 70M 17 mars 2018 initramfs-0-rescue-368e02543398477bb01d02927d94e4fa.img
-rw-------. 1 root root 48M 5 avril 08:24 initramfs-5.17.1-200.fc35.x86_64.img
drwxr-xr-x. 3 root root 4,0K 8 avril 2018 loader
-rw-r–r–. 1 root root 147K 27 janv. 12:54 memtest86±5.31
lrwxrwxrwx. 1 root root 46 5 avril 08:24 symvers-5.17.1-200.fc35.x86_64.gz → /lib/modules/5.17.1-200.fc35.x86_64/symvers.gz
-rw-------. 1 root root 6,0M 1 avril 22:50 System.map-5.17.1-200.fc35.x86_64
-rwxr-xr-x. 1 root root 8,0M 17 mars 2018 vmlinuz-0-rescue-368e02543398477bb01d02927d94e4fa
-rwxr-xr-x. 1 root root 12M 1 avril 22:50 vmlinuz-5.17.1-200.fc35.x86_64
On a working box (fresh fc36), how is this supposed to work ? where is the vmlinuz located, where /which initrd is it in use ? Is grub2 still in use ?
I don’t understand how could this work as the “/bin/kernel-install” will launch script from /usr/lib/kernel/install.d which contains in my boxes:
ll /usr/lib/kernel/install.d
total 48K
-rwxr-xr-x. 1 root root 2,0K 7 févr. 22:47 10-devicetree.install
-rwxr-xr-x. 1 root root 1,9K 18 mars 13:59 20-grubby.install
-rwxr-xr-x. 1 root root 7,6K 25 mars 21:40 20-grub.install
-rwxr-xr-x. 1 root root 1,6K 18 janv. 12:35 50-depmod.install
-rwxr-xr-x. 1 root root 1,9K 30 mars 10:53 50-dracut.install
-rwxr-xr-x. 1 root root 791 14 févr. 05:51 60-kdump.install
-rwxr-xr-x. 1 root root 4,3K 18 janv. 12:35 90-loaderentry.install
-rwxr-xr-x. 1 root root 203 14 févr. 05:51 92-crashkernel.install
-rwxr-xr-x. 1 root root 675 7 févr. 22:47 95-kernel-hooks.install
-rwxr-xr-x. 1 root root 1,9K 25 mars 21:40 99-grub-mkconfig.install
- device tree will do nothing
- grubby.install will do nothing ( /sbin/new-kernel-pkg is not installed on fc36 so the script precondition is not met and this just exit 0) and even if I install the grubby-deprecated package, some error occurs (no template found) and nothing is really done. (no new grub entry)
- grub.install will do nothing as this script exit 0 if the /boot/efi/xxxx/kernel-version directory exist, This directory is created by kernel-install before calling this script so this script is useless
- depmod just do depmod if needed so not here
- dracut : generate the initrd file into /boot/efi/xxxx/kernel-version directory
- kdump : will do nothing on install
- loaderentry copy the kernel into /boot/efi/xxxx/kernel-version directory
- crashkernelhook => will crash as the kernel is not defined in grub
- postinstall hook => check post install hook, but I have none so do nothing
- grub-mkconfig => as there is no new entries in /boot/loader/entries will do nothing