Systemd Adds Feature To Fallback Automatically To Older Kernels On Failure
Systemd's latest feature is the concept of "boot counting" that will track kernel boot attempts and failures as part of an automatic boot assessment. Ultimately this is to provide automatic fallback to older kernels should a newer kernel be consistently failing.
The feature was crafted over the past few months by Lennart Poettering himself to provide a way when making use of systemd-boot on UEFI systems it can automatically fallback to an older kernel if a newer kernel is consistently causing problems. This is treated as an add-on to the Boot Loader Specification. The systemd boot assessment is designed that it could also be used by non-UEFI systems and other boot platforms.
The concept is roughly similar to functionality GRUB has had in place for a while of having a fallback mechanism for booting a different entry if the default boot entry fails. This new code though is the systemd approach and offers a bit more functionality (and complexity).
The systemd-boot code is tasked with counters that are decreased on each boot attempt and then prioriting the boot entries based upon their counters. Meanwhile there is a new systemd-bless-boot service for marking a boot loader entry as good when it's been successfully booted, among other new code.
This documentation covers the new systemd automatic boot assessment in good detail. Additional details in this pull request that was merged last night.
The feature was crafted over the past few months by Lennart Poettering himself to provide a way when making use of systemd-boot on UEFI systems it can automatically fallback to an older kernel if a newer kernel is consistently causing problems. This is treated as an add-on to the Boot Loader Specification. The systemd boot assessment is designed that it could also be used by non-UEFI systems and other boot platforms.
The concept is roughly similar to functionality GRUB has had in place for a while of having a fallback mechanism for booting a different entry if the default boot entry fails. This new code though is the systemd approach and offers a bit more functionality (and complexity).
The systemd-boot code is tasked with counters that are decreased on each boot attempt and then prioriting the boot entries based upon their counters. Meanwhile there is a new systemd-bless-boot service for marking a boot loader entry as good when it's been successfully booted, among other new code.
This documentation covers the new systemd automatic boot assessment in good detail. Additional details in this pull request that was merged last night.
51 Comments