Originally Posted by MasterC
AFAIK, Lilo doesn't use device options in the image loading section. So, unless there is something really fancy going on, I'd like to know how you do that. I'm reading your response to mean that you have kernels in different /boot directories on different partitions and lilo somehow sees them. If this is what you mean, could you post up your lilo.conf(s), disk structure (hda1, hda2, hdb1...), filesystem layout on those structures (where's windows, /dev/hda1 has Debian, hdb2 has Gentoo...) and lilo version, I'd be happy to learn more about this.
Hey man, it's really, really simple, but it eluded me and I thought I was braindead when it finally hit me. There I was, with two working Slack machines triple booting with WinXP, no problemo. Then I tried to add an Arch machine, not happening. I kept looking and looking and everything appeared fine.
The (obvious) secret is to mount all the paths to the kernels before executing lilo! Doh! Lilo just needs to be able to find this stuff when you're updating the config.
For example, let's say you have something like this:
/dev/hda1 NTFS WinXp
/dev/hda2 SWAP Linux swap
/dev/hda3 Reiserfs /usr/local
/dev/hda5 Reiserfs / Linux machine A
/dev/hda6 Ext3fs / Linux machine B
/dev/hda7 Reiserfs / Linux machine C
/dev/hdax ... / Linux machine X
And each of these root directories has kernels somewhere underneath. It could be /boot but it really doesn't matter. The issue is, like you said, that we multiple /boot partitions each with its own set of kernels and we want to be able to boot from this setup with lilo. I'm leaving out some of the global section because it's not important for this discussion, but note: it's worth trying the compact option; on my system it helps a lot. Ok, here goes:
boot = /dev/hda
other = /dev/hda1
label = WinXP
table = /dev/hda
image = /boot/vmlinuz
root = /dev/hda5
label = Linux-A
image = /mnt/hda6/boot/vmlinuz
root = /dev/hda6
label = Linux-B
image = /mnt/hda7/boot/vmlinuz
root = /dev/hda7
label = Linux-C
image = /mnt/hdax/boot/vmlinuz
root = /dev/hdax
label = Linux-X
And each of these vmlinuz kernels has the same name in this example, but they can be the name of any kernel lilo can find in the path you specify.
That's all there is to it; the key is having all the partitions mounted so that lilo can find the kernels!