Projects / LILO

LILO

LILO is a Boot loader for Linux/x86 and other PC operating systems. It is responsible for loading your Linux kernel from either a floppy or a hard drive and passing control to it. It is capable of booting beyond cylinder 1024 of a hard disk if the BIOS supports EDD packet call extensions to the int 0x13 interface. LILO can also be used to boot many other operating systems, including DOS, Windows (all versions), OS/2, and the BSD variants. The LILO distribution includes full source, documentation and support files.

Tags Boot
Licenses BSD Original
Operating Systems POSIX Linux

Tweet this project Short link

Rss Recent releases

  • Rrelease-mid
  •  19 Feb 2007 11:30
  • Rrelease-after

Changes: A maintenance release to add a DEVMAPPER (device_mapper, or LVM2) compilation option. This support is only compiled if the appropriate library and include files are present. This release allows root directory specification using UUID in addition to LABEL. The keyword "nodevcache" has been added to the configuration file.

  • Rrelease-mid
  •  12 Aug 2006 01:26
  • Rrelease-after

Changes: A fatal boot selection bug on systems without a PC/AT keyboard (primarily newer 64-bit systems) when compiled with the NOKEYBOARD option was fixed along with a known table entry error on major device 253.

  • Rrelease-mid
  •  07 Jul 2006 13:11
  • Rrelease-after

Changes: This is a patch file to fix an incorrect table entry that affects major device 253. This device is used by LVM2. The patch file is in the 'updates' directory at the developer's site.

  • Rrelease-mid
  •  05 Jul 2006 11:10
  • Rrelease-after

Changes: Three keywords are added: noraid, nokbdefault, and nokbdisable. The allowed kernel command line has been increased to 512 bytes (from 256). A write-around for a common USB hard disk BIOS problem (sectors reported as zero) is included.

Changes: Supports the Enhanced Multi-Disk (RAID) driver, which is still new to the 2.6 kernel. Drives underlying a full-disk RAID-1 (/dev/md_dXX) array are automatically taken to be "inaccessible" to avoid Volume ID conflicts. This action may be suppressed with the keyword "noraid". A command line switch (-H) allows installation of a boot loader on a degraded RAID-1 (/dev/mdXX) array. See the updated man pages for 'lilo' and 'lilo.conf' for additional information.

Rss Recent comments

Rcomment-before 09 Dec 2007 18:30 Rcomment-trans johnnynobody Rcomment-after

Re: USB keyboard and LILO

> LILO contains NO device drivers. All

> I/O is performed by the BIOS. This

> includes disk I/O and keyboard I/O.

>

> Unless your BIOS provides support on int

> 16h for the USB keyboard, you will not

> be able to use it with LILO.

>

>

My BIOS does support USB and the keyboard works (i.e. the Delete key gets me into the BIOS and I can make changes in the BIOS) until I get to LILO where the arrow keys can't select any menu options and the Enter key does not work. LILO auto boots to the linux partition where the keyboard works fine again beginning with the linux bootup process. I hope that there is a fix for this issue. Mandriva 2008.

Rcomment-before 04 Jul 2007 02:28 Rcomment-trans v01dp Rcomment-after

how to install LILO boot loader into a disk image
It is possible to create a disk image using a file, partition it, create file systems, install a Linux distro, and install the boot loader of choice. This file can then be copied to actual disk, used as a virtual disk with an emulator (such as bochs), etc.

Below is a short example of how to install LILO into such virtual disk, one that I actually made and using currently.

Assuming you have created already the disk image file, have partitioned it, and attached it to loopback device(s) appropriately, this is the relevant part of lilo.conf:

========lilo.conf =====================

# You have attached your disk image to the loop0

# The disk geometry is that how you've defined it

# when creating your disk image (fdisk .... )

# Within my disk image, i have 3 partitions.

# Note the start offsets (fdisk -lu on image)

# The partitions are attached to other loops,

# if you need to use them.

disk=/dev/loop0

sectors=63

heads=255

cylinders=9

bios=0x80

partition=/dev/loop1

start=63

partition=/dev/loop2

start=16065

partition=/dev/loop3

start=128520

# Some standard lilo things ...

compact

lba32

# MBR to install LILO to: loop0 is the entire disk

# image, so we install into MBR of that image;

boot = /dev/loop0

# the boot partition I have mounted for working at

# lo_2/boot

map = /void/wrk/lo_2/boot/.map

install = /void/wrk/lo_2/boot/boot-menu.b

prompt

timeout=450

delay = 50

vga = normal

default=Linux

# I have vmlinuz on the boot partition,

# which is mounted at lo_2/boot

image=/void/wrk/lo_2/boot/vmlinuz

label=Linux

initrd=/void/wrk/lo_2/boot/initrd.img.gz

read-only

========end lilo.conf ==============

I have to note that inside my initrd image, my linuxrc

sets up appropriate root device, then does pivot.

(actual root device can be say /dev/sda, or /dev/hda).

In shells like nash, you can run mkrootdev, which can

create needed device node passed as root=/dev/XXX

during boot.

So then you only have to run lilo -v3 -C mylilo.conf -t,

and if all is oK, remove the '-t' :)

In case you wanted to see the mounts :

#loop0 is the entire disk, partitions are mounted

/dev/loop/2 on /void/wrk/lo_2 type squashfs (rw)

/dev/loop/1 on /void/wrk/lo_2/boot type ext2 (rw)

/dev/loop/3 on /void/wrk/lo_2/mnt type ext2 (rw)

This was my first adventure of this sort, so I can't guarantee

that installing LILO this way is best and most efficient.

If you know of a better / alternative / another useful way of installing LILO into a file, or how to improve the above way,

please post a comment.

Rcomment-before 18 Jun 2007 12:32 Rcomment-trans johncoffman Rcomment-after

Re: Preparing a hd[x] drive for another machine
If you wish to prepare a disk image and then copy it to a hard drive, I suggest you follow the example in the script "mkrescue --iso --size HD". Normally the "--iso" option creates a bootable floppy image; however, with the 2.6 kernels >1.4Mb this is no longer possible. So the extra size (Hard Disk), allows for very large kernels. Although this script ultimately creates an ISO image, the hard disk image is created along the way.

The 'mkrescue' script is a part of the LILO source and binary distributions.

Rcomment-before 18 Jun 2007 08:24 Rcomment-trans v01dp Rcomment-after

Re: Preparing a hd[x] drive for another machine
Hello,

You wrote that it is possible to contact you directly for more involved case.

I was wondering about the 'other' ways to create a bootable

disk for another machine, and what is / not possible with lilo here.

I was interested if its possible to install lilo without having actual hard drive , only the disk image (which I then would copy to the disk ).

I have made a disk image, with partitions, file systems, and a linux distro installed. I was trying to install lilo into it, but with no luck. I was trying to install lilo through the use of loopback

devices, but that seems did not work (installed, but does not boot). Its most likely wrong what I was trying to do.

I would really appreciate help on this.

Thank you

> Make sure you are using LILO 22.5.9 or

> newer, and that you are using 'lba32'

> disk addressing. A sector-by-sector

> copy of a bootable drive (same size)

> will be bootable:

>

>

> >dd if=/dev/hda of=/dev/hdb

>

>

> Then move hdb to hda on the second

> machine. This, of course, assumes a

> compatible BIOS.

>

>

> If /dev/hda1 is the bootable partition

> on the first machine, and /dev/hdb1 is

> to be the bootable partition on the

> second machine (/dev/hda1 after moving

> the disk), then a simple install of LILO

> on the second disk (mounted as /mnt/b),

> would go as follows (identical

> /etc/lilo.conf files on both disks):

>

>

> > lilo -r /mnt/b -b /dev/hdb

>

>

> At this point, dismount, power down, and

> move the hdb disk to hda on the second

> machine. Presumably even the

> "root=/dev/hda1" specification for hdb

> will now become valid.

>

>

> There are other ways to create a

> bootable disk for a second machine, but

> they quickly increase in complexity from

> this point. I suggest you contact me

> directly if your situation is

> significantly more involved.

>

Rcomment-before 26 Feb 2007 21:09 Rcomment-trans johncoffman Rcomment-after

Re: Deadlocked Installations
I don't know if this will solve the problem of booting FreeBSD, but I would chain boot this installation on /dev/hdc4 with: 'other = /dev/hdc4'. Then install the FreeBSD boot loader on /dev/hdc4. The LILO installation can chain to it through the 'other' descriptor.

0fb23b63c9af20d239e0f26e77fead50_thumb

Project Spotlight

Cheyenne SWServer

A secure multi-layered Web server.

Beca164a5950ad61d568c784dbf91845_thumb

Project Spotlight

ZK

An XUL-based event-driven Ajax Web framework.