The Top Ten Reasons Why Linux won't boot from hard disk.
If you use loadlin instead of LILO to boot, there are some other reasons. These seem to be the most popular.
10. Can't install Linux bootstrap loader in the Master Boot Record (MBR), but MS installer can. Hard disk drive sector zero is defective.
9. Didn't install the Linux bootstrap loader.
8. Didn't run LILO when installing or changing kernel.
7. No room in the partition containing /boot for map file and/or a backup copy of the boot sector.
6. vmlinuz (or bzImage) or System.map is defective or missing from /boot, or /etc/lilo.conf is clobbered or missing.
5. Your BIOS doesn't allow booting from secondary IDE hard disk drives, or at least from other than the first two IDE disk drives. Not all BIOS-es have this limitation, though.
4. You used MS Windows 98 fdisk or format, which replaced the previously installed boot sectors, Linux or other- wise. If you used the Windows 98 disk format program, you trashed the Windows 98 partition as well.
3. MS Windows had trouble or crashed, scandisk ran and replaced your dual boot setup in the Windows partition boot sector with its own privately cached copy.
2. vmlinunz (or bzImage) or System.map is at cylinder 1024 or higher, in part or entirely. Both the kernel and its map files must be entirely below cylinder 1024 unless you install LILO 21.4.3 (released May, 2000), or newer.
1. The Linux partition containing /boot isn't active. Ya gotta make each boot partition active when you partition or repartition the drive.