What does all of this mean? For Linux users only one thing:
that they must make sure that LILO and fdisk
use the right
geometry where `right' is defined for fdisk
as the geometry
used by the other operating systems on the same disk, and for
LILO as the geometry that will enable successful interaction
with the BIOS at boot time. (Usually these two coincide.)
How does fdisk
know about the geometry?
It asks the kernel, using the HDIO_GETGEO
ioctl.
But the user can override the geometry interactively
or on the command line.
How does LILO know about the geometry?
It asks the kernel, using the HDIO_GETGEO
ioctl.
But the user can override the geometry using the `disk=
' option
in /etc/lilo.conf
(see lilo.conf(5)).
One may also give the linear
option to LILO, and it will store
LBA addresses instead of CHS addresses in its map file,
and find out of the geometry to use at boot time (by using
INT 13 Function 8 to ask for the drive geometry).
How does the kernel know what to answer?
Well, first of all, the user may have specified an explicit
geometry with a `hda=
cyls,
heads,
secs'
kernel command line option (see bootparam(7)).
And otherwise the kernel will guess, possibly using values
obtained from the BIOS or the hardware.