Kernel upgrades failing; still have fc37 kernel on fc39

Apologies for what may be excessive detail in the below…

I upgraded from f37 to f39 last week using dnf system-upgrade as per usual. Nothing seemed amiss, although I did not watch the process carefully. After rebooting I noticed that I was still running an f37 kernel:

uname -r
6.5.12-100.fc37.x86_64

(And had I paid attention at the GRUB menu, I would have seen that as well.)

After searching forum posts I thought the upgrade might have stalled somehow and not installed everything properly, so I tried dnf distro-sync --releasever=39 --skip-broken (with rpmfusion* repos disabled) but that only installed 12 packages:

  git-2.43.2-1.fc39.x86_64                                                      
  git-core-2.43.2-1.fc39.x86_64                                                 
  git-core-doc-2.43.2-1.fc39.noarch                                             
  perl-Git-2.43.2-1.fc39.noarch                                                 
  python3-rpm-4.19.1.1-1.fc39.x86_64                                            
  rpm-4.19.1.1-1.fc39.x86_64                                                    
  rpm-build-4.19.1.1-1.fc39.x86_64                                              
  rpm-build-libs-4.19.1.1-1.fc39.x86_64                                         
  rpm-libs-4.19.1.1-1.fc39.x86_64                                               
  rpm-plugin-selinux-4.19.1.1-1.fc39.x86_64                                     
  rpm-plugin-systemd-inhibit-4.19.1.1-1.fc39.x86_64                             
  rpm-sign-libs-4.19.1.1-1.fc39.x86_64                                          

So I seemed to have all the f39 packages, or at least not a bunch of old f37 stuff outside of the kernel. At some point in there I removed previous kernels so all I had left was the bootable
6.5.12-100.fc37 and the non-functional 6.7.4-200.fc39.

After the second iteration of dnf remove kernel\*6.7.4-200.fc39 and dnf system-upgrade, I realized my EFI partition was low on space (why the process didn’t throw an error the first time, I’m not sure). At that point the partition was only ~100MB, which had been adequate for about six years.

After spending most of an afternoon with GParted moving partitions around, I ran into a bug with Parted not being able to resize vfat partitions <256MB (grrrr), so I used the workaround documented here (TL;DR: backup /boot/efi, reformat partition to ext4, resize, reformat to fat32, restore data). I used rsync -a to copy the data to an external disk and back on. /boot/efi is now 500MB. I had freed up quite a bit more space with all the partition moving so can resize again if necessary. After all that, the machine still boots (w00t) but the fc37 kernel is still my only option.

Since then a new kernel became available, so today I tried dnf upgrade kernel*. I got some downloading errors which seemed temporary, because at completion it said it had installed all six
6.7.5-200.fc39 packages. However, I also got this:

  Running scriptlet: kernel-core-6.7.5-200.fc39.x86_64                      6/6 
/usr/lib/kernel/install.d/51-dracut-rescue.install: line 81: /boot/efi/loader/entries/ac24b316920f43059ca830943adaac1c-0-rescue.conf: No such file or directory
/usr/lib/kernel/install.d/51-dracut-rescue.install failed with exit status 1.
warning: %posttrans(kernel-core-6.7.5-200.fc39.x86_64) scriptlet failed, exit status 1

Error in POSTTRANS scriptlet in rpm package kernel-core
  Running scriptlet: kernel-modules-6.7.5-200.fc39.x86_64                   6/6 
  Running scriptlet: kernel-devel-6.7.5-200.fc39.x86_64                     6/6 

So despite dnf reporting success with two fc39 different kernels, I’m still where I have been for a week. In /boot the most recent kernel files are:

System.map-6.5.12-100.fc37.x86_64
config-6.5.12-100.fc37.x86_64
vmlinuz-6.5.12-100.fc37.x86_64
initramfs-6.5.12-100.fc37.x86_64.img

I don’t know much about where else I should look. One other piece of info is that the EFI partition appears to be filling up rather quickly (with temp files from previous installs? Again, I know little about the anatomy of these areas…)

df -h /boot/efi
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       497M  304M  194M  62% /boot/efi

OK, so I see that I should have searched more carefully:

And after deleting some initrd files for obsolete kernels in /boot/efi, utilisation on that partition is down below 40%.

(Find these as follows:)

sudo find "/boot/efi/$(cat /etc/machine-id)/" -name "initrd"

Added boot, grub, uefi and removed gnome, selinux