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.