There is a new /usr/lib/kernel/install.d/92-tuned.install
file, which appends $tuned_param
and $tuned_initrd
to the /boot/loader/entries/*.conf
boot entry. $variables
only work with GRUB, and systemd-boot does not recognize them. And $tuned_initrd
causes systemd-boot to be unable to find the initrd path, thus preventing the system from booting. I think 92-tuned.install
might need a way to detect systemd-boot and avoid adding any of $variables
to it.
The following lines should make the script exit early when using sd-boot
# with grub2 always /boot
BOOT_ROOT="/boot"
LOADER_ENTRIES="$BOOT_ROOT/loader/entries"
[ -d "$LOADER_ENTRIES" ] || exit 0
A check for the variable KERNEL_INSTALL_LAYOUT would have been a better test. That is the test sd-boot is using to check if sd-boot is used instead of something else.
But it seems not working. Even the entry conf files insideFedora-Workstation-Live-x86_64-41-1.4.iso
itself are wrong.
Explain. Which conf files?
Fedora Workstation installs the system with the grub as the boot loader. So sd-boot would not be an issue.
Yeah, I understand. But somehow this file didn’t generate correctly. And unless I block 92-tuned.install
, any new kernel-install
call would append $tuned_initrd
and $tuned_params
to my sdboot entry.
Even more dangerous, if a user use sdboot on fedora 40, and do a system upgrade, then the system wouldn’t boot, since every entry now has $tuned_initrd
. (and, I’m that unlucky guy…)
In a normal sd-boot setup your BLS files will be in /boot/efi/loader/entries
and there won’t be any /boot/loader/entries
. Or if you do it the systemd way, mount the ESP at /efi, in which case you would have /efi/loader/entries.
It would be a good idea to mask 92-tuned.install
by creating /etc/kernel/install.d/92-tuned.instal
l as a symbolic link to /dev/null
.
And file a bug report.
Thanks! I have already mask 92-tuned.install
with /dev/null
to make my system work.
For the BLS file path, I might need to read the document again. I might make wrong directory path as your point out.
There are different ways to do this. The Fedora way is ESP on /boot/efi, and the systemd way is ESP on /efi. And some people want ESP on /boot.
Dang, got hit by this.
UEFI is sooo much easier to fix than Grub.
Hmm, okay, I think I understand the problem because I fixed it in a jiffy, got my system booted.
Okay, so just so I understand. The scripts in /usr/lib/kernel/install.d/ are the “default” ones, but if the same script exists in /etc/kernel/install.d/ that one will get run instead, right? It’s like a local system override, right?
(I think we did this in F40 for dracut? Does that ring a bell? I’m certain there was a bug for it and I just forgot to remove it. I’m going to delete that one in /etc/ and let the default one take over in F41.)
In my case, I think I may have tripped it because I just mounted /efi over the old /boot. I should really just get rid of /boot, huh?