> > > 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.