Haiku Boot Manager hangs


#1

Dear Haikuers :slight_smile:

I cannot boot installed Haiku. I’ll try to describe the situation.
Machine: EeePc 4G with 2 GB RAM and HDD plugged to an additional
IDE port. Monitor is plugged to VGA port, keyboard and mouse to USB ports.

In computer repair shop someone was made a hardware
change so that machine can detect another HDD. I cannot tell
what exactly was done (one piece of wire on motherboard).

Before Windows XP bootloader (IDE Slave, BIOS says) was able to access
the entire HDD and boot Windows from it. The guy told me that without this
fix BIOS cannot detect another IDE device.

During POST if ESC is pressed brings the menu to choose from what
to boot (Hitachi HDD, Siliconmotion SSD and USB if plugged in).

Haiku boot perfectly from USB stick and brings the desktop. I gave the entire HHD and installed Haiku on it (see screenshot).
Then I ran Bootmanager and to prepare bootlader and saved the
menu on /dev/disk/ata/1/slave/raw (only choice). As well after installation I
ran: makebootable /dev/disk/ata/0/master/raw

After rebooting the machine bootlader renders 2 choice:
1 - Not a bootable partition (and then hangs, keyboard does not respond)
2 - boot Windows which was on HDD (WINDOWS BOOT MANAGER - of course complaining is could not start Windows, ).

What I have done is I took another USB stick and installed what is called
Super Grub2 Disk ISO and put on stick. When I boot from it, I get access
to Boot Manually -> Disks and Partitions (Chainload) -> (hd2) “Hitachi…”
If I choose this, I get Haiku booted from HDD.

If I could not ran command makebootable /dev/disk/ata/0/master/raw, this choice won’t let to boot Haiku with this Grub2.

  1. Can someone gave me the hint where to go and dig to get Haiku booted without booting USB Grub2 trick?

  2. Where Haiku Bootmanager in Haiku stores the choice what to boot?

Thanks in advance
!IMG_1197 IMG_1198 screenshot1


#2

Forgot to mention
Version: R1/beta1 (Revision hrev52295+96) x86_gcc2


#3

If I follow correctly:

  • your machine originally had only one mechanical hard drive that contained windows.
  • You took it to a shop to have a solid state drive installed in addition.
  • The shop had to modify a circuit to make this happen.
  • Windows is now on the SSD and you installed Haiku over the entire mechanical HDD.
  • You ran both BootManager and makebootable. And you are having boot problems. Computer boots fine when using GrUB.

Since you are running Haiku as the only system on one physical disk, there is no need to run BootManager or makebootable. BootManager will only currently benefit you as a boot menu for multiple partitions on a single physical disk. It can’t as of yet see multiple physical disks like GrUB can. The SSD is a separate physical disk. Besides, you overwrote BootManager when you ran makebootable. Also the installer makes the fresh install bootable by default. There is no need to run makebootable on a fresh install. It’s included with the installer for recovery purposes.

Did you try booting Haiku on a fresh install before running makebootable and BootManager? If not, I’d try starting fresh and skipping these two things as unnecessary in your case. I don’t see a reason for you to use either.


#4

Also, I have little experience running Haiku on a raw partition, meaning intializing the raw disk as one big partition. I’ve always made a partition table and created a new partition the size of the disk. I recommend doing it this way. If nothing else, it makes resizing the partition with gparted much easier if you later decide to split up the drive. There’s no easy way to do this without a partition table. Perhaps this may be part of your boot woes. I highly suggest using a partition table with one big partition instead of initializing the raw disk itself.

The only time I initialize a raw disk is when running as a guest in a VM, and I never use BootManager or makebootable in conjunction. And then it’s only when I’m in too much of a rush to do the extra step of creating a partition table and a partition.

I think your trouble is a trifecta of initializing a raw disk, running BootManager, and then running makebootable.


#5

On the screenshot I see you have formatted the whole disk (the Hitachi) as a BFS volume, without adding a partition table. This is known to cause trouble with some BIOS versions. I suggest creating an intel partition table on the disk, even if you install Haiku to a single partition inside it.

I also see your second disk has an EFI partition. If you are booting using EFI, you will need to install the Haiku EFI loader there (not needed if you boot using BIOS/legacy mode).


#6

Hi Jeremiah

Sorry, messed up quotation. I have as well tried to create another partition on that RAW partition of Hitachi HDD, formatted, installed Haku there and rebooted. Nothing. Now again the only way I can boot Haiku using USB stick with GRUB2


#7

Hi Adrien

Well, added another Intel partition on RAW partition, formatted and got Haiku installed on that - still non-bootable. Let me ask you - where in Haiku Boot Manager stores configuration file? It should be some sort of cfg text file where information of what to boot is kept?

Cheers


#8

No, there isn’t any configuration for the bootloader. Our boot process works like this (in BIOS mode):

  1. Boot sector loaded from MBR. We install one by default when creating an intel partition table. It just locates an active partition and loads its partition boot record. You can reinstall this using the writembr command, but this is not needed if you created the partition table using DriveSetup.
  2. Partition boot record (“stage 1”). We install it when you run Installer. It looks for haiku_loader in the partition and runs it. It can also be installed using makebootable (on the partition), but this is not needed if you use Installer.
  3. Boot loader (“stage 2”). This one displays the splash screen, loads the kernel, etc. It also can show the boot menu if you hold shift while booting.

In EFI mode, we skip the first two steps and compile stage 2 directly as an EFI executable.

You can replace step 1 using Grub in chainload mode, or any other bootloader. We provide Bootman, which allows to select which partition to boot. You could try to install bootman and see if you manage to get to the partition selection menu, which would mean this part is working at least.


#9

2Pulkomandy

Could you please to re-read what I wrote above. I have followed all instructions done to initialise and gave to Haiku the entire RAW partition (or after adding a secondary partition by your advice), formatted it, let packages installed. It’s not booting neither directly after BIOS offers from where to boot, nor by Haiku Boot Manager menu. I run makeboobtable /dev/disk/ata/0/master/raw - no result. I’ll repeat - adding a secondary partition and installing Haiku on that does not help and whole thing just hangs without error message. Now could you please to explain how to make it bootable?

Thank you in advance


#10

Doing this runs makebootable on the whole disk, which will destroy the master boot record if you have a partition table. As I said, if you use Installer, you don’t need makebootable. So don’t mess with it.

The possible problems I see:

  • You did not have a partition table (now solved)
  • You are not booting from the Haiku drive at all (BIOS limitation?)
  • You are booting from the Haiku drive but the MBR does not work (installing BootMan with the BootManager command or from Installer menu can help see if that’s the problem)
  • The MBR works, but something is wrong with your Haiku install (unlikely because this is a fresh install)

So, install BootManager and see if you manage to go to the list of OS there. This will make sure the BIOS and partition table are ok. Then we can proceed with debugging the next parts of the boot process.


#11

2 PulkoMandy

OK, as suggested, initialized whole disk as Intel Partition Map, created another partition on it, formatted, installed packages and did not mess up with makebootable. All seems correct. BootManager shows where to install boot manager, and highlighted disk seems right one too:

/dev/disk/ata/1/slave/raw

But when I proceed with next step editing the menu entries, I see that BootManager does not see the right disk/partition where Haiku is installed.
That menu entry (empty) points to wrong disk/partition and fails to find the right one. That is why I have asked you where this menu entries are stored by Haiku - to be able to edit them manually and point to right disk/partition.
In another words: can boot disk and where Haiku is installed be different disks? Have I made myself clear?

Where to install boot manager
1

What to boot
2

Thanks,
Cheers


#12

Hi,

Currently Bootman can only boot partitions on the same device. So you cannot install it on the silicon motion disk and boot haiku installed on the hitachi disk. You could set this up manually, but the information is not stored in a file, it is written directly to the first sectors of the drive, and in binary format.

You will have to use another boot manager. For example smart boot manager (http://btmgr.sourceforge.net/about.html)


#13

Thanks! Yes, you’re right - saw that too via DiskProbe, but can you tell me, will it be implemented?
Does it make sense to submit it as feature request or even as a bug report?


#14

https://dev.haiku-os.org/ticket/3545


#15

No and yes…


#16

Adrien,

OK, the ticket is quite old and full of very specific terminology, but is it technically difficult to implement it and expand the BootManager functionality? Am I such a rare beast with my machine?


#17

Well, I see that. Pretty bad.


#18

R1’s goal was originally to duplicate functionality of BeOS. BootManager as such fullfills this requirement. This extra feature is one of the the things that had gotten pushed off into the future to get other parts of the system polished for R1. I personally and patiently await it’s implementation as well. When I have multiple boot volumes across several physical drives, I use Grub for now.


#19

Note that the EFI bootloader can boot a Haiku partiton off of a different drive than the EFI partition is on. So, perhaps you should try using that instead.


#20

Is there a guide on doing this?