right as far as it goes.
This started with removing the windows partitions and gaining additional space for fedora.
Now it seems that for some reason grub is not being properly updated so it still shows the f38 entries and not showing the updates with the f40 & f41 kernels.
I believe we need to get a little more aggressive with grub.
show the result of cat /etc/default/grub
sudo dnf reinstall grub2-common (which should create new copies of both removed files)
reboot and compare the boot options on the grub menu with what you have shown here in images. I expect it to show 3 kernels. One each for f41, f40, and f38. The one for f41 should be first in the list.
Lets look a bit closer at the files. ls -l /boot sudo ls -l /boot/loader/entries sudo ls -l /boot/grub2 sudo ls -l /etc/grub.d
It seems that for some reason grub is not properly building the grub menu with BLSCFG as it should be doing, but instead is using an older fixed grub menu (possibly manually created).
ugabrovec@office001:~$ sudo ls -l /etc/grub.d
total 120
-rwxr-xr-x 1 root root 9380 Nov 21 01:00 00_header
-rwxr-xr-x 1 root root 1100 Feb 3 01:00 00_tuned
-rwxr-xr-x 1 root root 236 Nov 21 01:00 01_users
-rwxr-xr-x 1 root root 270 Jul 16 2021 06_grub-customizer_menu_color_helper
-rwxr-xr-x 1 root root 835 Nov 21 01:00 08_fallback_counting
-rwxr-xr-x 1 root root 19875 Nov 21 01:00 10_linux
-rwxr-xr-x 1 root root 833 Nov 21 01:00 10_reset_boot_success
-rwxr-xr-x 1 root root 892 Nov 21 01:00 12_menu_auto_hide
-rwxr-xr-x 1 root root 410 Nov 21 01:00 14_menu_show_once
-rwxr-xr-x 1 root root 14627 Nov 21 01:00 20_linux_xen
-rwxr-xr-x 1 root root 2562 Nov 21 01:00 20_ppc_terminfo
-rwxr-xr-x 1 root root 869 Nov 21 01:00 25_bli
-rwxr-xr-x 1 root root 11006 Nov 21 01:00 30_os-prober
-rwxr-xr-x 1 root root 1166 Nov 21 01:00 30_uefi-firmware
-rwxr-xr-x 1 root root 725 Jan 28 01:00 35_fwupd
-rwxr-xr-x 1 root root 218 Nov 21 01:00 40_custom
-rwxr-xr-x 1 root root 219 Nov 21 01:00 41_custom
drwxr-xr-x 4 root root 4096 Jul 16 2021 backup
-rw-r--r-- 1 root root 483 Nov 21 01:00 README
ugabrovec@office001:~$
ugabrovec@office001:~$ sudo cat /boot/grub2/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set pager=1
if [ -f ${config_directory}/grubenv ]; then
load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/kg3ReK-vKLb-GVW9-jzdz-qXcQ-zxL0-bXtQOM/2XBEMu-Ml6s-hQfQ-HtGL-fUSn-cQke-6VcaTu'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='lvmid/kg3ReK-vKLb-GVW9-jzdz-qXcQ-zxL0-bXtQOM/2XBEMu-Ml6s-hQfQ-HtGL-fUSn-cQke-6VcaTu' 552b71fa-865d-4283-a5be-4e9ad7bb3c9e
else
search --no-floppy --fs-uuid --set=root 552b71fa-865d-4283-a5be-4e9ad7bb3c9e
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_DK
insmod gettext
fi
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=10
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
export tuned_params
set tuned_initrd=""
export tuned_initrd
### END /etc/grub.d/00_tuned ###
### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
source ${prefix}/user.cfg
if [ -n "${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root ${GRUB2_PASSWORD}
fi
fi
### END /etc/grub.d/01_users ###
### BEGIN /etc/grub.d/06_grub-customizer_menu_color_helper ###
### END /etc/grub.d/06_grub-customizer_menu_color_helper ###
### BEGIN /etc/grub.d/08_fallback_counting ###
insmod increment
# Check if boot_counter exists and boot_success=0 to activate this behaviour.
if [ -n "${boot_counter}" -a "${boot_success}" = "0" ]; then
# if countdown has ended, choose to boot rollback deployment,
# i.e. default=1 on OSTree-based systems.
if [ "${boot_counter}" = "0" -o "${boot_counter}" = "-1" ]; then
set default=1
set boot_counter=-1
# otherwise decrement boot_counter
else
decrement boot_counter
fi
save_env boot_counter
fi
### END /etc/grub.d/08_fallback_counting ###
### BEGIN /etc/grub.d/10_linux ###
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 076b21f9-8d72-4c0e-853b-20f3863b512b
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=boot 8E51-41FD
# This section was generated by a script. Do not modify the generated file - all changes
# will be lost the next time file is regenerated. Instead edit the BootLoaderSpec files.
#
# The blscfg command parses the BootLoaderSpec files stored in /boot/loader/entries and
# populates the boot menu. Please refer to the Boot Loader Specification documentation
# for the files format: https://systemd.io/BOOT_LOADER_SPECIFICATION/.
# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
# entries populated from BootLoaderSpec files that use this variable work correctly even
# without a grubenv file, define a fallback kernelopts variable if this has not been set.
#
# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
if [ -z "${kernelopts}" ]; then
set kernelopts="root=/dev/mapper/fedora_office001-root ro rd.lvm.lv=fedora_office001/root rd.lvm.lv=fedora_office001/swap rhgb quiet "
fi
insmod blscfg
blscfg
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/10_reset_boot_success ###
# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry
if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
set menu_hide_ok=1
else
set menu_hide_ok=0
fi
# Reset boot_indeterminate after a successful boot
if [ "${boot_success}" = "1" ] ; then
set boot_indeterminate=0
# Avoid boot_indeterminate causing the menu to be hidden more than once
elif [ "${boot_indeterminate}" = "1" ]; then
set boot_indeterminate=2
fi
# Reset boot_success for current boot
set boot_success=0
save_env boot_success boot_indeterminate
### END /etc/grub.d/10_reset_boot_success ###
### BEGIN /etc/grub.d/12_menu_auto_hide ###
if [ x$feature_timeout_style = xy ] ; then
if [ "${menu_show_once}" ]; then
unset menu_show_once
save_env menu_show_once
set timeout_style=menu
set timeout=60
elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
set orig_timeout_style=${timeout_style}
set orig_timeout=${timeout}
if [ "${fastboot}" = "1" ]; then
# timeout_style=menu + timeout=0 avoids the countdown code keypress check
set timeout_style=menu
set timeout=0
else
set timeout_style=hidden
set timeout=1
fi
fi
fi
### END /etc/grub.d/12_menu_auto_hide ###
### BEGIN /etc/grub.d/14_menu_show_once ###
if [ x$feature_timeout_style = xy ]; then
if [ "${menu_show_once_timeout}" ]; then
set timeout_style=menu
set timeout="${menu_show_once_timeout}"
unset menu_show_once_timeout
save_env menu_show_once_timeout
fi
fi
### END /etc/grub.d/14_menu_show_once ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###
### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
if [ ! insmod bli ]; then
echo "bli module not available"
fi
fi
### END /etc/grub.d/25_bli ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
if [ fwsetup --is-supported ]; then
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
fi
fi
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###
ugabrovec@office001:~$
Stranger and stranger with files in /boot/loader/entries matching those in /boot/
At the same time rpm and dnf both show the newer kernels installed.
We cannot use either rpm or dnf to remove the older kernel files since the packages do not show as installed in either. However you can use the manual method to remove the very oldest kernel.
Edit /etc/dnf/dnf.conf and change the installonly_limit to 6.
ugabrovec@office001:~$ sudo dnf remove /boot/*6.4.11* /boot/loader/entries/*6.4.11*
No packages to remove for argument: /boot/config-6.4.11-200.fc38.x86_64
No packages to remove for argument: /boot/initramfs-6.4.11-200.fc38.x86_64.img
No packages to remove for argument: /boot/symvers-6.4.11-200.fc38.x86_64.xz
No packages to remove for argument: /boot/System.map-6.4.11-200.fc38.x86_64
No packages to remove for argument: /boot/vmlinuz-6.4.11-200.fc38.x86_64
No packages to remove for argument: /boot/loader/entries/*6.4.11*
Nothing to do.
ugabrovec@office001:~$
I did not proceed with the 3rd step of your instruction.
I already knew the packages were not installed so that should have been
switch to root sudo su
remove the files rm /boot/*6.4.11* /boot/loader/entries/*6.4.11*
exit from su
then do the next step using sudo with those commands in step 3.
If you already edited /etc/dnf/dnf.conf then step 2 would not have been immediately necessary because the install limit should have allowed step 3 to complete properly
This appears to be a dracut bug. or a postinstall script bug.
The path is incorrect in that error message. It should be /boot/loader/entries and not /boot/efi/loader/entries.
What dracut version is installed? dnf list --installed dracut
Mine is
$ dnf list --installed dracut
Installed packages
dracut.x86_64 103-3.fc41 updates
What is now seen with ls /boot and ls /boot/loader/entries