Return to BSD News archive
Newsgroups: comp.os.386bsd.questions Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.oz.au!ihnp4.ucsd.edu!news.cerf.net!mvb.saic.com!MathWorks.Com!news.kei.com!hookup!swrinde!howland.reston.ans.net!agate!tfs.com!julian From: julian@tfs.com (Julian Elischer) Subject: Re: [FreeBSD] Booting frm sd0 as default? Message-ID: <Cv2vs7.HIH@tfs.com> Keywords: booting FreeBSD Organization: TRW Financial Systems, Oakland, CA References: <miff.777745860@apanix.apana.org.au> <vanepp.777775284@sfu.ca> Date: Thu, 25 Aug 1994 06:38:31 GMT Lines: 84 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); > 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)). +----------------------------------+ ______ _ __ | __--_|\ Julian Elischer | \ U \/ / On assignment | / \ julian@tfs.com +------>x USA \ in a very strange | ( OZ ) 300 lakeside Dr. oakland CA. \___ ___ | country ! +- X_.---._/ USA+(510) 645-3137(wk) \_/ \\ v