LILO Error Codes When you first boot up a system with Linux installed on it, odds are that it will be using the LILO Boot Manager. Sometimes the boot process does not go smoothly and, as a result, only part of the letters of the LILO: prompt will show up on the screen (with the boot process coming to a halt). Below are the various LILO boot prompt's and their attendent problem, and solutions. L 1<=nn<=16 - Disk Error codes LI The second stage boot loader loaded but could not run. This could be caused by an incorrect geometry setting (hard drive parameters) or it could be caused by repositioning the file boot.b without reinstalling the loader (/sbin/lilo). LIL The second stage of the boot loader has started but cannot read the descriptor tables from the map file. This may be caused by either a physical defect of the hard drive, or the hard drive geometry is wrong. LIL? The second stage of the boot loader has loaded at the wrong address. This could be caused by an incorrect geometry setting (hard drive parameters) or it could be caused by repositioning the file boot.b without reinstalling the loader (/sbin/lilo). LIL- LILO boot manageer has found a corrupt descriptor table (from the map file). This could be caused by an incorrect geometry setting or it could be caused by repositioning the map file without resinstalling the loader (/sbin/lilo). LILO Success. J Press the key to see your choices. The LILO boot manager will start the first one by default. Error codes associated with the L LILO message 0x00 Internal Error Read error. Probable cause is an incorrect map file. 0x01 Illegal Instruction This message should not be displayed. 0x02 Address Label not found An error occurred reading the disk. 0x03 Disk is Write Protected This should not occur (unless you can find the hidden write protect tab on your hard drive! J ) 0x04 Sector not found Caused by incorrect geometry. If the boot disk is a SCSI disk, the kernel does not recognize the geometry data or the disktab file is faulty. In rare cases, this error is caused by the the compact flag in the /etc/lilo.conf file. 0x06 Change line active This is normally caused by opening and closing the disk drive door during the boot process. 0x08 DMA overflow Should not occur. 0x09 DMA transfer exceeds 64K limit Should not occur 0x0C Invalid Media This error message is by defective media. It should not occur. 0x10 CRC Error The data on the disk is faulty. Reinstalling LILO might help (to rewrite the sector). If this error occurs when booting from a hard disk, the hard disks bad sector list should be updated by running fsck. 0x20 Controller error Should not occur 0x40 Seek error This indicates that the disk may be faulty. 0x80 Timeout The disk drive is not ready (open door). -------------------------------------------- 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. ============================================ IDE Disk/CD-ROM Driver Parameters "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". "idex=" is recognized for all "x" from "0" to "3", such as "ide1". "hdx=noprobe" : drive may be present, but do not probe for it "hdx=none" : drive is NOT present, ignore cmos and do not probe "hdx=nowerr" : ignore the WRERR_STAT bit on this drive "hdx=cdrom" : drive is present, and is a cdrom drive "hdx=cyl,head,sect" : disk drive is present, with specified geometry "hdx=autotune" : driver will attempt to tune interface speed to the fastest PIO mode supported, if possible for this drive only. Not fully supported by all chipset types, and quite likely to cause trouble with older/odd IDE drives. "idex=noprobe" : do not attempt to access/use this interface "idex=base" : probe for an interface at the addr specified, where "base" is usually 0x1f0 or 0x170 and "ctl" is assumed to be "base"+0x206 "idex=base,ctl" : specify both base and ctl "idex=base,ctl,irq" : specify base, ctl, and irq number "idex=autotune" : driver will attempt to tune interface speed to the fastest PIO mode supported, for all drives on this interface. Not fully supported by all chipset types, and quite likely to cause trouble with older/odd IDE drives. "idex=noautotune" : driver will NOT attempt to tune interface speed This is the default for most chipsets, except the cmd640. "idex=serialize" : do not overlap operations on idex and ide(x^1) ex.: "ide0=dtc2278" : probe/support DTC2278 interface ============================================ Make bootable floppy /sbin/mke2fs /dev/fd0 [ -d /fd ] || mkdir /fd mount /dev/fd0 /fd cp /boot/boot.b /fd cp /zImage /fd echo image=/fd/zImage label=linux | /sbin/lilo -C - -b /dev/fd0 -i /fd/boot.b -c -m /fd/map umount /fd -------------------------------------------- lilo -b /dev/fd0 -m /boot/map.fd -------------------------------------------- make install (kernel compile) Creating a lilo bootdisk... mkdir /tmp/boot3292 mke2fs -q /dev/fd0 mke2fs 1.12, 9-Jul-98 for EXT2 FS 0.5b, 95/08/09 mount -t ext2 /dev/fd0 /tmp/boot3292 cd /tmp/boot3292 cp /boot/vmlinuz /boot/boot.b . lilo -C - <<- EOF2 Added linux * set +e; cd /; umount /dev/fd0; rmdir /tmp/boot3292 ============================================ Serial Console append="panic=40 console=ttyS0, 38400n8 console=tty0" serial=0,38400n8 ============================================ Creating a lilo bootdisk... mkdir /tmp/boot4618 mke2fs -q /dev/fd0 mke2fs 1.12, 9-Jul-98 for EXT2 FS 0.5b, 95/08/09 mount -t ext2 /dev/fd0 /tmp/boot4618 cd /tmp/boot4618 cp /boot/vmlinuz /boot/boot.b . lilo -C - <<- EOF2 Added linux * set +e; cd /; umount /dev/fd0; rmdir /tmp/boot4618 ============================================ lilo.conf disk = /dev/sda bios = 0x80 sectors = 32 heads = 64 cylinders = 632 partition = /dev/sda1 start = 2048 partition = /dev/sda2 start = 204800 partition = /dev/sda3 start = 500000 partition = /dev/sda4 start = 900000 disk = /dev/sda bios = 0x80 disk = /dev/hda bios = 0x81 -------------------------------------------- multi OS default = linux # But you want: image=/boot/vmlinuz-2.2.19-6.2.1 label = linux alias = L other = /dev/hdb4 table = /dev/hdb label = win95 alias = 95 # And this is the interesting part, where # that logical drive swap takes place: map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80 -------------------------------------------- lilo.conf Serial console ... message=/boot/message serial = 1,38400n8 image=/boot/vmlinuz label=linux root=/dev/hda3 append="console=tty0 console=ttyS1,38400" read-only --------------------- /etc/inittab S1:2345:respawn:/sbin/mingetty ttyS1 38400 vt100