*BSD News Article 27541


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!yoyo.aarnet.edu.au!news.adelaide.edu.au!basser.cs.su.oz.au!news.cs.su.oz.au!harbinger.cc.monash.edu.au!msuinfo!agate!doc.ic.ac.uk!uknet!EU.net!Germany.EU.net!netmbx.de!zrz.TU-Berlin.DE!wolf
From: wolf@prz.tu-berlin.de (Thomas Wolfram)
Newsgroups: comp.os.386bsd.questions
Subject: Re: Help! I cannot use os-bs on 1.7 Gig drive.
Date: 19 Feb 1994 15:11:15 GMT
Organization: TUBerlin/ZRZ
Lines: 97
Message-ID: <2k5a6j$1lb@brachio.zrz.TU-Berlin.DE>
References: <klee.760727150@imagen> <prang.760973711@du9ds4> <klee.760995005@imagen>
NNTP-Posting-Host: midlum.prz.tu-berlin.de
X-Newsreader: TIN [version 1.2 PL2]

Kanghoon Lee (klee@imagen.com) wrote:
> prang@du9ds4.fb9dv.uni-duisburg.de (Juergen Prang) writes:

> >klee@imagen.com (Kanghoon Lee) writes:

> >I guess, the problem is that OS-BS uses BIOS's Int13h to access the disk containing
> >the bootcode.

This is true. But I have to correct a little...


> > For this reason its disk access capabilities are limited to a maximum
> >of 1024 cylinders / 16 heads / 63 sectors per track.

These limits (caused by IBM when they thought about the number of
bits to spend for the cylinders/heads/sectors input parameters for the
BIOS-int13h function - in 1980 or so) are 10 bits for the cylinders
(= 1024 cylinder), 8 bits for the heads (= 256 heads) and
6 bits for the sectors (= 63 sectors, because the first sector
number defined by IBM is 1 not 0). This is equal to a maximal
disk size of 7.875GB.

But because of compatibility to the ST506 interface IDE disks are limited to
16 heads. So for IDE the *BIOS* limit is 1024 cylinder, 16 heads, 63 sectors
which is equal to a maximal disk size of 504MB.

As for SCSI: most adapters like 1542B... implement a mapping scheme
of 64 heads and 32 sectors for the access through BIOS int13h. So sectors
below 1024 cylinders, 64 heads, 32 sectors can be accessed using the BIOS
int13h function on SCSI. And this is equal to a maximal disk size
of 1GB.

(Some new adapters allow using of other sector mapping schemes, which
allows accessing bigger disks through the BIOS.)


> >So your partition boundary has
> >all its parameters to lie under these maxima.

The only thing which OS-BS loads from a partition is the first sector
of it which is the operating system boot sector (and in case it's
a logical partition inside an Extended partition it needs also
access to the Extended partition's first sector). So it's possible
to boot an operating system from a partition which exceeds the 1024
cylinder boundary as long as the first sector of it lies below
cylinder #1024 so that OS-BS can access its first sector using the
BIOS.

But there might be a problem creating such a partition because the ending
(as well as the starting) location of a partition - that means
cylinder/head/sector specifications - are recorded in the partition
table using the above described bit-field widths (10/8/6 bits).
But there is also a 32 bit field for every partition in the
partition table which contains the absolut number of sectors
of that partition. A smart operating system could use this field
on booting to determine the partition size.
I don't know how NetBSD implements this.


> >Once NetBSD is booted it is independent
> >of these restrictions.

This is true for all operating systems which aren't using the BIOS
to access the disk (that means it doesn't work for DOS or for
OS/2 if you use the OS/2-int13 driver).


> >In case your disk geometry has more than 63 sectors per track or more than 16 heads
> >it may or may not be possible to let OS-BS boot NetBSD on a cylinder below 1024.

Same applies as I wrote above, if you have less then 1024 cylinders, but
more then 64 sectors or 256 heads OS-BS *can* boot from such a partition
as long as the first partition sector (= boot sector) is below this
boundary. And since partitions start usually on head #0, sector #1
this is no problem.


> I think you are right.  My disk has 3152 cylinders, 16 heads, 63 sectors per
> track.  When I use the pfdisk to list the geometry, it lists 1024 cylinders, 
> and I cannot change that.  When I install the NetBSD, with partition starting
> after the boundary, it does not boot at all.  For now, I will settle with
> the floppy DOS boot disk.  Thanks for all the help.

If you start the partition say on cylinder #1023 OS-BS should be able
to boot from it. If pfdisk doesn't allow you to create a partition
which exceeds the 1024 cylinder boundary then you could use
a disk editor an create such a partition by hand. But you should
only do that if you're somewhat familiar with the partition table.


Thomas
--
Thomas Wolfram        <thomas@aeon.in-berlin.de>    Germany:    0 30 31421171
PRZ TU Berlin         <wolf@prz.tu-berlin.de>        abroad:  +49 30 31421171
EANTC                 WWW:             http://www.prz.tu-berlin.de:2784/~wolf
_____________________________________________________________________________
_____S__I__C____T__R__A__N__S__I__T____G__L__O__R__I__A____M__U__N__D__I_____