To be succinct, I’ve wanted to to give Haiku a long term tryout for years but don’t because I can find no standard about how to setup multibooting for it. Period. EOL as reasons to not try Haiku go. There is a 2009 thread here about it. Really? In 15 years even the experts have been unable to put together a script to cover even MBR disk installation? In the age of speech to text, not even a decently vetted reasonable use case instruction page? There are many methods on the net and they don’t agree with each other. That makes your OS look arcane and unfinished. Having something that may damage access to other working OS’s is a significant deterrent to it’s initial use. It’s obvious the Haiku community cares greatly about it’s work and is justifiably proud of it, so this lapse is baffling.
Yes it is, unfortunately!
I tried to use reFind to boot HAIKU together with Windows.
I used GUID initialization and fat32partition for the UEFI boot.
Then I partitioned one with BeFS and the other I left for Windows:
But I cannot change the Boot order in the BIOS so I have to boot into HAIKU like this:
Telegram-Video of booting: Telegram: Contact @haiku_os
After lot of fiddling around I still cannot boot HAIKU with reFind!
Then more you fiddle around the more you will risk Windows not starting anymore!
It should work, but it does not!
There is a difference between not finding documentation and it not existing. Why are you searching on a forum for guidiance instead of chcecking the documentation?
TL;DR: presss the “Set up a boot menu” button in the installer…
If you have grub the installation guide tells you how to uss it aswell Installation Guide | Haiku Project
The OP asked about MBR, not EFI. For rEFInd you should also read the documentation: The rEFInd Boot Manager: Installing and Uninstalling rEFInd
Check the " Installing rEFInd Manually Using Windows " Section
Installing to MBR is trivial if the drive is supported!
If possible I would recommend MBR
But now everything will be UEFI
Yes I read the documentations and I tried lot of times!
And I am quite sure I followed the Install guide!
The problem ist the Hp-Notebook and its BIOS where you cannot change the boot order to efi!
That seems unlikely. Did you follow the last two steps using bcedit? You usually set the boot order from the OS, and not the efi settings.
If windows does not work maybe do this with a live linux usb.
Looking at those photos, I didn’t doubt, what the laptop vendor it is. I made experiments with my hobby OS on HP Probook 4530s and it’s the same.
When an OS makes its installation, it creates a load option (aka boot option) for its loader or for the loading intermediary, like refind or grub. And after the load option creation and adding it to the BootOrder variable, the UEFI Boot Manager should show its entry in the Load Option Menu. But at least some HP laptopts don’t do that. Your load option will be created and stored in the firmware storage, but the UEFI Boot Manager won’t show it. BootOrder variable reported (programmatically) is faked, it reports only BIOS Boot Specification ones (for hdd and cd dvd and probably for network), even Windows’ load option for bootmgfw.efi isn’t there. Instead of showing the list of load options with all the installed OS loaders, HP firmware shows that “OS Boot Manager” entry and shows there only either linux or windows. Note, Windows load option should read “Windows Boot Manager”, not “OS Boot Manager”.
I haven’t found yet a way to make HP Boot Manager show my load option.
You can check if load option for your loader for haiku has been created. Thanks to Windows’ bootmgfw.efi. It backs up all the firmware BootX variables. Boot in Windows, open regedit, go to BCD hive and look for values under listed elements. Writing from the phone, I don’t remember exact names, just inspect those GUID named elements, expanding to their subkeys and view their values, you will find refind’s or grub’s load option if it was created by the installation. You can find the path to it, description, that gives it a name to display, should the firmware show in its menu. If you find it there, be sure, it’s HP firmware screwed things up.
I’m positive it’s just a bug, not evil intention. There is also a graphic related bug there.
I wrote more on this here, read “using clo” page if interested (main → try) ANT
Hmm, in that case one might try installing refind in the fallback loader.
So: unzip the refind dir (the one containing refind_x64.efi) to BOOT/EFI
and then rename refind_x64.efi to BOOTX64.EFI
So your esp looks like tthiis
BOOT/EFI/BOOTX64.EFI (refind loader)
BOOT/EFI/
This won’t give anything, since it’s just a last resort way to find something to load, according to the UEFI specification. For non removable storages, it’s even optional and might be not tried. Uefi will happily load whatever 1st load option if present and it is. That efi\boot\bootx64.efi way is for the case when no other options are present. You don’t need that if the firmware implementation boot manager gives a “Load from file” menu option (as is here). This way the loader can be placed anywhere, not even on ESP, just any FAT partition, and can be named as you want.
The issue is with HP UEFI Boot Manager doesn’t honor installed BootX variables in showing its Load Option Menu. Also, the firmware fakes BootOrder variable showing only BBS (legacy) options. It’s a bug related to BIOS to UEFI transition. I am pretty sure, newer HP laptops don’t have this issue. Bruno, what’s your laptop model?
ah okay. I misunderstood. I thought you ment the firmware was not allowing to boot any self-defined loader entries.
It allows, you can do it via “load from file”. It doesn’t show entries defined for any OS loaders, anything in fact, even Windows’ one. It shows its own stuff (OS Boot Manager entry), BBS ones and other internal like the mentioned “Load from file”. It ignores BootX variables and fakes BootOrder variable. If you request the latter via the runtime GetVariable() service, it will show you only BIOS legacy options for hdd, dvd, network, like no OS is installed at all.
Can I open it in HAIKU?
Path to reFind:
On my HP PC reFind was working once, but after some reboot/update it does not work anymore! I gave up on this PC to get it multiboot!
I use F9 for boot HP now!
EDIT: I tried to open the BCD file with Koder and Genio, but cannot open it!?
It is a:
HP-PAVILION 17’
Model: 17-g142ng
You better inspect BCD in regedit. In general, any program, that understands registry format can be used. But note, the part of interest, BootX variables, that is, might be a volatile part, that are collected during Windows startup (to get them in the current state), so in order to reliably see the BootX database this way, you must boot into Windows and from there inspect them, using regedit.
As I can see, refind efi is placed in efi\boot\bootx64.efi (are you sure it’s a refind executable at all? placed this way, it can get easily overwritten by any 3rd party update, installation) that is as an “default boot behavior” case, which might add to the issue, since firmware might deem this as not what it should look for in the first place nor display in its menu and it might launch that automatically only if nothing else is present. You might try to do a fresh install of haiku, if it’s acceptable to you and try to make refind to not reside in this place, but rather in its own like say efi\refind\refind.efi or whatever they call it or use grub if it’s applicable. It might work because as can be seen, HP firmware GUI thinks it’s either linux or windows that may be installed, and knowing that linux uses grub, this might work. So, if you are up to installing that monstrosity, it might be a solution. But it’s only a guess, since so far, the thing known is that firmware of such HP laptops is absolutely clueless in what it should show as Boot Options.
Thst will not fix any efi issues…
Well, reinstalling that part that creates the load option could. refind, grub, any loader, that haiku uses for its integration with UEFI.
PS. I wouldn’t be surprised if that efi\boot\bootx64.efi is not refind’s anymore. Because knowing firmware implementations quirks, every OS and multi OS loader agents like grub place there a copy of its executable on any installation and update. Never should your loader be placed in the “default boot behavior” place in a multiboot setup.
You can do this fine… there is no reason to use this path in a efi setup if you automatically install stuff.
We don’t do anything like that…
either use efibootmgr from linux or use the fallback path.
In this case with the misbehaving efi just use the fallback path.
Please don’t tell people to just reinstall their OS, there is no magic in Haikus installer.
That place may and will be overwritten by 3rd party in a multiboot setup. That’s all I wanted to say. Since in bruno’s screenshots it’s put there. Windows will overwrite it, any other OS will.
As for “not telling to reinstall the OS”. I didn’t even mean that. I just am not familiar with how haiku performs its installation in UEFI environments, so I wrote that way. And I rectified, that I meant redoing the part of the integration with UEFI. personally, my haiku vm (pretty old one) is installed the BIOS way, since installing in UEFI failed then and I’m okay with having it as is.
I do not know where to look for the elements, but if I am not wrong there is no refind or other UEFI - Boot element than in efi/boot/windows/bootmgr.efi
I can change boot options to efi/boot/bootx64.efi and it will load the refind loader, but this is not helpful. If I could only change the bootorder to start the refind loader at start! Is it possible to add the refindloader to bootmgr.efi and use the Windowsloader?
Reinstalling will not change anything, because the efi files are on a seperate fat32 partition and HAIKU runs on its own BeFs partition!
Would a firmware upgrade of the BIOS (INSYDE Version: F60) help?
The HP Notebook runs very fast and boots fast too with HAIKU, not so with Windows 10 or 11! That is why I will never buy a HP product anymore if I need to use Windows on it!
Even, I bought a SSD drive and made a fresh Window and the HAIKU install on it,
HP crap will come back after some time with magic! You cannot kill the HP software in any way! I think the firmware is installing it after a new drive is used!
I do not know where to look for the elements, but if I am not wrong there is no refind or other UEFI - Boot element than in efi/boot/windows/bootmgr.efi
That’s it. Those GUID
named keys under the Object
key, they contain the backed up BootX
firmware variables as well. On your screenshot, you expanded the one, corresponding to bootmgfw.efi
, what is Windows’ boot manager.
To find refind’s one, you need to through all GUID
-ed keys. To filter out, those keys, that back BootX
variables, have the Description
subkey and that subkey has a variable, called FirmwareVariable
. Next, their Elements
subkey, has a subkey 12000002
, that has a string variable, telling the path to the .efi
file and a subkey 12000004
has its Description, it’s the text, that must be shown in the firmware Boot Option Menu. Given, that refind is located at efi\boot\bootx64.efi
, you should look for it under HKLM\BCD00000000\Objects\{SomeGuid}\Elements\12000002
FirmwareVariable
contains the corresponding BootX
.
This is what Windows’ Boot Manager sees when takes control over from firmware. It backs these vars in the ESP. If you can find the variable for refind, it’s present in the firmware storage. Whether the firmware respects this fact is another question.
I can change boot options to efi/boot/bootx64.efi and it will load the refind loader, but this is not helpful. If I could only change the bootorder to start the refind loader at start!
Tell me, is that OS Boot Manager
menu entry a submenu? Is it expandable (navigable) or clicking on it just launches the same loader? In other words, when clicking on it, can you see another list with “Windows Boot Manager” and “refind” entries? You say, you can change boot options to launch efi/boot/bootx64.efi
, how do you achieve this? Via “load from file”?
Is it possible to add the refindloader to bootmgr.efi and use the Windowsloader?
No, bootmgfw.efi
is a Windows boot manager, that only deals with starting other Windows installations (winload.efi files and other things like resuming etc). It’s not designed to start any efi file. But refind can probably launch bootmgfw.efi, given, that it is kind of multiloader. I didn’t use it. Have a look in its documentation, if it can, then it should provide a mechanism of adding payloads. Then just add bootmgfw.efi to it.
Would a firmware upgrade of the BIOS (INSYDE Version: F60) help?
Let’s see, my laptop is 2011, yours is … with i5 6th generation, so it’s? 2016? And their Boot Option handling still is the same mess. This is a rather obvious answer. They don’t bother fixing bugs in this old products.
Reinstalling will not change anything, because the efi files are on a seperate fat32 partition and HAIKU runs on its own BeFs partition!
Again, I meant reinstalling the efi loader agent (refind here), to make its Boot Option visible and recognizable by the laptop firmware.