> > >         The standard boot partition selection softwre also works fine
> > > booting windoze OS's from other disks.  All you need to do is set the 
> > > "disk
> > > id" in the DOS MBR to the correct number, 0x81 for your second disk. 
> > > That's
> > > the only thing that MS doesn't do correctly whe installing the OS on the
> > > non-primary disk.  I used to do this a long time ago to boot FreeBSD of 
> > > the
> > > "C" drive and the other stuff off of "second C" drive.
> > 
> > I'll try that this weekend. Preumably I can just do this under FreeBSD
> > using fdisk?
> 
>       You cannot do it using fdisk.  I tonly manipulates the parition
> table poriton of the MBR.  The "bios device" number is in portion before
> the partition table.  I hesitate to just give an offset and say poke away,
> so I'd look for a disk editing tool like Norton Disk Editor.  That's what I
> used when I last did this a few years ago.

In the standard Microsoft way of doing things, the BIOS drive number
is recorded both in the MBR (sector 0 of the disk) and in the DOS
boot sector (sector 0 of the "fdisk partition").

A Microsoft-style MBR gets the drive number from the byte at offset
0 of the partition entry (field dp_flag of structure dos_partition
in /sys/sys/disklabel.h).  This is usually known as the "active
flag", and all standard fdisk utilities set this to 0x80 (corresponding
to BIOS fixed drive 0) when flagging a partition as active.

This can be patched by hand to some other value (eg. 0x81 for BIOS
fixed drive 1) but in a standard pre-Win95 OSR2 MBR this causes
problems, as the MBR code validates the partition table entries,
and will respond to the 0x81 with the message "Invalid partition
table" followed by a hang.

Reply via email to