Subject: Geometry goo
To: None <tech-install@netbsd.org>
From: Frank van der Linden <frank@wins.uva.nl>
List: tech-install
Date: 09/19/1998 00:25:46
Too bad that this discussion exploced while I don't have time to really
participate, but.. well, maybe it isn't so bad ;-) Anyway.

The largest part of the sysinst troubles (on the i386) is about
disk geometry. The main problem has been mentioned umpteen times, and
is how to couple a BIOS drive number to a NetBSD drive. To get this right,
it may be required to write something to the disk (a cookie), as
has been proposed elsewhere. Which sucks, but perhaps it's the only
solution. The geometry information (that is: BIOS drive N has geometry
CHS) is currently already determined by the bootblock, but there's just
no way to pull it out of the kernel at the moment. It's trivial to add
a sysctl for that. Or an ioctl, but that assumes that you've already
done the match in-kernel, or in the boot code.

Someone just needs to sit down and actually do this.

Another part is the "large mode" confusion. The term is nowadays used for
2 different things. There is "Large Mode" in the BIOS setup, which determines
how the BIOS drives the disk. Then there's "Large Mode" in the newest
fdisk, which installs an MBR that uses int13 extensions. Using "Large Mode"
in the BIOS setup is fine for NetBSD (or actually, just the boot part,
NetBSD couldn't care less later), or even better, use LBA mode in the
BIOS setup. However, the "Large Mode" in fdisk is a different thing
(related to the same geometry BIOS interface braindamge of course,
but different), and our bootcode doesn't handle it.

Again, this isn't that hard to do, the boot code needs to recognize the
"large partition" IDs and use the int13 extensions if available (well,
they should be if you have a "large" partition, or it won't work).

These 2 things just need to be done and we'll be much happier. Isn't
life simple? (no, don't answer that).

- Frank