[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

LILO boot problem (still!)



After trying  everything everyone suggested a couple of weeks ago I gave up and went on vacation. I've been back all week but now I have to deal with it.

My problem is this: when booting from the hard disk I get "LI" from LILO and nothing else. I thought that this problem was caused by the fact that I was using a large drive in a machine with an old BIOS.

Assuming that the problem was the large drive, the obvious suggestion that the LILO documentation (and several of you) made was to use the LINEAR option. That didn't seem to help.

So I found the LILO documentation (which btw is excellent!). It pointed me into running lilo with the following options:

	lilo -v -v -v -t

which produced the following output:

LILO version 17, Copyright 1992-1995 Werner Almesberger

Reading boot sector from /dev/hda1
Device 0x0300: BIOS drive 0x80, 64 heads, 527 cylinders,
               63 sectors. Partition offset: 0 sectors.
Merging with /boot/boot.b
Device 0x0301: BIOS drive 0x80, 64 heads, 527 cylinders,
               63 sectors. Partition offset: 63 sectors.
Secondary loader: 7 sectors.
Device 0x0301: BIOS drive 0x80, 64 heads, 527 cylinders,
               63 sectors. Partition offset: 63 sectors.
Boot image: /boot/vmlinuz-2.0.0
Device 0x0301: BIOS drive 0x80, 64 heads, 527 cylinders,
               63 sectors. Partition offset: 63 sectors.
Setup length is 9 sectors.
Mapped 1008 sectors.
Added Linux *
    <dev=0xc0,hd=1,cyl=67,sct=85>
    "ro root=301"
Map file size: 8192 bytes.

I read further into the LILO technical documentation and it said the following about the "LILO" letters printing during startup:

The boot sector is loaded by the ROM-BIOS at address 0x07C00. It moves
itself to address 0x9A000, sets up the stack (growing downwards from
0x9B000 to 0x9A200), loads the secondary boot loader at address
0x9B000 and transfers control to it. It displays an ``L'' after moving
itself and an ``I'' before starting the secondary boot loader. If a read
error occurs when loading the secondary boot loader, a two-digit hex code
is displayed after the ``L''. This results in an endless stream of error
codes if the problem is permanent. Displaying these error codes is disabled
if the build-time option {NO1STDIAG} is set.
...
...
...
The secondary boot loader displays an ``L'' after being started and an ``O''
after loading the descriptor table and the default command line. Before
loading the descriptor table, it checks, whether it has been loaded at the
correct location and displays a question mark if it hasn't. If the
descriptor table has an incorrect checksum, a minus sign is displayed.

So my impression is that LILO is failing either during the load of the secondary boot loader or starting the secondary boot loader. In case it was the later (assuming a corrupted secondary boot loader) I downloaded a new lilo and installed (twice) with the same results.

So now I am assuming that the problem occurs during the loading of the secondary loader. But why? /dev/hda1 is the first partition on the drive and is only 200MB. It can't be crossing the 1024 sector limit. Why is lilo showing BIOS drive 0x80 as having 64 heads, 527 cylinders and 63 heads (this calculates out to the about the actual drive size using 512-byte sector size)? Is this the problem? The BIOS is actually set up as type 47 (user) with 16 heads, 2111 Cylinders and 63 sectors.

Any hints on where to go from here would be greatly appreciated.

Thanks,

Al Youngwerth
alberty@apexxtech.com



Reply to: