*BSD News Article 3909


Return to BSD News archive

Path: sserve!manuel!munnari.oz.au!uunet!bcstec!galileo!dmp3592
From: dmp3592@galileo.rtn.ca.boeing.com (Dean M. Phillips)
Newsgroups: comp.unix.bsd
Subject: Re: Endless boot cycle- suggestions?
Summary: Watch out for geometry translation
Message-ID: <1072@galileo.rtn.ca.boeing.com>
Date: 19 Aug 92 16:28:05 GMT
References: <Aug.14.12.34.42.1992.8037@action.rutgers.edu> <45240001@hpycla.kobe.hp.com> <Aug.18.17.41.42.1992.4915@action.rutgers.edu>
Organization: Boeing Commercial Airplane Group, Seattle
Lines: 45

A disk drive which does geometry translation will hopelessly confuse
386BSD.

Background:

MessDOS has a hard limit of 10 bits for a cylinder number.  This
prevents MessDOS from accessing cylinders beyond 1023.  Most large hard
disks have more than 1024 cylinders.

So, to make these disks useable with MessDOS, the disk drive
manufacturers invented geometry translation.  The way this works is the
drive says that it has more heads than it really does, and less
cylinders than it really does, so that the total number of sectors
comes out the same but with less than 1024 cylinders.  When MessDOS
asks for a particular track, sector, and cylinder, the drive silently
translates this to the real location.  "Brain damage begets brain
damage."

386BSD gets the geometry and its partition info from the partition
table and then TURNS OFF GEOMETRY TRANSLATION.  If geometry translation
was on in the first place, 386BSD will get hopelessly lost, fail to
find its disk label and panic.

Solution:

Make sure that geometry translation is turned off.  I was able to do
this by running setup, specifying drive type 47 and keying in the real
number of heads, etc.

If you don't know what your disk's real geometry is, you can find out
with a little hacking.  I will post a patch when I get mwrite to work.

Disclaimer:

Not all reboot cycles are caused by geometry translation.

On my system, it would still work with geometry translation if I let
386BSD have the whole disk.  This is because the disk label is located
on cylinder 0, head 0, sector 2 for both the real and the translated
geometry.
-- 
----------------------------------------------------------------------
#include <standard_disclaimer.h>
Dean M. Phillips                                        (206) 393-9333
Boeing Commercial Airplane Group            dmp3592@galileo.boeing.com