Subject: Re: Help with >1024 cyl drive
To: Bill Studenmund <skippy@macro.stanford.edu>
From: John C. Hayward <johnh@david.wheaton.edu>
List: current-users
Date: 07/12/1995 16:27:23
On Wed, 12 Jul 1995, Bill Studenmund wrote:

> On Wed, 12 Jul 1995, John C. Hayward wrote:
> 
> > Dear NetBSDers,
> >    I am attempting to set up NetBSD on a i386 machine Packard Bell Pentium
> > with a Gig drive. Both the CMOS and NetBSD when probing see the drive as: 
> > 
> > 2099 cyl, 16 heads and 63 sectors/track
> > 
> > However both PFDISK and FIPS12 report:
> > 
> > 522 cyl, 63 heads and 63 sectors/track  
             ^- My mistake 0-63 heads => 64 tracks
> > 
> > My guess is that something is maping stuff in DOS to less than 1024
> > cylinders.
> > 
> > This disk must be usable both by DOS and NetBSD and presently we have
> > the disk partitioned for cylinders 300-522 (these are what DOS calls
> > cylinders).
> > 
> > Since the total number of sectors is off my a fair margin do I tell 
> > NetBSD to start at 63*63*300 (1190700) sector or do I assume the
> > mapping which takes place results in each "dos" cylinder starting
> > on an actual cylinder (at 4*300) 1200 cylinder (4 from ceiling of 
> > 63/16)?
> 
> It's a SCSI drive? If not, is it on an interface where the cpu has to
> tell the drive to seak to a track & read a sector, or just to read
> a sector off the drive w/ no control from the host? If the host has
> to tell it to step tracks, ignore what I'm about to write.
The drive is a ST31220A drive.  I am pretty sure it is an IDE drive.
It is on a Pacackard Bell 100MHZ Pent. with PCI bus.
... other discussion of why we should have to worry about the disk geometry....

I've tried several approaches all which failed.

We have the disk partitioned into DOS 0-299 "DOS" cylinders and NetBSD 
300-522 "DOS" cylinders.

First when installing we told it to use the "DOS" disk geometry (63 sectors
/track 64 heads/cylinder and 522 cylinders).  That produced several errors
of the kind:

... geometry failed status 0 error 0 ...

and some complaint about not being able to read the dos label.

Following that the partition table was fried and the boot record had been 
over written.  After rebuilding the partition table (and taking quite a while
to realize that the boot had been over written) and wrote the master boot
record we were able to reboot dos.

Next we installed using the BIOS/NetBSD disk geometry (63 sectors/track
16 head/cyl and 2099 cylinders).  Which produced similar errors as above.
We gave an offset of 1200 cylinders and size of 888 cylinders which should
not extend beond the end of the disk.  We interupted it before it re-wrote
the master boot record.

Finally we made the NetBSD partition into a dos extended partition and
copies contents of primary partition into the extended partition.  We then
used a partition editor to change the type of the partitions making the
second partition the primary one and the first the extension.  For some
reason the "system" was unknown and we could not boot DOS off the second
partition.  The idea here was to ultimatly make the NetBSD partition the
first partition.

After that error when using the partition editor to change the partitions
back it recoginized the second partition as a DOS extension but the 
primary dos partition had an unknown system.  We then formated the C drive
(first partition) and copied back the D drive (second partition) and
we could boot DOS again.

Could someone shed light on what the geometry errors we are getting 
indicate and how we might get arround it?

It might be that the 1024 cylinder limit possibly used by the BIOS when
booting is causing problems.  If this were the case I may need to split
the partitions so the first partition is less than 1023 cylinders.

johnh...