When the system is booted, the BIOS reads sector 0 (known as the MBR – the Master Boot Record) from the first disk (or from floppy), and jumps to the code found there – usually some bootstrap loader. These small bootstrap programs found there typically have no own disk drivers and use BIOS services. This means that a Linux kernel can only be booted when it is entirely located within the first 1024 cylinders.
This problem is very easily solved: make sure that the kernel (and perhaps other files used during bootup, such as LILO map files) are located on a partition that is entirely contained in the first 1024 cylinders of a disk that the BIOS can access – probably this means the first or second disk.
Another point is that the boot loader and the BIOS must agree as to the disk geometry. It may help to give LILO the `
linear‘ option. More details below.