I have a SATA drive with LILO boot loader, and a working 32bit 22.214.171.124 kernel that was built on a Mandriva 32bit machine some time back. This Linux environment is a very simple one that boots up to a busybox shell as init by means of a "append="init=/test/test.sh" in lilo.conf, where test.sh sets up the basic Linux environment then starts a busybox shell.
The Mandriva build environment no longer exists, and has been upgraded to a 64bit Ubuntu machine instead.
I downloaded 126.96.36.199 from kernel.org, and then extracted the .config file from the working kernel.
I then used the .config file to build a new but identical 32bit kernel on the new Ubuntu build environment using make "ARCH=i386 menuconfig" followed by "make ARCH=i386 all"
I copied this new kernel to the SATA drive, edited lilo.conf and ran lilo again. However, when I try to boot up from this supposedly identical kernel, I get a kernel panic:
VFS: Mounted root(ext2 filesystem readonly on device 8:1
Freeing unused kernel memory: 248k freed
Failed to execute /test/test.sh. Attempting default...
Kernel panic - not syncing: No init found. Try passing init= option to kernel.
The file sizes of the old and new kernel are different. However, I extracted the .config from the new kernel and performed a diff between that and the old .config file - they are identical!
Why is it I have 2 kernels that are the same version, built with the .config file, but resulting in 1 booting and the other not?
Any help would be appreciated. Thanks!