Ok, so here is something that has been really getting to me for years. In order to get Haiku to boot I have to install it incorrectly.
By this I mean, to the best of my knowledge using drive setup you should.
- Initialize the drive to Intel
- Partition the drive for Haiku
- Format the partition.
when ever I do it this way, Haiku never boots and I get “no active bootable partition” (Yes I did make it active when I created it)
Now, if I install doing the following
- Partition the for Haiku
- Format for Haiku
by skipping the initialize part I get a bootable Haiku install. I know there is some crazy, long winded command line to get it to work if I do it the correct way. But, WHY?? Why can’t I just install it like I am supposed to and get it to work. Why do I either have to skip a step or revert to some command line to fix it after installing it??? Why do I have to use a dd after installing it? Are we expecting new users to have to go through this?? I keep waiting for this to be fixed, been waiting for years now.
by the way I need help with this again. I know the command is dd. But I can’t remember how to use it. I am booting from a CD and want to boot from the HD.
Ok, I found the little thing on the installer under “Tools” and it works. So I am sorry for my mini rant. But I don’t think many users will know to do that.
I don’t have an empty HD to start a Haiku installation from scratch, but I think the boot-sector should by written by Installer automatically. If it’s not, please file a bug report.
I will do that. I need to test again to make sure I can recreate the steps to produce the problem.
This is supposed to work. There are several things involved in booting the system.
The MBR (master boot record) is a piece of code written at the start of the disk, just before the partition table. All the BIOS does is running this on boot. The MBR code will look for an active partition and read its PBR (partition boot record), and execute that.
The PBR in Haiku is the stage1 loader, it loads the stage2 loader from inside the partition, then executes it. The stage2 loader then loads the kernel, and from there the system runs.
Now how this is installed. Disks usually come with an MBR already written. It can either be a working one (which will look for the active partition PBR), or a "stub" one (typically this will display "failed to load operating system" or some similar message). When initializing a disk with the intel partitionning system, this is replaced with our version of the MBR. This is a standard one which will look for an active partition.
When creating a partition, you must set it to "active" in DriveSetup, otherwise the MBR would not find it. You say you did this, so this part should be ok. The installation of stage1 and stage2 on the partition is handled by Installer (stage2 is copied as a regular file, part of the haiku_loader package. Stage1 is installed with makebootable).
You can replace the master boot record in two ways from Haiku: using the command "writembr", or using BootMan. BootMan can be run from Installer and installs a more complex piece of code in the MBR (and a few more sectors). This one offers a boot menu where you can select which partition you want to boot. It doesn't need the partitions to be active.
I can think of only one case where you may need dd to manually fix things. It's one known bug with disks larger than 250GB, where DriveSetup will fail to write the partition table properly. This results in the MBR not finding the partitions, making the system unbootable. There is already a bug report for this. Of course it should be fixed, it is not our intention to ask users to use the command-line tools to get a working install.
Thank you for taking the time to explain. I will refrain from creating a new bug report as there seems to be one out there already.