Before9e82a74cb0, we had a check like the following: if [[ -d /efi/loader/entries ]] || [[ -d /efi/$MACHINE_ID ]]; then ENTRY_DIR_ABS="/efi/$MACHINE_ID/$KERNEL_VERSION" elif [[ -d /boot/loader/entries ]] || [[ -d /boot/$MACHINE_ID ]]; then ENTRY_DIR_ABS="/boot/$MACHINE_ID/$KERNEL_VERSION" elif [[ -d /boot/efi/loader/entries ]] || [[ -d /boot/efi/$MACHINE_ID ]]; then ENTRY_DIR_ABS="/boot/efi/$MACHINE_ID/$KERNEL_VERSION" … In stock Fedora 34-, /efi isn't used, but grub creates /boot/loader/entries and installs kernels and initrds directly in /boot. Thus the second arm of the check wins, and we end up with BOOT_ROOT=/boot. After9e82a74cb0, we iterate over the inner directory first and over the second directory later: [ -d /efi/<machine-id> ] [ -d /boot/efi/<machine-id> ] [ -d /boot/<machine-id> ] [ -d /efi/Default ] [ -d /boot/efi/Default ] [ -d /boot/Default ] [ -d /efi/loader/entries ] [ -d /boot/efi/loader/entries ] [ -d /boot/loader/entries ] This was partially reverted by447a822f8ewhich removed Default from the list, anda5307e173b, which moved checks for /boot up, so we ended up with: [ -d /efi/<machine-id> ] [ -d /boot/<machine-id> ] [ -d /boot/efi/<machine-id> ] [ -d /efi/loader/entries ] [ -d /boot/loader/entries ] [ -d /boot/efi/loader/entries ]6637cf9db6added autodetection of an entry token, so we end up checking the following suffixes: <machine-id>, $IMAGE_ID, $ID, Default But the important unchanged characteristic is that we iterate over the suffix first. Sadly this breaks Fedora, because we find /boot/efi/<machine-id> before we could find /boot/loader/entries. It seems that every possible aspect of behaviour matters for somebody, so we need to keep the original order of detection. With the patch: [ -d /efi/<machine-id> ] ... [ -d /efi/loader/entries ] [ -d /boot/<machine-id> ] ... [ -d /boot/loader/entries ] [ -d /boot/efi/<machine-id> ] ... [ -d /boot/efi/loader/entries ] Note that we need to check for "loader/entries" too, even though it is not an entry-token candidate, so that we get the same detection priority as before. Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2071034.
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list or join our IRC channel.
Stable branches with backported patches are available in the stable repo.
