Configuration GRUB

Hi
I installed Haiku x86-64-b1 in dual-boot (ubuntu 18.04) with EFI.
And have trouble configuring grub to boot on Haiku.

I commented “GRUB_HIDDEN_TIMEOUT = 0”

I copied these lines of code into “40_custom” , because “grub-costumizer” does not see Haiku.
"# for EFI systems
menuentry “Haiku” {
load_video
insmod part_msdos
insmod chain
search --fs-uuid --set = root
chainloader ($ root) /EFI/BOOT/BOOTX64.EFI
}

whith “grub-custumiser” or “update-grub” in terminal, he tells me that there is an syntax error on line 256 = "search --fs-uuid --set = root " ,
I doubt that it is necessary to replace “uuid” and “UUID” by the good values, but which one corresponds to the haiku partition and which one corresponds to the haiku boot file?
Also the location of “BOOTX64.EFI” is different on my Ubuntu (/boot/efi/EFI/BOOT/BOOTX64.EFI).
I must change “chainloader” ?
If a good soul has the courage to explain it to me
Thank you

CC @kallisti5, he’s the one that wrote that guide.

Thank you
he will look at his next visit to the forum, I will not disturb him during Halloween

You might find the following discussion interesting:

I put the following in /etc/grub.d/40_custom

menuentry ‘Haiku’ {
insmod chain
set root=‘hd0,msdos8)’
chainloader +1
}

Thank “6foot3” , I read it later.

“Lanelester”
Thank , but I think it’s for BIOS system , i’m on EFI system.

search --fs-uuid --set=root XXXX-XXXX
chainloader ($root)/EFI/BOOT/BOOTX64.EFI

FTFY. Notice lack of spaces and added UUID number (which you need to replace, it will have this format).

2 Likes

I followed the link given by “6foot3” and solved some problem.
Now my “40_custom” is:

# for EFI systems

menuentry “Haiku R1B1” {
load_video
insmod part_msdos
insmod chain
search --fs-uuid --set = root AFE5-E0F8
chainloader ($ root) /boot/efi/EFI/BOOT/BOOTX64.EFI
}

When restarting, grub returns “invalid file”.
So there is better, but it’s not over.
It remains to be seen why he does not recognize BOOTX64.EFI

This part should not be there I think. This is where your partition is mounted, but there is not such directory on it. In other words “($root)/”=“/boot/efi/”.

I try, but it answers me:
“file not found”

For me it’s normal , I haven’t directory /EFI/BOOT under /.
The BOOTX64.EFI has been installed by Haiku at this address ( /boot/efi/EFI/BOOT/BOOTX64.EFI )during the Haiku installation .

What wrong ???

You need to install the EFI loader in your system EFI partition manually. The installer does not take care of this, yet. You can put it anywhere in your EFI partition, and then tell GRUB where it is so GRUB can execute it.