Hi there,
i’ve used the installer to put my USB memory stick beta-5 installation (that runs fine on the hardware in question) onto nonvolatile storage memory on a desktop computer (M.2 i think).
The partition was an extended, ext4, ~168GB, that was made by MX Linux (GParted) that is installed on the same machine.
I formatted the partition to befs from the Haiku installation software.
i had made the modifications to GRUB2’s config files prior to doing the installation. Though i found that Linux calls the partition nvme0n1p3 & Haiku calls it nvme0n1p2 . What effect this has on GRUB2 i do not know?
On trying to boot from the GRUB2 menu, it failed. I went back in via the Haiku USB stick & checked to see if the partition had been made bootable. it had not. So i made it bootable & tried to boot it up again, but still no go?
At this point i do not know what to do next? so any advice is most welcome. if you need specifictions from the machine i will endeavour to supply them for you.
I ran gdisk & it the partition was of course identified as a Linux one. So I changed it to BeFS = eb00 . it still wouldn’t boot.
Though i should mention that gdisk said that the partition was overlapping the adjoining partitions on each side. which is strange because i had some megabytes of empty space on each side.
So currently i’m using GParted to move the partition dead centre (free space wise) between the 1 genuine partitions on one side & the end of the available storage on the M.2 device.
Thus far i’ve seen no errors from GParted, so something screwy is going on here…
[handy@madder ~]$ sudo gdisk
GPT fdisk (gdisk) version 1.0.9
Type device filename, or press <Enter> to exit: /dev/nvme0n1p3
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************
Exact type match not found for type code 6100; assigning type code for
'Linux filesystem'
Exact type match not found for type code 7400; assigning type code for
'Linux filesystem'
Exact type match not found for type code 6B00; assigning type code for
'Linux filesystem'
Exact type match not found for type code 6500; assigning type code for
'Linux filesystem'
Warning! Main partition table overlaps the first partition by 34 blocks!
You will need to delete this partition or resize it in another utility.
Warning! Secondary partition table overlaps the last partition by
3490701972 blocks!
You will need to delete this partition or resize it in another utility.
Command (? for help): -t eb00
b back up GPT data to a file
c change a partition's name
d delete a partition
i show detailed information on a partition
l list known partition types
n add a new partition
o create a new empty GUID partition table (GPT)
p print the partition table
q quit without saving changes
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit
x extra functionality (experts only)
? print this menu
Command (? for help): t eb00
Partition number (1-4): 3
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): eb00
Changed type of partition to 'Haiku BFS'
Command (? for help):
made a directory via GParted, then booted haiku & formatted it & installed, made it bootable, made sure the /etc/grub.d/40… config file was pointing to the right drive/partition. also used gdisk to make sure the partition is id’d as haiku - eb00 according to the gdisk.
still won’t boot. it is likely cause i’ve got old & dumb…
Use DriveSetup, from the Haiku Installer usb disk. Delete the partition, and recreate it with the right type. After that, format the partition as BeFS and do the installation. Seems you have problems with the partitions settings, or with grub entries.
I will try to check how I configured the grub entries on a machine, but no promises of when. That machine needs a new psu.
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
Haiku on /dev/sda3
menuentry "Haiku" {
set root=(sda3)
}
/boot/grub/grub.cfg follows:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=1024x768
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_AU
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'MX 23.4 Libretto' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2e2ba9ca-7e15-4c42-8452-0fe9389cae82' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
echo 'Loading Linux 6.1.0-26-amd64 ...'
linux /boot/vmlinuz-6.1.0-26-amd64 root=UUID=2e2ba9ca-7e15-4c42-8452-0fe9389cae82 ro
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.1.0-26-amd64
}
submenu 'Advanced options for MX 23.4 Libretto' $menuentry_id_option 'gnulinux-advanced-2e2ba9ca-7e15-4c42-8452-0fe9389cae82' {
menuentry 'MX 23.4 Libretto, with Linux 6.1.0-26-amd64' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-26-amd64-advanced-2e2ba9ca-7e15-4c42-8452-0fe9389cae82' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
echo 'Loading Linux 6.1.0-26-amd64 ...'
linux /boot/vmlinuz-6.1.0-26-amd64 root=UUID=2e2ba9ca-7e15-4c42-8452-0fe9389cae82 ro
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.1.0-26-amd64
}
menuentry 'MX 23.4 Libretto, with Linux 6.1.0-26-amd64 (systemd)' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-26-amd64-init-systemd-2e2ba9ca-7e15-4c42-8452-0fe9389cae82' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
echo 'Loading Linux 6.1.0-26-amd64 ...'
linux /boot/vmlinuz-6.1.0-26-amd64 root=UUID=2e2ba9ca-7e15-4c42-8452-0fe9389cae82 ro init=/lib/systemd/systemd
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.1.0-26-amd64
}
menuentry 'MX 23.4 Libretto, with Linux 6.1.0-25-amd64' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-25-amd64-advanced-2e2ba9ca-7e15-4c42-8452-0fe9389cae82' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
echo 'Loading Linux 6.1.0-25-amd64 ...'
linux /boot/vmlinuz-6.1.0-25-amd64 root=UUID=2e2ba9ca-7e15-4c42-8452-0fe9389cae82 ro
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.1.0-25-amd64
}
menuentry 'MX 23.4 Libretto, with Linux 6.1.0-25-amd64 (systemd)' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-25-amd64-init-systemd-2e2ba9ca-7e15-4c42-8452-0fe9389cae82' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
echo 'Loading Linux 6.1.0-25-amd64 ...'
linux /boot/vmlinuz-6.1.0-25-amd64 root=UUID=2e2ba9ca-7e15-4c42-8452-0fe9389cae82 ro init=/lib/systemd/systemd
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.1.0-25-amd64
}
menuentry 'MX 23.4 Libretto, with Linux 6.1.0-13-amd64' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-13-amd64-advanced-2e2ba9ca-7e15-4c42-8452-0fe9389cae82' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
echo 'Loading Linux 6.1.0-13-amd64 ...'
linux /boot/vmlinuz-6.1.0-13-amd64 root=UUID=2e2ba9ca-7e15-4c42-8452-0fe9389cae82 ro
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.1.0-13-amd64
}
menuentry 'MX 23.4 Libretto, with Linux 6.1.0-13-amd64 (systemd)' --class mx --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-13-amd64-init-systemd-2e2ba9ca-7e15-4c42-8452-0fe9389cae82' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
echo 'Loading Linux 6.1.0-13-amd64 ...'
linux /boot/vmlinuz-6.1.0-13-amd64 root=UUID=2e2ba9ca-7e15-4c42-8452-0fe9389cae82 ro init=/lib/systemd/systemd
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-6.1.0-13-amd64
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
if [ "${grub_platform}" == "efi" ]; then
if [ "${grub_cpu}" == "x86_64" ]; then
true
menuentry "Memory Test (64-bit UEFI)" {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 2e2ba9ca-7e15-4c42-8452-0fe9389cae82
chainloader /boot/uefi-mt/mtest-64.efi
}
fi
fi
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
Haiku on /dev/sda3
menuentry "Haiku" {
set root=(sda3)
}
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
I’ll boot into the haiku USB stick & add more info in the next post. i am currently trying to boot haiku from a SATA HDD partition on which it is installed.
It detects and works with Haiku, is a graphical boot manager (even has a Haiku icon), and works well with Linux/MacOSX. I have never had issues with rEFInd, while grub is temperamental. Best of all, rEFInd can chainload grub so you have nothing to lose by installing rEFInd (which should be available with your Linux package manager).
You can see a video of rEFInd in action on my boxes with Haiku.