Drive Geometry -- confusion.

Malcolm Kay malcolm.kay at internode.on.net
Wed Oct 29 06:50:25 PST 2003


On Wed, 29 Oct 2003 22:20, nw1 wrote:
> FreeBSD 4.8-RELEASE-p13
> This document can also be viewed @
> https://69.3.136.141/freebsd/installation/geometry
>
> Install 4.8 from CD-rom
>
> Drive Geometry confusion.
> My BIOS allows me a very limited amount of settings when it comes to an
> HDD. The following are the only settings offered by my BIOS:
>
> Read Prefetch - [Disabled | Enabled] - set to (Disabled)
> Disk Bios Translation - [LBA | CHS | Disabled] - set to (LBA)
> Local Bus IDE Mode - [High Performance | Compatible] - set to (High
> Performance)
>
> Size - 8455 MB --Auto-detected-- This is actually an 80GB HDD model:
> WD800JB. (Unable to change the 'Size' setting.)
>
> The only other setting that could remotely be associated with any HDD's
> installed would be the 'boot order' of the devices.
>
> ... sysinstall main menu | Custom | Partition :
>
> Here's where I'm confused;  The following dialog message is printed:
>
> WARNING: A geometry of 155061/16/63 for ad0 is incorrect.  Using a more
> likely geometry.  If this geometry is incorrect or you are unsure as to
> whether or not it's correct, Please consult the Hardware Guide in the
> Documentation submenu or use the (G)eometry command to change it now.
>
> Remember: you need to enter whatever your BIOS thinks the geometry is!  For
> IDE, it's what you were told in the BIOS setup.  For SCSI, its the
> translation mode your controller is using.  Do NOT use a "physical
> Geometry".
>
> ## With the above two (2) paragraphs having been said,  All I have at this
> point is the physical geometry given by the WD800JB specs --which the above
> paragraphs are currently fobbing me to use.
>
> Lets press <enter> for OK and move further into this...
>
> We're in the FDISK Partition Editor where it states on the second line from
> the top: DISK Geometry: 9729 cyls/255 heads/63 sectors = 156296385 sectors
> (76316MB)
>
> If I understand correctly, the physical geometry of this WD800JB is:
>
> Cylinders = 16383
> Heads = 16
> Sectors/Track = 63

A simple calculation from these figures gives a total capacity of about 8.4Gb.
In no way are these figures real (or even equivalent) for an 80Gb drive. The 
problem is that the hardware/software does not have the bit capacity to 
recognise more than 16383 cylinders. The 80Gb corresponds roughly with the 
155061/16/63 figure.

In fact modern drives at the disk hardware level expect simple absolute sector 
number for addressing not CHS, and in fact there may be different numbers of 
sectors to a track dependent on its diameter. So the 155061/16/63 figures are 
only some sort of equivalent CHS used in translating CHS addresses to 
absolute sector numbers. In principle you could pretend the CHS geometry was 
almost anything you want so long as it allows translation of hypothetical CHS 
addreses to real absolute sector addresses.

The catch comes in the limitations of the bios/software/hardware registers to 
hold the CHS quantities. Using maxima for heads (255) and sectors (63) keeps 
the number of cylinders to a realisable value. Hence 9729/255/63 looks like 
the right choice.

Malcolm Kay



More information about the freebsd-questions mailing list