Return to BSD News archive
Newsgroups: comp.os.386bsd.questions Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!howland.reston.ans.net!europa.eng.gtefsd.com!swiss.ans.net!newsgate.watson.ibm.com!watnews.watson.ibm.com!bocanews.bocaraton.ibm.com!portal.austin.ibm.com!awdprime.austin.ibm.com!radha From: radha@austin.ibm.com (Radha Krishnan) Subject: Re: [FreeBSD] Booting frm sd0 as default? Originator: root@worf.cet.austin.ibm.com Sender: news@austin.ibm.com (News id) Message-ID: <Cv3KA8.3qHu@austin.ibm.com> Date: Thu, 25 Aug 1994 15:27:43 GMT References: <miff.777745860@apanix.apana.org.au> <vanepp.777775284@sfu.ca> <Cv2vs7.HIH@tfs.com> Organization: IBM Austin Keywords: booting FreeBSD Lines: 97 In article <Cv2vs7.HIH@tfs.com>, julian@tfs.com (Julian Elischer) writes: > In article <vanepp.777775284@sfu.ca>, > Peter Van Epp <vanepp@fraser.sfu.ca> wrote: > >miff@apanix.apana.org.au (Michael Smith) writes: > >>I have 2 disks : one wd-style, with DOS alone. One sd-style, with > > >>I've tried changing > > >> part = unit = 0; > >> maj = (drive&0x80 ? 0 : 2); > > >>in /sys/i386/boot/boot.c to > > >> part = 0; > >> unit = 1; > >> maj = 1; > > > > > Try: > > > > unit = drive & 0x7f; > > part = 0; > > maj = (drive&0x80 ? 0: 2); > > > I've precisely these changes only; My setup is two SCSI drives, and OS2 Bootmanager on sd0 ( dedicated to DOS/Os2-2.1 with a spare to create a usable *BSD Partition, without disklabeleing the same! ). Just those changes in boot.c get me the boot-Manager, letting me boot off from sd(1,a)/386bsd without any problem or prompting. Just wanted to clarify that it works, atleast in case of SCSI drives hung off from 1742A. > the end result you want is to have from boot.c is: > maj=1 > part=0 > unit=1 > as you suggest > so as to trigger the 'tricky bit' in sys.c > > case 1: > dosdev = unit | 0x80; > unit = 0; > break; > > leaving you with: > dosdev == 0x81 (D:) > unit == 0 (sd or wd)0 > maj = 1 > > then in disk.c, the further transformation happens: > if( (maj == 4) || (maj == 0) || (maj == 1)) > { > if (dl->d_type == DTYPE_SCSI) > { > maj = 4; /* use scsi as boot dev */ > } > else > { > maj = 0; /* must be ESDI/IDE */ > } > } > which basically says: > for any kind of hard disk, select the major number > according to what the disklabel says it is.. > > so.. > > the end result is: > > maj==4 > part==0 > unit==0 > dosdev==1 > > theoretically, if you had two scsi, > wd1 would boot sd1 just fine.. > > > I have no idea why the change made by Mike Smith did not work. > but he's definitly on the right track.. > > julian > (I wrote a lot of this horrid code (but several years ago)). > Radha ------------------------------------------------------------------------------ Radha Krishnan Email: Radha@austin.ibm.com ( Work ) radha@krish.zilker.net ( Home ) ------------------------------------------------------------------------------