*BSD News Article 4407


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel!munnari.oz.au!network.ucsd.edu!dog.ee.lbl.gov!hellgate.utah.edu!fcom.cc.utah.edu!park.uvcc.edu!ns.novell.com!gateway.novell.com!thisbe.Eng.Sandy.Novell.COM!terry
From: terry@thisbe.Eng.Sandy.Novell.COM (Terry Lambert)
Subject: Re: Booting 386BSD from second IDE drive?
Message-ID: <1992Sep2.155151.13601@gateway.novell.com>
Sender: news@gateway.novell.com (NetNews)
Nntp-Posting-Host: thisbe.eng.sandy.novell.com
Organization: Novell NPD -- Sandy, UT
References: <1992Sep1.154658.18258@motor.physiolmotor.physiol>
Date: Wed, 2 Sep 1992 15:51:51 GMT
Lines: 68

In article <1992Sep1.154658.18258@motor.physiolmotor.physiol> smg@physiology.oxford.ac.uk (Steve Gough) writes:
>
>I have installed 386BSD on a whole drive (which was surprisingly easy,
>thanks to the install program).  At the moment to switch between 
>booting DOS or BSD, I swap drive cables, change the CMOS drive parameters
>and reboot---there has to be an easier way!
>
>The FAQ mentions setting active partitions on a single drive, but
>nothing about booting from a second drive.
>
>Presumably I'd have to boot from a floppy and then load unix from
>the IDE drive.  Is there the equivalent of Sun's `b (,,)' monitor
>command?
>
>I also thought that reboot/shutdown/halt might offer a solution,
>but haven't found one yet.

	The problem with booting from other than the primary boot device is
not a result of 386BSD's boot code.  It is a problem with the BIOS boot
code, which can not be changed without burning new ROM's.

	One possibility is a multi-pull, multi-throw switch that you would
wire into the drive control cable (not the radial!) in order to change
device select.  If you have a "smart" controller, this won't work, as it
will allow queueing of requests to a device, and expect the radials to be
seperately latchable (ie: they won't be connected on the board, and thus
it matters which radial is hooked to which drive).  If it did work, you'd
flip a switch, and your primary boot device would change.

	Another possibility is dividing both OSes between both drives.  The
initial boot would always take place on a single drive.  This would require
that the DOS partition be left active on the secondary drive and that the
driver code be changed for 386BSD so that it could recognize the inactive
partition as being mountable.

	One potential "real" soloution is an extremely long (>512) master
boot record on the primary drive, or a floppy, which duplicates the ROM
code plus the normal master boot record code.  This would allow *apparently*
initial boot from other than the primary boot device.  There are several
problems with this: first and foremost, it would require that the active
partition contain the modified boot code.  A partition is required for this
because the new boot code will exceed the 512 limit on the MBR.  Second,
it will require modification of boot blocks that expect to boot an offset
on the active partition (ie: Interactive UNIX).  Third, it would would
require the ability to "save" the ID of the designated boot device somewhere
it wouldn't get overwritten before it could be read, and modification of
all boot code that made the assumption of booting from the primary device
to use this value to determine the pseudo-primary device (ie: DOS and
pretty much everyone else's boot code).

	The main problem is the auoto-selection of a boot device without
user intervention.  In order, this is: any boot code as a result of bus
reset (like a remote boot netork card or SCSI controller), The primary
floppy (drive A: for DOS folks), and the hard disk bootstrap (first drive
ID only).  A "Sun-like" soloution would work, but only if it were implemented
as part of this sequence (ie: in the PC ROMs).

	I know this isn't the answer you wanted to hear, but perhaps one
of the options above will work for you.


					Terry Lambert
					terry_lambert@gateway.novell.com
					terry@icarus.weber.edu

---
Disclaimer:  Any opinions in this posting are my own and not those of
my present or previous employers.