Matt Hyne wrote:
> 
> I have been having trouble getting a machine to boot lilo (or anything 
> from HDD) after an install of RH7.3.
> 
> Lilo is installed (and I ran it again for good measure) but the only way 
> I can get linux to boot is to use the boot floppy I created at install 
> time.

LILO is a 16-bit program which only uses BIOS services.  So issues
like Linux support for the SCSI driver don't enter into the picture
at that stage of the boot process.

Your SCSI card should contain a boot BIOS, this is detected by the
motherboard's BIOS when the machine boots.  The motherboard BIOS will
call the SCSI card's BIOS to spin up the drive as the machine boots.
You should see the disk lights flash.

Later the motherboard BIOS will go looking for a bootable drive,
it will start with the motherboard (IDE) drives and, if there is
no bootable drive on that controller, try each of the controllers
on the ISA/PCI bus.  The SCSI controller's BIOS will provide the
motherboard BIOS with facilities to di disk I/O -- in this case
to read the partition table and the boot block.

LILO should be loaded from that boot block.  LILO will use calls
to the motherboard BIOS to do disk I/O.  If the LILO's I/O request
refers to the SCSI drive then the motherboard BIOS will call the
SCSI controller BIOS to satisfy that I/O request.

LILO will load the Linux image, and then jump to a particular
address in that image.  Linux will then be running in 16-bit
mode.  It will move to 32-bit mode, at which stage the 16-bit
BIOS calls are no longer accessible and Linux had better have
a 32-bit device driver 'module' for your SCSI controler handy
(usually in initrd, a initial RAM drive loaded by LILO along
with the Linux image).

   -------

Since when Linux boots from the floppy and can access the SCSI
disk we can assume that the SCSI controllr device driver module
exists and works.

So the most likely cause of failures from your description are:

  - The SCSI controller's BIOS is not activated.  You usually
    do this by pressing a magic key chord during the boot process,
    which enters a configuration dialogue.  The option might
    be called "boot BIOS" or "boot ROM".  You want it on.  You
    can only turn this on for one SCSI controller in your system.

  - Your controller actually has a DIP socket for a boot ROM,
    but no boot ROM is in the socket.  This is only likely
    if your controller is old.

  - You have exceeded the BIOS limitations on searching for
    a bootable drive.  You can only boot from the first two
    motherboard devices or the first two controller devices.
    So if you have a SCSI bus with 3 disks, the bootable disk
    had better not be the last SCSI disk discovered by the
    SCSI controller -- you influence the disk discover order
    by using the SCSI ID.

All this assumes that you have no SCSI issues.  Note the SCSI
bus settings from the running Linux system.  Configure the SCSI
controller BIOS to have the same settings.

Regards,
Glen

-- 
SLUG - Sydney Linux User's Group - http://slug.org.au/
More Info: http://lists.slug.org.au/listinfo/slug

Reply via email to