I had a situation last night where I updated from 5.8.7-200.fc32.x86_64 to 5.8.8-200.fc32.x86_64 on multiple systems. Those with Intel RST raid1 devices for root failed to boot but I was able to bring up on the old kernel. Bug reported and I want to continue with standard updates including the kernel but I want to insure the working kernel does not age out and get removed, which happens it appears by default after 3 kernels, at least not until I get a new kernel that works.
How does one protect a working kernel from automatic removal ?
Based on what I see, this is what I think happens or should happen but can anyone confirm? dnf keeps kernels based on /etc/dnf/dnf.conf, installonly_limit=3. After, it deletes the old kernel packages. Setting it higher is only a partial solution as /boot will eventually fill. Grubby does not strictly care what dnf did, and instead creates menu entries for based on what is available. One thing I don’t know is which tool deletes initramfs for a deleted kernel.
Kernel headers are another question. These are only installed for the current kernel and I assume that’s because it’s the only one you would be concerned about rebuilding. For older kernel, you only want them to boot, so you only need the kernel and the modules. Is the way to do it add these packages to file in /etc/dnf/protected.d and will it break kernel updating?
If anyone can provide any guidance, help is appreciated. Thanks.