Systemd boot options keep defaulting to LTS kernel

I decided to reinstall EndeavorOS, which I do once every 2 years as an easy way to clean out clutter… (Ganymede this time).

In the past when installing the LTS Kernel (Optional) the system always booted by default to the current kernel, this time the order is reversed, and even worse: In the past, systemd always defaulted to boot to the last kernel booted to on the next boot, and it always showed the boot menu with the choices.

Now it always boots to the LTS kernel and ignores that I was booted to the current one last, add to that I don’t get the boot menu at all unless I hard restart the computer deliberately by cutting the power to force it to show the menu once I boot again! I keep forgetting the key combo to show the boot menu for rarely ever needing it, but it shouldn’t be necessary unless something breaks.

I have found the info on how to change the default boot order but that too is conflicting: The instructions say to change /efi/loader/loader.conf which exists as a a sub-folder under/ but also as an actual efi partition which the Archwiki says to make changes to directly by chrooting into it: so which one is it? The former sounds easier and safer than the latter.

So: Why is the LTS kernel booted as default after install now, rather than the current kernel as it has always been in the past?

Is that an Arch, systemd boot, other, or an Endeavour OS installer thing?

If it’s a change in the EOS installer, then why?; I saw a few posts by people on this forum with both kernels installed wanting to boot to the LTS by default for who knows what reasons, but I see that as the exception, not the rule in a rolling release such as Arch, and so a bad reason for the change if it’s the reason for it: How about it being a choice to set in the installer?

One more installer related thing: The installer doesn’t call the nouveau drivers “Nouveau” but ATI something: The ATI company is long gone, and it’s confusing because nouveau covers a whole bunch of devices of all kinds of make and model, and that’s how it’s always reffered to and even named, so I have no clue how it ended up being labeled as ATI, only that it was one of two choices the other not for my card anymore, so I chose it at a risk. Since there is the choice for current NVIDIA and “ATI”, why not the drivers for the newer Intel cards, the nvidia-580xx…? It would save a lot of work and confusion for many users over having to do all that manually, or worse: pick the wrong driver and end up with problems.

The EFI partition is mounted as /efi. There is no need to chroot. Just edit the file as described in the EOS Wiki

The LTS has always been the default, they are sorted alphabetically ascending. Are you sure you didn’t change it before?

I am not sure what you are referring to, can you share a screenshot?

I never changed the default boot order in systemd boot, only in grub, which was a long time ago: I never was one of those Anti systemd people. Systemd just doesn’t have a convenient GUI app to change it’s settings as there is for GRUB, and so where the Archwiki and some people claim “It’s easy” I do not agree, as choosing from presented options and hitting “OK” and then rebooting, isn’t the same as manually editing text files where a whole lot can go wrong.

I also mentioned that systemd used to, but no longer defaults to the last used kernel, which is odd.

As for a screenshot of the installer: Is that really necessary? Wouldn’t someone here, perhaps someone who worked on the installer know? It’s where you have a choice of GPU drivers: There are only two options: Current NVIDIA and ATI, no further info, and I had to assume ATI must be the Nouveau driver given how long ATI GPU’s haven’t been around, and sure enough after install I do have Nouveau, mesa, vulkan… (The Mesa stack. It’s working, but albeit nowhere near as responsive… as when my card was still supported by the current drivers, and hoping the nvidia-580xx driver may work better.

For the record, I wrote the automation systemd-boot uses on EOS and I am the one who decided the sort order. It has never defaulted to the last used entry.

I work on the installer, and I know of no part of the installer that offers a choice between ATI and the current NVIDIA. That is why I asked for a picture.

There are two parts of the installer where you have a choice like that.

The first is when you first boot up in the systemd-boot menu where you get a choice between default and NVIDIA Turing or later. The second is that there some optional X11 drivers in the package selection section. There are two packages in that section xf86-video-amdgpu and xf86-video-ati. Neither of those have anything to do with nvidia. They are both for AMD cards.(AMD bought ATI years ago). Having those installed won’t have any impact on an NVIDIA card.

The 580xx drivers are vastly superior to the Nouveau drivers for the cards that are supported by them.

On the boot page, you can press ‘d’ to set the highlighted line as the “default” boot entry. No complex editing/compiling required.

Or just edit the loader.conf.

esp/loader/loader.conf

default @saved
1 Like

There is very little point in doing it that way. It will stop working every time a new kernel update comes.

1 Like

Thanks for this, I would’ve done that and been annoyed when it reset. It’s hardly complicated to follow that EndeavourOS discovery guide I know but I’d have still tried this trick on new installs.

1 Like

I think you did. From July 2024:

You got this reply:

Then you said:

I think it is safe to make the assumption that you used the information in that link to change the kernel boot order to default to the current kernel. When you made your new “clean install” you forgot that you had done this.

2 Likes

Sorry, busy with so much other stuff.

I will use the info from that EOS posting, but for now I did use the “Just hit d with the preferred kernel option selected” option: New much better Kernel coming, and new plasma updates! I can’t keep up with it all! That of course is a me thing, not that I don’t love seeing Linux getting so much better so fast, while Windows gets much worse so much faster:

Schadenfreude although a little antisocial is still somewhat thrilling! :laughing:

First, thanks for making the installer so good! :trophy:

I have no clue how exactly systemd handles the boot entries and wasn’t insinuating it was your doing, and would think you just include it as is, and it somehow is different now: Defaulting to the last used entry is different from arranging the kernel order in the list for a fresh OS install, add 2 years of updates. Also: You never stated what the boot order is supposed to be as you set it:

All I know is if I booted to LTS, then LTS would be selected on the next boot. As soon as I booted into the main kernel, it would be selected on the next boot, and all subsequent successful boots, until I chose a different kernel.

I’m more interested in why now the LTS kernel (a mere option) is the default after a reinstall of the OS which it didn’t used to be: Are you saying it was your choice? If so why? I would think LTS is for having a stable kernel to boot to only if there is an issue requiring troubleshooting, but otherwise the main kernel should be preferred on a rolling release. And again, and even as I already said: Since LTS seems to be the default, and it no longer uses my last used kernel, the need to have to select the main kernel on every boot and restart no mater what is really bad!

On the GPU choices I was speaking of the package choices, not the initial live session startup. I thought it was a driver choice, not for additional utilities: That’s where clear descriptions in the installer (not on the forum or elsewhere) are useful. I do know that the kernels hardware detection is good, but there being differences in functionality between Nouveau and nvidia-580xx (and even older drivers) makes having those choices in the installer make sense: Endeavour may be vanilla and doesn’t install all sorts based on who knows who’s software preferences, but it is more of an easy way to install Arch and get a fully functional system (internet access and all), before proceeding to install additional software: Drivers are not just additional, but vital for a well functioning system, so having those choices in the installer cannot be called unnecessary bloat, and are worth including. Also not saying doing so is easy!

Again, nothing has changed. Whenever it is installed, it is always above the normal kernel.

Which kernel you choose to be the default is more to personal preference. The linux kernel isn’t naturally preferred or vice-versa. The fact that Arch is rolling has no bearing on which kernel you should choose.

As for why I chose it to be in that order, it is because it is sorted in ascending order so the older kernels come first. If it was sorted in descending order the fallback kernel would be first and would be booted by default and that we don’t want.

1 Like

No, it’s not safe to use that assumption: It was an aside and related to the kernel order in the list, not the actual boot order: assuming the boot order followed the list which is not necessarily true. I had much more pressing issues related to updating to KDE 6 in that post. Once I had everything fixed there was no need to change the boot order until two evenings ago, because it kept booting to LTS, by default.

All of this here and now is just because the boot order itself has changed, not just the list order. I first read somewhere you can change the loader.conf in /efi in the file system, and then reading on the arch wiki to make sure that you have to chroot into and edit them directly on the efi partition and stated more as if a MUST, not an option, which sounded like the only way as presented: It’s more about the wording not the actual procedure, as well as getting conflicting info.

So you asked how to change the boot order, you were given the information on how to do just that, you thanked the individual who gave you that info, then you proceeded to not do that.

Makes perfect sense.

Although I would prefer the main kernel on top of the list, it’s nowhere near as important as having the OS boot with the current kernel by default. List order and boot order are not one and the same thing, and although they should coincide for sheer logical order keeping, is not a guaranty that that is how it works inside the program!

Again, it used to always boot to the main kernel by default, now it boots to the LTS by default, and that is what really counts, not which order they are in the list! I will change the boot order as to the post provided but that will not change it for all who install EandeavorOS nor does it explain why if installing an optional LTS it becomes the default kernel the system boots to, nor justify it.

Also if the LTS kernel is only optional, not an “either or” thing, then the main kernel should absolutely be the default, and the alternative option an option! No need for a philosophy laws of logic course!

The fact that is optional is irrelevant. Honestly, we would probably ship the LTS kernel by default if we could. The reason we can’t, is that people with very new hardware won’t be able to boot with the LTS kernel as it ages.

We aren’t setting a default kernel at all. That is why the topmost entry is booted by default, that is how systemd-boot works. We could set a default, but I don’t share your belief that we should. If you, as the end user want to set the default then that is great, set it to whatever you want but we don’t want to do that.

No I asked how to change the order of the list because I wanted it to reflect the boot order, but the main kernel even though lower in the list was the default, and again: it was an aside, not the main point of my post, I had more pressing issues to deal with that were much more important!

Just because it’s LTS doesn’t mean it’s forever hence the “L” which stands for latest, not “last decades”! Also, then according to yourself it is absolutely relevant, because with the LTS as the default, people with newer hardware will be booting to a kernel that can’t deal with it, and have problems they may not know how to deal with! I don’t have any hardware issues myself, but I do wonder why LTS is the default now after a fresh install, which it shouldn’t be! Even if I can follow the instructions and change it, that also shouldn’t be the default one has to go through after installing Endeavour OS, because that will put a mark on it’s good reputation!

If I am the only one this has happened to then there must still be a reason right? So it’s not over until the fat lady sings, or gets killed by the disco ball dropping on her head!

No matter who made it so, why is the LTS the default now when it didn’t used to be, if it is not the best option; and I don’t care who made it so as much as why it is so and that it gets fixed! You didn’t make systemdboot make LTS the default, and I didn’t accuse you of it, my coming here and saying it started after a fresh install is for timeline sake and exactly what happened, how is that finger pointing at you?

Now keep in mind YOU are the one who said you made that part of the installer… and decided on the list order, and YOU are also the one saying systemd follows that order, and so then YOU are the one who made it prefer the LTS kernel over the current one, right? Correct me if I am wrong, but that’s exactly what I am getting from everything you said so far, which means you are blaming yourself, while absolving yourself, and without even being accused of anything in the first place! PLEASE MAKE IT MAKE SENSE!!!

I just installed the OS rebooted, and got the LTS kernel, and again, and again until I got pissed at only having one working monitor, and cut the power to force a boot menu to where I saw it default to the LTS kernel. I chose the current one, and both monitors worked, which will work for me now until I manually change the boot order, and then install the nvidia580xx, and then I can see if I get both monitors in LTS too (not a priority), and overall better performance in Inkscape where it’s showing to be a big problem.

I don’t only want to change the default boot option for myself, but for anyone else who may encounter the problem, as I cannot imagine it’s chosen by a random generator and I just so happen to be the only one with the LTS kernel as the default, meaning others will encounter this problem too, possibly some with new hardware where it will cause major problems (probably not given the GPU and RAM prices), and if it isn’t the best option, then it needs to change no matter where the problem originates!

EndeavourOS wiki page on systemd-boot; see the section on How to change the default entry to boot to specify a kernel:

https://discovery.endeavouros.com/installation/systemd-boot/2022/12/

Arch wiki page on systemd-boot, cued up to the section on Loader_configuration; see the section Remember lasr entry to have systemd-boot remember the last kernel you booted into:

https://wiki.archlinux.org/title/Systemd-boot#Loader_configuration

Please also read the Note at the top of the Arch wiki page, to prevent confusion about the esp partition mentioned in the path to the config file.

And BTW:

Actually, the L stands for “long” - LTS is Long Term Support.

1 Like

Super idea even if it changes with a new kernel, as it’s done so easily! Maybe we can get the Systemd people to make it so that after a [d] one can also press a [p] for the permanent option!

How far down on the page is that info?

Although the Arch Wiki is the most complete source of info on Linux, I cannot call it an instruction manual, nor a learning reference because it’s more of an archive in form of a listing telling you what everything is but not what it means!!! To get any thorough understanding of a subject, which it always urges me to do, you have a crap load of cross referencing to do and even general web searching to get an understanding of some of the terminology… then I end up with too many tabs of cross references for each page open and it turns into a wall of confusion! “I’m a doctor not a quantum physicist Jim”. By the time I get a few paragraphs in I feel like I’m better off just looking for a step by step how to and be done with it.

I have seen, bookmarked, and can follow the instructions on the EOSwiki, but the Archwiki page you cite is not at all instructional and not the one I mentioned: The one I read explained the actual procedure and said to chroot into the system, mount the esp or efi partition, and change the file in there with nano or vim… and reboot, other info I read, as well as the EOSWiki say I can do it without chrooting, but instead just editing the file in /efi, and running Dracut or mkinitcpo, all I did is mention the two conflict each other given the way the Arch instructions are written, and I am way past that, I know I can trust I don’t have to chroot, mount partitions and all that and instead use the quicker option. I didn’t need you to rehash it, because my issue is why for the very first time after installing EOS (and I did the very first version, Antergos before it) I now have the LTS kernel as the default kernel the system boots to, instead of the current kernel: Being able to change it doesn’t fix the boot order being different now, now does it?

BTW: Arch has no support, not even short term other than great self help documentation, and you are using ye’ olde RedHat’s version of the acronym: “Long Term Support”, not the other ones “Last Tested Stable”, or just “LaTest Stable” . Just because it’s an acronym doesn’t mean it’s letters are set to specific words or names… (no copyright or patent on acronyms, just lingual shortcuts), it can be one for several different wordings or even things altogether (A technology “Electron Spin Resonance”, a company ESR real estate Hong Kong, a colloquialism Extra Sensory Reception (in that case a pseudo-science I myself concocted based on a similar one…), and Linux/FOSS has a thing with acronyms often using reversed ones (GNU = GNU’s Not Unix) and re-imagined as tech evolves as needed or to suit such as LTS meaning a few things to almost the same means; a kernel you can count on, and a more recent one for Arch, as they didn’t used to deem any Kernel version as LTS but now do, and it differs from the one Debian/Ubuntu ships AFAIK… LaTest Stable is totally fitting Arch’s LTS kernel, Long Term Support isn’t.

2 Likes