From owner-freebsd-hackers@FreeBSD.ORG Wed Oct 22 04:13:45 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6764C16A4B3 for ; Wed, 22 Oct 2003 04:13:45 -0700 (PDT) Received: from smtp.covadmail.net (mx05.covadmail.net [63.65.120.65]) by mx1.FreeBSD.org (Postfix) with SMTP id 5F20B43F75 for ; Wed, 22 Oct 2003 04:13:44 -0700 (PDT) (envelope-from strick@covad.net) Received: (covad.net 30229 invoked from network); 22 Oct 2003 11:13:39 -0000 Received: from unknown (HELO ice.nodomain) (68.165.100.161) by sun-qmail01 with SMTP; 22 Oct 2003 11:13:38 -0000 Received: from ice.nodomain (localhost [127.0.0.1]) by ice.nodomain (8.12.8p1/8.12.8) with ESMTP id h9MBDiDR001429; Wed, 22 Oct 2003 04:13:44 -0700 (PDT) (envelope-from dan@ice.nodomain) Received: (from dan@localhost) by ice.nodomain (8.12.8p1/8.12.8/Submit) id h9MBDhhw001428; Wed, 22 Oct 2003 04:13:43 -0700 (PDT) Date: Wed, 22 Oct 2003 04:13:43 -0700 (PDT) From: Dan Strick Message-Id: <200310221113.h9MBDhhw001428@ice.nodomain> To: hackers@freebsd.org cc: dan@ice.nodomain Subject: boot0/1 problems X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Oct 2003 11:13:45 -0000 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@covad.net