#12644: MBR & stage1 do not handle boot partition passing for chainloading
(makebootable should not be required)
-------------------------------------------------+-------------------------
Reporter: mmu_man | Owner: axeld
Type: bug | Status: new
Priority: high | Milestone: R1/beta1
Component: System/Boot Loader | Version:
Keywords: chainload, partition, GRUB, MBR, | R1/Development
stage1 | Blocked By:
Blocking: | Has a Patch: 0
Platform: All |
-------------------------------------------------+-------------------------
Unlike GRUB, GRUB2, LILO, and most other MBR loaders, our own MBR sector
does not pass the selected partition info properly, and our stage1 loader
does not attempt to use it, which is why we require running makebootable
on install. But it should not be necessary.
Most MBR pass the selected boot partition entry in a register (ds:si) with
a flag set to let the chainloaded OS know about it. There is no reason not
to do it as well, as it would eliminate the need for makebootable.
This is not about BIOSes, buggy or not, since it's only the MBR which does
this, and except if the user does not install our own MBR or GRUB or GRUB2
or the many other MBRs which support this convention, it would just work
without makebootable.
We can still ship with makebootable just in case, but it shouldn't be
required anymore once this is fixed.
cf.
http://www.gnu.org/software/grub/manual/legacy/root.html#root
http://f.osdev.org/viewtopic.php?f=1&t=26015
http://forum.osdev.org/viewtopic.php?f=1&t=22470
http://forum.osdev.org/viewtopic.php?f=1&t=27371
http://forum.osdev.org/viewtopic.php?f=2&t=23227
http://stackoverflow.com/questions/17517813/grub2-chainloading-how-does-
it-pass-drive-number-and-partition-entry-point
--
Ticket URL: <https://dev.haiku-os.org/ticket/12644>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.