kernel 2.4.3 will not boot on systems with initrd files
DESCRIPTION
Building kernel 2.4.3 and attempting to boot it failed. The problem
turned out to be in the modutils-2.4.5 rpm for i386.
DETAIL
After building the 2.4.3 kernel and moving the boot modules to the
initrd image, it was noted the the system stopped when trying to load
modules for the root filesystem device. First solution attempted was to
get the i386 rpm from kernel.org for the latest (2.4.5) modutils and
install, copying the insmod program to the initrd image.
This fails, with the message "insmod: no such program" at boot.
Examination showed that the binary provided was not static linked. Got
the source from kernel.org and built. By default this still isn't static
linked! Changed the common Makfile to set LDFLAGS to "-static -s" and
built again. After install and copy to initrd image this resulted in a
bootable system.
While it is possible to copy the libraries needed to the initrd image,
it becomes larger than the default ramdisk size (at least on my system).
And including the drivers in the kernel hurts portability and makes the
kernel too large to boot from floppy.
SYSTEMS AFFECTED
Redhat 7.x and similar using configurations which have the root device
driver loaded from modules.
SUGGESTED FIX
None needed, but the kernel "Changes" file should include a note that
people using initrd will need to rebuild them static along with the note
that a newer modutils is needed. Even for people who build their own
initrd files, this is NOT obvious!
-- bill davidsen <davidsen@tmr.com> CTO, TMR Associates, Inc Doing interesting things with little computers since 1979.- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/