Hi, I've searched high and low for a solution and at this point all I have left is asking this question. The problem is I have 2 OS's that boot through systemd. I want to be able to boot into them both with refind. Is there a way to: add two manual boot stanzas; that both point to systemd-bootx64.efi; and pass an option to systemd to change its default boot order. I'm really just a power user who likes to poke around at best, so I'm sorry if this post is really off base.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
That sounds like a real Rube Goldberg way of booting. You could probably do it, although I haven't looked at systemd-boot in a while, so I don't know what it takes in the way of boot options, so that could be a stumbling block. Beyond that, though....
Why involve systemd-boot at all? (Or why use rEFInd at all if you prefer systemd-boot?) Both rEFInd and systemd-boot are EFI boot managers. rEFInd can do some things that, the last I heard, systemd-boot can't do (auto-scanning for a wide variety of boot loaders, a graphical UI, redirect to BIOS/CSM/legacy-mode boot loaders, etc.), but if you don't need these things, you can pick either rEFInd or systemd-boot; there's likely to be no benefit to using both of them. Booting through both of them will slow down the boot process and creates more possibilities for things to go wrong.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yeah, my own ignorance is definitely one of the problems here. I'm not surprised by that, lol. First, the reason to do it at all is that it seems like 2 distros I run use systemd to initialize the system whether I want the loader or not, right? I'm not aware that I always have the option of cutting the loader out of the equation.
Solus, specificially, only boots through systemd-....efi. No other .efi files have ever worked for me, nor have I ever found a workaround. Pop apparently might be just fussy enough about whether other loaders apply all the right flags to the kernel during boot that it might be causing problems for me. I was on Reddit earlier today trying to figure out a different problem, and it would simplify the number of things I have to understand to do it the (ridiculous) way I raised here. I hope that gives a window into the thought process here. Again, part of the problem here is the info being filtered through someone who is incompetent; I am well aware and I am well and truly sorry. 😂 I hope at least this is amusing enough to counteract the frustration of my request. 😂
So, please help me be clear on the point here.... My answer lies toward learning more about the boot process so I can cut systemd-boot out of the process entirely?
Oh, and my reason for not just using systemd comes down to good ol' fashioned hubris and vanity. I like rEFInd, so my goal is to use it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
First, understand that there's a difference between systemd and systemd-boot. The former is a Linux tool for bringing up critical system components (the X Window System, various servers, etc.). Although it's possible to replace that with another system initialization tool, doing so can be difficult if the distribution was built with just one system initialization tool in mind. By contrast, systemd-boot is a boot manager. Despite its association with systemd, systemd-boot is much easier to replace. Systemd-boot didn't even start as strongly affiliated or branded with systemd; it used to be known as Gummiboot. The systemd developers, though, have been trying to absorb more and more of the critical Linux startup features into their own project as possible, and managed to swallow up Gummiboot in the process. They are distinct, though, and systemd definitely does NOT rely on systemd-boot for anything really important.
In any event, once a Linux distribution is installed and booting, you should be able to run rEFInd's refind-install script from that distribution and the resulting rEFInd menu should boot the distribution without using whatever boot loader or boot manager it set up. In the case of a dual-boot setup, you might then need to boot into the second distribution and run the mkrlconf script that came with rEFInd to set up a configuration file; or the second distribution might boot directly from rEFInd even without that step. (It depends on how each distribution was installed and what sort of kernel command-line options each distribution's kernel requires.) This is all covered in detail in the rEFInd documentation:
Yooo, thank you for taking the time to lay that all out for me! I've encountered (probably) all the info you shared above multiple times, including spending a lot of time in the rEFInd documentation over time, but I never put the bits together. You just synthesized new understanding for me very nicely by explaining it that way. I'm very grateful. Thanks very much! :D
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi, I've searched high and low for a solution and at this point all I have left is asking this question. The problem is I have 2 OS's that boot through systemd. I want to be able to boot into them both with refind. Is there a way to: add two manual boot stanzas; that both point to systemd-bootx64.efi; and pass an option to systemd to change its default boot order. I'm really just a power user who likes to poke around at best, so I'm sorry if this post is really off base.
That sounds like a real Rube Goldberg way of booting. You could probably do it, although I haven't looked at systemd-boot in a while, so I don't know what it takes in the way of boot options, so that could be a stumbling block. Beyond that, though....
Why involve systemd-boot at all? (Or why use rEFInd at all if you prefer systemd-boot?) Both rEFInd and systemd-boot are EFI boot managers. rEFInd can do some things that, the last I heard, systemd-boot can't do (auto-scanning for a wide variety of boot loaders, a graphical UI, redirect to BIOS/CSM/legacy-mode boot loaders, etc.), but if you don't need these things, you can pick either rEFInd or systemd-boot; there's likely to be no benefit to using both of them. Booting through both of them will slow down the boot process and creates more possibilities for things to go wrong.
Yeah, my own ignorance is definitely one of the problems here. I'm not surprised by that, lol. First, the reason to do it at all is that it seems like 2 distros I run use systemd to initialize the system whether I want the loader or not, right? I'm not aware that I always have the option of cutting the loader out of the equation.
Solus, specificially, only boots through systemd-....efi. No other .efi files have ever worked for me, nor have I ever found a workaround. Pop apparently might be just fussy enough about whether other loaders apply all the right flags to the kernel during boot that it might be causing problems for me. I was on Reddit earlier today trying to figure out a different problem, and it would simplify the number of things I have to understand to do it the (ridiculous) way I raised here. I hope that gives a window into the thought process here. Again, part of the problem here is the info being filtered through someone who is incompetent; I am well aware and I am well and truly sorry. 😂 I hope at least this is amusing enough to counteract the frustration of my request. 😂
So, please help me be clear on the point here.... My answer lies toward learning more about the boot process so I can cut systemd-boot out of the process entirely?
Oh, and my reason for not just using systemd comes down to good ol' fashioned hubris and vanity. I like rEFInd, so my goal is to use it.
First, understand that there's a difference between systemd and systemd-boot. The former is a Linux tool for bringing up critical system components (the X Window System, various servers, etc.). Although it's possible to replace that with another system initialization tool, doing so can be difficult if the distribution was built with just one system initialization tool in mind. By contrast, systemd-boot is a boot manager. Despite its association with systemd, systemd-boot is much easier to replace. Systemd-boot didn't even start as strongly affiliated or branded with systemd; it used to be known as Gummiboot. The systemd developers, though, have been trying to absorb more and more of the critical Linux startup features into their own project as possible, and managed to swallow up Gummiboot in the process. They are distinct, though, and systemd definitely does NOT rely on systemd-boot for anything really important.
In any event, once a Linux distribution is installed and booting, you should be able to run rEFInd's
refind-install
script from that distribution and the resulting rEFInd menu should boot the distribution without using whatever boot loader or boot manager it set up. In the case of a dual-boot setup, you might then need to boot into the second distribution and run themkrlconf
script that came with rEFInd to set up a configuration file; or the second distribution might boot directly from rEFInd even without that step. (It depends on how each distribution was installed and what sort of kernel command-line options each distribution's kernel requires.) This is all covered in detail in the rEFInd documentation:https://www.rodsbooks.com/refind/linux.html
Yooo, thank you for taking the time to lay that all out for me! I've encountered (probably) all the info you shared above multiple times, including spending a lot of time in the rEFInd documentation over time, but I never put the bits together. You just synthesized new understanding for me very nicely by explaining it that way. I'm very grateful. Thanks very much! :D