*BSD News Article 69033


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.cs.su.oz.au!metro!metro!munnari.OZ.AU!news.ecn.uoknor.edu!news.wildstar.net!news.sdsmt.edu!nntp.uac.net!news.tufts.edu!blanket.mitre.org!news.mathworks.com!news.kei.com!newsfeed.internetmci.com!news.dacom.co.kr!news.kreonet.re.kr!usenet
From: Minsung Kim <stair@chiak.kaist.ac.kr>
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: FreeBSD on second IDE drive
Date: Tue, 21 May 1996 21:55:02 +0900
Organization: Korea Advanced Inst. of Sci & Tech
Lines: 73
Message-ID: <31A1BD26.41C67EA6@chiak.kaist.ac.kr>
References: <slrn4q1m30.uu.bspring@j51.com>
NNTP-Posting-Host: stair-s.kaist.ac.kr
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.02 (X11; I; FreeBSD 2.1-STABLE i386)

Brian Springstead wrote:
> 
> I'm looking to install FreeBSD on a machine, but it will
> have to be on the second IDE drive (D: in DOS).  Someone
> told me that this isn't possible with FreeBSD.  Is he
> correct or incorrect?  I checked the FAQ and didn't find
> the answer.

FreeBSD can be installed and run from the 2nd IDE drive,
in which way I use.  In fact, FreeBSD can be on any drive.

However, below the FreeBSD drive must be "completely filled
with hard drives" in IDE chain.  For example, if you wish to
install FreeBSD on the master drive of 2nd IDE interface, then
1st IDE interface must have two IDE drives.  An inconsistency
between the kernel and the loader will occur if there's only one
drive on 1st IDE interface.  The following is the reason.

FreeBSD loader loads kernel by BIOS, whose drive numbering
mechanism tags sequential number starting from 128 on each hard
drive.  Then the master drive on 1st IDE i/f gets 128 and the
master drive on 2nd IDE i/f, on which FreeBSD will be installed,
gets 129.
Then the loader assumes that the BIOS drive number directly
correspond to the "wd" numbers, naming drive 128 wd0,
drive 129 wd1 and so on, and will instruct the loaded kernel
to change the root device to wd1.

However, the kernel doesn't access the IDE hard drives by BIOS,
and the actual drive that will be accessed by a wd number is
determined by the internal setup hard-coded in the kernel.  
The default setup is as followings:
(see /usr/src/sys/i386/conf/GENERIC)

wd0:  master HDD on 1st IDE
wd1:  slave  HDD on 1st IDE
wd2:  master HDD on 2nd IDE
wd3:  slave  HDD on 2nd IDE

So, kernel tries to change the root device to the slave HDD
on 1st IDE which is not present, and it panics.  (The correct
drive name is wd2 according to the internal setup of GENERIC
kernel.)

The problem can be solved by building a custom kernel, but
in order to build a kernel you must able to boot at least once,
So you must not make any room below your FreeBSD drive in IDE
chain.

My FreeBSD drive is the master on 2nd IDE and I have no drive
at the slave on 1st IDE.  So I had to temporarily put my FreeBSD
drive at the slave on 1st IDE, to install FreeBSD on it,
compile a custom kernel which recognizes the master on 2nd IDE
as wd1, put the FreeBSD drive back at the master on 2nd IDE
and reboot with the custom kernel.

> 
> Also is there a way of making a floppy boot disk that will
> automagicly boot to BSD without the user having to type
> in anything.  I know in Linux I can use "dd" to copy
> the kernel to the disk.  Does this work in FreeBSD?
> Is there another way?

Make a bootable MS-DOS floppy, copy /usr/mdec/fbsdboot.exe and
put the following line as the only contents of CONFIG.SYS:

INSTALL=A:\FBSDBOOT.EXE

-- 
Stair

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Kim, Minsung <stair@chiak.kaist.ac.kr>            CS Dept., KAIST