One limitation of the of the IDE
drive is that it was limited to about 520MB because the BIOS
can only access cylinders less than 1,024 because it uses a 10-bit value. Because DOS
accesses the hard disk through the BIOS, it, too, is limited to locations on the hard disk under this 1,024
The older IDE
controllers accessed the hard disk through the combination of cylinders, heads, and sectors per track. The problem
for the BIOS
is when the hard disk has more than 1,023 cylinders. So, to make the BIOS happy, EIDE
drives "lie" to the BIOS by saying that there are fewer than 1024 cylinders and more heads. (Often, the cylinders are
halved and the heads are doubled so that the number of blocks works out to be the same.)
If you have a hard disk that is used just for Linux, you can turn off this translation completely before you install and
its no longer an issue. However, if you have DOS
on the disk, this is a problem. Linux still gets the geometry from the BIOS
as it is booting. If the translation is on, it gets incorrect values for the physical layout on the hard disk.
However, until the kernel
is loaded, LILO still uses the BIOS,
therefore the Linux image must lie under this limit. The only way to ensure that this happens is to make the root
partition lie under the 1,024 cylinder
Another alternative is to leave the translation on but pass the correct geometry to Linux at the boot/LILO prompt.
You can even include them in lilo.conf so that you don't have to type them in every time.