[CLUE-Tech] LILO Boot Problem

David Anselmi anselmi at americanisp.net
Wed Feb 12 11:08:33 MST 2003


Randy Arabie wrote:
[...]
> I found a lot of helpful info in /usr/share/doc/lilo/Manual.txt.gz
> 
> There was no mention of a "large" option there or in the man pages.  I
> tried "linear" but got the same results as with "lba32".  If you do not
> specify either, lilo assumes "lba32".
> 
> I added a section on geometry, which explicitly defines my HD's
> geometry.  That didn't make a difference.  I tried both the "linear" and
> "lba32" options with and without the geometry.

The problem you are having is that the first stage boot loader loads 
(out of the boot sector) and then can't find the second stage.  That's 
why you get just the "L" in "LILO".  There are two possibilities.

One is that your lilo.conf is updating the boot sector in your first 
partition (hda1) but your bios is booting off the MBR.  In that case, 
your MBR is out of date and doesn't work.  You can fix this by changing

boot=/dev/hda1

to

boot=/dev/hda

I'm not sure how the bios knows to boot off hda1 rather than hda (they 
both have boot sectors).  Perhaps it's the "bootable" flag in the 
partition table.  I always boot off the MBR so I don't worry about 
bootable flags.  In any case, change the above line, run lilo, reboot.

If that doesn't fix it, my guess is that your hda1 is larger than 1024 
cylinders and your bios can't address all of it.  Lilo uses the bios to 
load the second stage loader and the kernel and it does that by making 
bios calls to read disk blocks.

The standard fix for this is to make a boot partition within the first 
1024 cylinders (fdisk will show you cylinder numbers).  Another fix, 
since your bios seems to understand LBA might be to convince it to use 
LBA for your disk (it may not matter that the bios geometry doesn't 
match the label geometry, as long as the bios autodetects it and the 
size matches).

I haven't used grub, but if it is not limited to 1024 cylinders by the 
bios using it may be the easiest fix.

Finally, you might check the drive jumpers.  Last installfest we had a 
drive that seemed to be jumpered correctly but fdisk and the kernel were 
convinced it was 2GB, not 6GB.  Eventually we discovered that the jumper 
label was upside down compared to the jumpers so we didn't actually have 
it jumpered right.

Good luck and let us know what you find.  Come to installfest if you're 
still stuck.

> 
> I think my options are:
> 
>   --Repartition the disk, creating smaller partitions that the bios can
>   handle. Maybe a /, /boot, and /var (in addition to my swap).

It isn't partition size, but location at the front of the disk that matters.

As you say, boot floppies are not a bad option.  Be sure to change 
lilo.conf to say "boot=/dev/fd0" if you leave it that way so your floppy 
gets updated next time you change kernels.

Dave




More information about the clue-tech mailing list