boot0/1 problems

Dan Strick strick at covad.net
Wed Oct 22 04:13:45 PDT 2003


I seem to have stubbed my toe on another nasty little bootstrap problem.
My Gigabyte motherboard AWARD BIOS passes the wrong drive number in the
%dl register when it invokes the MBR bootstrap program, boot0.
This forces me to configure the MBR bootstrap with the setdrv option.
The noupdate option must also be set because otherwise I risk writing
the MBR partition table back to the wrong disk and that would be a major
disaster.

Here is the problem: the boot1 program depends on the boot0 program
setting the active partition flag in the MBR partition table.  This
doesn't happen if the boot0 noupdate option is set.

The boot1 program always boots the active FreeBSD slice (or the first
FreeBSD slice if there is no active FreeBSD slice).
If you have multiple FreeBSD slices on a disk whose boot0 program is
configured with the noupdate option, YOU CAN ONLY BOOT ONE OF THE
SLICES.

I have release 4.9-RCx and 5.1 slices on the same disk.  If the 5.1
slice is active, the system wedges hard if I attempt to boot the
4.9-RCx slice.  If the 4.9-RCx slice is active, the system resets
if I attempt to boot the 5.1 slice.

This really sucks.

Can someone who knows how the bootx programs are supposed to work
verify that my understanding of the problem is probably correct?

Can someone suggest a workaround?

I don't have the option of installing the different operating systems
on different disks and I can't get the AWARD BIOS fixed.

Dan Strick
strick at covad.net


More information about the freebsd-hackers mailing list