Skip to content
This repository has been archived by the owner on Dec 4, 2020. It is now read-only.

bootloader: chainload support #1480

Closed
danboid opened this issue Sep 7, 2017 · 5 comments
Closed

bootloader: chainload support #1480

danboid opened this issue Sep 7, 2017 · 5 comments

Comments

@danboid
Copy link

danboid commented Sep 7, 2017

The FreeBSD head bootloader has chainloading support. Could this be imported into the TrueOS bootloader?

@Mrt134
Copy link
Contributor

Mrt134 commented Sep 7, 2017

We would need to investigate and experiment with it, which may be a bit of stretch right now. All the current contributors are stretched pretty thin at the moment, but it can go on the list. :)

@Mrt134
Copy link
Contributor

Mrt134 commented Sep 8, 2017

I brought this up internally with the core contributors. We looked at it and here's the response:

TrueOS fully incorporates the FreeBSD bootloader and does not use a different version or utility than what is available in FreeBSD. That being said, the project has moved away from supporting or troubleshooting non-EFI setups in expectation of FreeBSD doing the same. The chainloading aspects of the FreeBSD bootloader represent significant support trouble for the project while both the FreeBSD and TrueOS projects are moving away from supporting non-EFI configurations altogether. In this instance we're very much in sync with FreeBSD. Bottom line, this functionality is iffy at best and unlikely to be supported much longer in FreeBSD.

TrueOS does not put the FreeBSD bootloader into the master boot sector. You can play around with our installer and get access to the FreeBSD bootloader chainloading functionality apart from rEFInd, but that is not recommended by the core contributors as a viable long-term option and is unsupported by the project.

@Mrt134 Mrt134 closed this as completed Sep 8, 2017
@danboid
Copy link
Author

danboid commented Sep 10, 2017

I'm disappointed and a bit confused by your decision not to include chainload support. Why did FreeBSD recently accept chainload support into head if they weren't going to support BIOS/non-EFI and chainloading? It seems very unlike FreeBSD to do any of that to me and I still expect they will support non-EFI systems for years yet. If they have announced otherwise, please give me a reference for this.

I have tested the FreeBSD chainload code under FreeBSD 12 and it works fine to chainload GRUB on my BIOS-based i7 laptop. I have a number of major issues with TrueOS as a desktop UNIX and I would've liked to keep it installed as a secondary OS but dual booting it with Linux is too much hassle currently as I have to boot supergrubdisk off a USB stick to access my GRUB menu, which I can do easily using the FreeBSD 12 chainload feature. It turns out I want what Linux offers as a desktop OS more than I want good ZFS support.

I will continue to use FreeBSD on my NAS because of its superior ZFS integration but I am moving back to Linux on my laptop and as a desktop OS. I will continue to check back on TrueOS and I wish the project the best but I think its sad you are unnecessarily depriving users of older hardware (with single drives) of easy multibooting.

@Mrt134
Copy link
Contributor

Mrt134 commented Sep 11, 2017

I think there is a bit of a misunderstanding - TrueOS syncs with FreeBSD CURRENT with every release, STABLE or UNSTABLE. If chainload support is added to FreeBSD, it is added to TrueOS. There is no TrueOS bootloader. rEFInd is a boot manager that users can choose not to install. The FreeBSD bootloader is the default bootloader and backup boot manager, with our only difference being the ASCII "Horns" logo is replaced by an ASCII "TrueOS".

The idea the other (TrueOS) contributors are trying to express, and I'm having some difficulty relaying, is that they don't have the time or resources to troubleshoot old hardware or heavily customised user setups. The FreeBSD project generally supports older hardware and TrueOS is an extension of that. Again, we stay in very close sync with everything that goes into FreeBSD CURRENT. However, the TrueOS core contributors see a lot of time and effort in FreeBSD going into getting better support for EFI and newer hardware configurations, and less commits/effort going into supporting older hardware.

As one of the roles of the TrueOS project is to provide a testing platform for work that goes into FreeBSD CURRENT, our contributors want to spend more of their limited time and resources helping to troubleshoot and improve all the work FreeBSD contributors put into supporting new hardware. This helps both projects move forward to stay current with the rapidly evolving technology that is constantly being released.

That is not to say TrueOS rips out all support for older hardware. Again, we are exactly in sync with FreeBSD, except for something like OpenRC. If a user wants to tweak their install and get FreeBSD/TrueOS running on legacy hardware, that's great! The current contributors have prioritised their (very) limited time to troubleshooting newer hardware, so troubleshooting a specific problem with legacy hardware may have to be more of a community effort. However, the future could bring more contributors who want to help the TrueOS and FreeBSD projects support older hardware.

Sorry about the lengthy response, but I wanted to clarify the intent as best I could. There's no hard feelings if you go back to using Linux. Personally, I think that's one of the awesome things about the open-source world. Users have an incredible amount of choice to find a project that is exactly what they want, or grab the source code and tweak to their heart's content. Best of luck with your continuing open-source experiences!

@danboid
Copy link
Author

danboid commented Sep 11, 2017

Hi Tim

After you stating about the bootloaders being synced, I thought I best check as I'm running UNSTABLE. It turns out that the TrueOS bootloader does already include the chain command required to chainload GRUB etc - I've tested it and it works but you can only use it manually like so:

--From the TrueOS bootloader menu--

Push 2 (Configure Boot options)
Push 6 (Escape to boot prompt)
chain disk0p2:

So TrueOS UNSTABLE can manually chainload already but not in an easy, user friendly way. You say that the FreeBSD bootloader and the TrueOS bootloaders differ only in their ASCII artwork but that is not the case - their menus are laid out differently and, critically for this issue, the TrueOS bootloader does not show any chainload partitions as configured in loader.conf on its main/root menu. Under FreeBSD 12, all I have to do is push the 8 key on the top level bootmenu to make it chainload to whichever partition I have specified in loader.conf with a line such as:

chain_disk=“disk0p2:"

I would like to see the TrueOS bootloader act in a similar way, so that all I would need to do is push 4 (seeing as there are only 3 items on the top level TrueOS bootloader menu currently) to boot the first chain disk.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants