Hi, I have been experiencing an unusual boot problem with 2.6.12; it tries to boot the wrong root. I have suse7.x, mandrake 8.x, woody, and ubuntu (this is the 2.6 kernel) on hdb (60GB), on a 233mmx, pre-1998 bios (bios is told only the first HD installed or it chokes), redhat 6.1 on hda (8.4GB).

linus:/u2/home2/johnpipe$ /usr/sbin/rdev /lilo/ubuntu/boot/vmlinuz-2.6.12-10-386

Root device /dev/sda3

linus:/u2/home2/johnpipe$ /sbin/lilo -V
LILO version 21
linus:/u2/home2/johnpipe$ rpm -q lilo
lilo-0.21-15

To avoid the 1024 cylinder limit on old bios & old lilo I have the /boot directories for each distro on hdb copied to sub-directories of / on hda9, the redhat root partition; lilo gets installed under redhat:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
default=linux

image=/boot/vmlinuz-2.2.12-20
label=2212
initrd=/boot/initrd-2.2.12-20.img
read-only
root=/dev/hda9
append="hdc=ide-scsi hdd=ide-scsi"

image=/boot/vmlinuz-2.2.24-7
label=linux
read-only
root=/dev/hda9
append="hdc=ide-scsi hdd=ide-scsi"

image=/boot/vmlinuz-2.2.24-8
label=2248
read-only
root=/dev/hda9
append="hdc=ide-scsi hdd=ide-scsi"

image=/lilo/woody/boot/vmlinuz-2.2.20-idepci
label=woody
read-only
root=/dev/hdb6

image=/lilo/mdk82/boot/vmlinuz-2.4.18-6mdk
label=mdk82
read-only
root=/dev/hdb7

image=/lilo/suse/boot/vmlinuz
label=suse
read-only
root=/dev/hdb8

image=/lilo/ubuntu/boot/vmlinuz-2.6.10-5-386
label=ubuntu
initrd=/lilo/ubuntu/boot/initrd.img-2.6.10-5-386
read-only
root=/dev/hdb9
append=irqpoll # kernel-bug work-around/protect eth0

# Kernel problem -disable until fixed 6 Apr 2006
# Trying again; re-installed w/'No' to prompts.

image=/lilo/ubuntu/boot/vmlinuz-2.6.12-10-386
label=ub2612
initrd=/lilo/ubuntu/boot/initrd.img-2.6.12-10-386
read-only
root=/dev/hdb9 # doesn't boot this!

other=/dev/hda1
label=dos

I can boot ubuntu with the 2.6.10 kernel from this arrangement, no problem. But, if I try to boot it with 2.6.12, it tries to boot root from hda9 (redhat) instead of hdb9 (ubuntu).

Here is what lilo installs as root, 309=/dev/hda9, 346 - 349 = /dev/hb6 - /dev/hdb9:

linus:/u2/home2/johnpipe$ !1024
grep root lilo-verbose
"ro root=309 hdc=ide-scsi hdd=ide-scsi"
"ro root=309 hdc=ide-scsi hdd=ide-scsi"
"ro root=309 hdc=ide-scsi hdd=ide-scsi"
"ro root=346"
"ro root=347"
"ro root=348"
"ro root=349 irqpoll"
"ro root=349"

If I try to boot ubuntu with 2.6.12, by typing ub2612 at the lilo prompt, it tries to boot redhat's / on hda9; if I type "ub2612 root=/dev/hdb9", it will boot the correct root. However, in either case, there are some strange codes printed in brackets in the kernel messages that I don't see on any normal boot:

Apr 4 04:32:02 linus syslogd 1.3-3: restart.
Apr 4 04:32:02 linus syslog: syslogd startup succeeded
Apr 4 04:32:02 linus kernel: klogd 1.3-3, log source = /proc/kmsg started.
Apr 4 04:32:02 linus kernel: Inspecting /boot/System.map
Apr 4 04:32:02 linus syslog: klogd startup succeeded
Apr 4 04:32:02 linus kernel: Symbol table has incorrect version number.
Apr 4 04:32:02 linus kernel: Cannot find map file.
Apr 4 04:32:02 linus kernel: No module symbols loaded - kernel modules not enabled.
Apr 4 04:32:02 linus kernel: cannot find any symbols, turning off symbol lookups
Apr 4 04:32:02 linus kernel: [4294667.296000] Linux version 2.6.12-10-386 (buildd@terranova) (gcc version 3.4.5 20050809 (prerelease) (Ubuntu 3.4.4-6ubuntu8.1)) #1 Sat Mar 11 16:13:17 UTC 2006
Apr 4 04:32:02 linus kernel: [4294667.296000] BIOS-provided physical RAM map:
Apr 4 04:32:02 linus kernel: [4294667.296000] BIOS-e820: 0000000000000000 - 00
0000000009fc00 (usable)
Apr 4 04:32:02 linus kernel: [4294667.296000] BIOS-e820: 000000000009fc00 - 00
000000000a0000 (reserved)
Apr 4 04:32:02 linus kernel: [4294667.296000] BIOS-e820: 00000000000f0000 - 00
00000000100000 (reserved)
Apr 4 04:32:02 linus kernel: [4294667.296000] BIOS-e820: 0000000000100000 - 00
00000010000000 (usable)
Apr 4 04:32:02 linus kernel: [4294667.296000] BIOS-e820: 00000000ffff0000 - 00
00000100000000 (reserved)
Apr 4 04:32:02 linus kernel: [4294667.296000] 0MB HIGHMEM available.
Apr 4 04:32:02 linus kernel: [4294667.296000] 256MB LOWMEM available.
Apr 4 04:32:02 linus kernel: [4294667.296000] DMI 2.2 present.
Apr 4 04:32:02 linus kernel: [4294667.296000] ACPI: Unable to locate RSDP
Apr 4 04:32:02 linus kernel: [4294667.296000] Allocating PCI resources starting
at 10000000 (gap: 10000000:efff0000)
Apr 4 04:32:02 linus kernel: [4294667.296000] Built 1 zonelists
Apr 4 04:32:02 linus kernel: [4294667.296000] Kernel command line: BOOT_IMAGE=ub261210 ro root=349

These come from redhat's /var/log/messages on /dev/hda7, where they get logged as 2.6 tries to start redhat (ends up in a loop if you let it keep up, and requires reset) instead of ubuntu.

With a "successful" 2.6.12 boot (by passing the root parameter from the command line), logging goes to hdb9 as it should (all the hdb distro installs get one whole partition each.), but the messages will include the long bracketed number codes, not seen on "normal" boots (I'd like to know what those codes are).

All the other installations boot just fine.

I've been reading thru installed docs on lilo, the kernel, booting, googled for info on these, but haven't been able to get close to what's happening here.

Anyhone have some ideas? I don't care if I can't get 2.6.12 to work properly, but I really want to know (i.e., understand) what's the cause.

Thanks for any help you can share,

johnpipe