2007-01-25 02:35:07

by Piet Delaney

[permalink] [raw]
Subject: Problem booting a kernel built in an older environemnt in the newer LFS LiveCDs 6.2-3 and 6.2-4 environments.

I'm having two unexpected problems with LFS LiveCDs 6.2-3 and 6.2-4
that don't occure on lfslivecd-x86-6.1.1-4.iso. I've got a workaround
for the second problem but haven't found a solution yet for the second;
see 2. below.

1. The first is that I need to add a symbolic pointer from stage
to stage2 in the ${DISK}/boot/ directory when running grub-install.
The difference seems to be that the script is passing the wrong
arg in grub to the install command. The '2' is missing from the
the "(hd0,0)/boot/grub/stage2" argument; Ex:

# grub-install --debug --root-directory=/recovery /dev/sda
+ case "$host_os" in
+ bootdir=/recovery/boot
+ grubdir=/recovery/boot/grub
+ device_map=/recovery/boot/grub/device.map
+ set /usr/sbin/grub dummy
.
.
.
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup --stage2=/recovery/boot/grub/stage2
--prefix=/boot/grub (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are
embedded.
succeeded
Running "instal--stage2=/recovery/boot/grub/stage2
/boot/grub/stage1
(hd0) (hd0)1+15 p
(hd0,0)/boot/grub/stage /boot/grub/menu.lst"...
succeeded ^
Done. |
grub> quit +---- HERE



2. The second, and more important problem, is that once one of my
kernels is running that it can't open the root filesystem. Looks
like it can't read the partition table or something. It's not
the kernel source being to old, as kernels more recent than the
2.6.16 kernel (2.6.18 for example) also fail to boot.

I made a static version of our mke2fs ran it on the lfslivecd-x86-6.2.3
and used it instead of the stock mke2fs and it didn't effect the
problem. I ran a static dumpe2fs and checked the magic number.
Seems the magic number hasn't changed.

I recall when migrating from 2.4 to 2.6 there being some bin-utils or
something that the kernel build process used to make the kerenl image.
I suspect that I need to update that in my build environmennt. If that's
it anyone know which package that is and where to get it from. I tried
kernel.org wonder if it's util-linux-2.12r.

-piet