Boot loader messages
--------------------

The boot loader generates three types of messages: progress and error 
messages while it is loading, messages indicating disk access errors, and 
error messages in response to invalid command-line input. Since messages of 
the latter type are usually self-explanatory, only the two other categories 
are explained.


LILO start message
- - - - - - - - -

When LILO loads itself, it displays the word "LILO". Each letter is printed 
before or after performing some specific action. If LILO fails at some 
point, the letters printed so far can be used to identify the problem. This 
is described in more detail in the technical overview.

Note that some hex digits may be inserted after the first "L" if a 
transient disk problem occurs. Unless LILO stops at that point, generating 
an endless stream of error codes, such hex digits do not indicate a severe 
problem.

  ()  No part of LILO has been loaded. LILO either isn't installed 
    or the partition on which its boot sector is located isn't active. 
   L  ...   The first stage boot loader has been loaded and started, 
    but it can't load the second stage boot loader. The two-digit error 
    codes indicate the type of problem. (See also section "Disk error 
    codes".) This condition usually indicates a media failure or a geometry 
    mismatch (e.g. bad disk parameters, see section "Disk geometry"). 
   LI   The first stage boot loader was able to load the second stage boot 
    loader, but has failed to execute it. This can either be caused by a 
    geometry mismatch or by moving /boot/boot.b without running the map 
    installer. 
   LIL   The second stage boot loader has been started, but it can't load 
    the descriptor table from the map file. This is typically caused by a 
    media failure or by a geometry mismatch. 
   LIL?   The second stage boot loader has been loaded at an incorrect 
    address. This is typically caused by a subtle geometry mismatch or by 
    moving /boot/boot.b without running the map installer. 
   LIL-   The descriptor table is corrupt. This can either be caused by a 
    geometry mismatch or by moving /boot/map without running the map 
    installer. 
   LILO   All parts of LILO have been successfully loaded. 


Disk error codes
- - - - - - - -

If the BIOS signals an error when LILO is trying to load a boot image, the 
respective error code is displayed. The following BIOS error codes are 
known:

   0x00   "Internal error". This code is generated by the sector read 
    routine of the LILO boot loader whenever an internal inconsistency is 
    detected. This might be caused by corrupt files. Try re-building the 
    map file. Another possible cause for this error are attempts to access 
    cylinders beyond 1024 while using the LINEAR option. See section "BIOS 
    restrictions" for more details and for how to solve the problem. 
   0x01   "Illegal command". This shouldn't happen, but if it does, it may 
    indicate an attempt to access a disk which is not supported by the 
    BIOS. See also "Warning: BIOS drive 0x may not be accessible" 
    in section "Warnings". 
   0x02   "Address mark not found". This usually indicates a media problem. 
    Try again several times. 
   0x03   "Write-protected disk". This should only occur on write 
    operations. 
   0x04   "Sector not found". This typically indicates a geometry mismatch. 
    If you're booting a raw-written disk image, verify whether it was 
    created for disks with the same geometry as the one you're using. If 
    you're booting from a SCSI disk or a large IDE disk, you should check, 
    whether LILO has obtained correct geometry data from the kernel or 
    whether the geometry definition corresponds to the real disk geometry. 
    (See section "Disk geometry".) Removing COMPACT may help too. So may 
    adding LINEAR. 
   0x06   "Change line active". This should be a transient error. Try 
    booting a second time. 
   0x07   "Invalid initialization". The BIOS failed to properly initialize 
    the disk controller. You should control the BIOS setup parameters. A 
    warm boot might help too. 
   0x08   "DMA overrun". This shouldn't happen. Try booting again. 
   0x09   "DMA attempt across 64k boundary". This shouldn't happen. Try 
    omitting the COMPACT option. 
   0x0C   "Invalid media". This shouldn't happen and might be caused by a 
    media error. Try booting again. 
   0x10   "CRC error". A media error has been detected. Try booting several 
    times, running the map installer a second time (to put the map file at 
    some other physical location or to write "good data" over the bad 
    spot), mapping out the bad sectors/tracks and, if all else fails, 
    replacing the media. 
   0x11   "ECC correction successful". A read error occurred, but was 
    corrected. LILO does not recognize this condition and aborts the load 
    process anyway. A second load attempt should succeed. 
   0x20   "Controller error". This shouldn't happen. 
   0x40   "Seek failure". This might be a media problem. Try booting again. 
   0x80   "Disk timeout". The disk or the drive isn't ready. Either the 
    media is bad or the disk isn't spinning. If you're booting from a 
    floppy, you might not have closed the drive door. Otherwise, trying to 
    boot again might help. 
   0xBB   "BIOS error". This shouldn't happen. Try booting again. If the 
    problem persists, removing the COMPACT option or adding/removing LINEAR 
    might help. 

If the error occurred during a write operation, the error code (two hex 
digits) is prefixed with a "W". Although write errors don't affect the boot 
process, they might indicate a severe problem, because they usually imply 
that LILO has tried to write to an invalid location. If spurious write 
errors occur on a system, it might be a good idea to configure LILO to run 
read-only (see section "Build-time configuration").

Generally, invalid geometry and attempts to use more than two disks without 
a very modern BIOS may yield misleading error codes. Please check carefully 
if /sbin/lilo doesn't emit any warnings. Then try using the LINEAR option 
(see section "Global options").


Other problems
--------------

This section contains a collection of less common problems that have been 
observed. See also section "Installation of other operating systems" for 
general remarks on using LILO with other operating systems. Some of the 
problems are obscure and so are the work-arounds.

  - If LILO doesn't go away even if you erase its files, format your Linux 
    partition, etc., you've probably installed LILO as your MBR and you've 
    forgotten to deinstall it before deleting its files. See section "LILO 
    de-installation" for what you can do now. 
  - For yet unknown reasons, LILO may fail on some systems with AMI BIOS if 
    the "Hard Disk Type 47 RAM area" is set to "0:300" instead of "DOS 1K". 
  - Some disk controller BIOSes perform disk geometry/address translations 
    that are incompatible with the way the device's geometry is seen from 
    Linux, i.e. without going through the BIOS. Particularly, large IDE 
    disks and some PCI SCSI controllers appear to have this problem. In 
    such cases, either the translated geometry has to be specified in a 
    DISK section or the sector address translation can be deferred by using 
    the LINEAR option. In a setup where floppies are not normally used for 
    booting, the LINEAR approach should be preferred, because this avoids 
    the risk of specifying incorrect numbers. 
  - OS/2 is said to be bootable from a logical partition with LILO acting 
    as the primary boot selector if LILO is installed on the MBR, the OS/2 
    BootManager is on an active primary partition and LILO boots 
    BootManager. Putting LILO on an extended partition instead is said to 
    crash the OS/2 FDISK in this scenario.

     Note that booting LILO from BootManager (so BootManager is the primary 
    selector) or booting OS/2 directly from a primary partition (without 
    BootManager) should generally work. See also section "Installation of 
    other operating systems". 
  - Windows NT is reported to be bootable with LILO when LILO acts as the 
    MBR and the Windows NT boot loader is on the DOS partition. However, 
    NT's disk manager complains about LILO's MBR when trying to edit the 
    partition table.
  - Some PC UNIX systems (SCO and Unixware have been reported to exhibit
    this problem) depend on their partition being active. See section
    "Partition table manipulation" for how this can be accomplished.
  - Future Domain TMC-1680 adapters with the BIOS versions 3.4 and 3.5
    assign BIOS device numbers in the wrong order, e.g. on a two-disk
    system, /dev/sda becomes  0x81  and /dev/sdb becomes  0x80 . This can
    be fixed with the following DISK section:
     disk=/dev/sda bios=0x81 disk=/dev/sdb bios=0x80
     Note that this is only valid for a two-disk system. In three-disk
    systems, /dev/sdc would become  0x80 , etc. Also, single-disk systems
    don't have this problem (and the "fix" would break them).
  - Some BIOSes don't properly recognize disks with an unusual partition
    table (e.g. without any partition marked active) and refuse to boot
    from them. This can also affect the second hard disk and the problem
    may only occur if the system is booted in a particular way (e.g. only
    after a cold boot).
  - On some systems, using LINEAR and COMPACT together leads to a boot
    failure. The exact circumstances under which this happens are still
    unknown.
  - If the kernel crashes after booting on a multi-processor system, LILO
    may have overwritten data structures set up by the BIOS. Try the option
    LARGE_EBDA  in this case.