However, one LILO keyword could prove very helpful:
master-boot
This keyword means (taken straight from LILO's repertoire):
'master-boot This flag (LILO version 22.5) indicates a DOS/Windows/OS2 or other system which will only boot from BIOS device 0x80, the "C:" drive, or BIOS device 0, the A: drive. When this flag is specified, if this drive is not assigned device code 0x80 or 0 by the BIOS, then the chain loader will dynamically swap the device code actually assigned with device code 0x80 or 0 to make this drive appear to be the first hard or floppy drive, "C:" or "A:".'
In my setup, the default boot drive is sda1 while M$ Windoze XP SP2 is installed on hda1. It seems to be M$ Windoze XP SP2 cannot boot unless its drive appear to be the first hard drive. This is the relevant excerpt from my /etc/lilo.conf:
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/sda
#compact # faster, but won't work on all systems.
lba32
...
# Linux bootable partition config begins
image = /boot/vmlinuz
root = /dev/sda1
label = Slamd64-12.1
read-only # Partitions should be mounted read-only for checking
...
# Linux bootable partition config ends
# Windows bootable partition config begins
other = /dev/hda1
label = Windows
table = /dev/hda
master-boot
# Windows bootable partition config ends
That's it. You should be able to boot from Windoze or other "insane" OS from other hard drive with LILO.