Dual booting linux and windows/dos has never been a problem for me with lilo. Other people may suggest grub as a boot manager, I don't know about this one as I have never used it.
In any way I suggest you install NO boot loader during the installation. Then after your system is installed and running (you should be able to boot it from CDROM), you write your own custom configuration file (/etc/lilo.conf
). That way you can adjust it specifically to your needs and have more control over what happens.
As an example I will post and explain my configuration file(warning, long post ahead). You need to have an understanding of how different hard disks and their partitions are named in Linux:
# Linux 2.4.23
My setup is like this:
I have two physical hard disks: /dev/hda and /dev/hdb. hda is partitioned in /dev/hda1 (this is where Windows lies) and a few more (which we won't need here. hdb has two partitions, /dev/hdb1 (this is where my Linux root / lies) and /dev/hdb2 (my Linux swap partition).
Now to the above config file:
In the global section, boot= specifies the harddisk that lilo will be installed onto (the one, the BIOS is configured to boot from). default= specifies by label the OS that should be booted after the timeout (in miliseconds) runs out and the user didn't select a OS to be booted. Ie, after three seconds Linux.23 should be booted in my case.
Now to the OS sections (of which I have three, Linux.23, Linux.test and Win). In any Linux section you need to specify a kernel image that is to be booted. This is what image= does. The images lie in /boot normally. If you do not want to compile your own kernel, you can specify a kernel that came with your distribution. root= specifies which partition should be your root directory / - this is /dev/hdb1 in my case.
In a Windows/Dos section you cannot have image= nor root=. Instead you specify other= with the appropriate partition where the OS is installed. This is /dev/hda1 (or C: if you want) for me as this is where my windows is installed. The loader entry refers to a boot loader file for other OSs than Linux. It is normally named /boot/chain.b and should come with lilo.
Phew, I hope this gives you a concept with which you can work.
One more thing. For more detailed descriptions of the options I used and others, refer to the lilo documentation (man lilo
and man lilo.conf
Another thing. You may have noticed that I have two entries for my Linux system. The only difference is that they boot a different kernel. You should also do this if you ever compile your own kernel, ie leave the old one in place in case anything goes wrong with the new one so you can still boot the old kernel and recompile.