Differences between 2.2.x and 2.4.x initrd

Ben Collins
2001-11-13T19:40:16Z

I've come across a difference in how initrd is handled in 2.2.x and
2.4.x. This related directly to TILO (sparc TFTP image with ramdisk).

Basically what we have is a kernel image with ramdisk and initrd
enabled, and a root disk image slapped on the end that is loaded via
initrd.

On 2.2.x, this works without problems; the ramdisk is loaded, and
/sbin/init is executed. However, with 2.4.x, it's quite different.

It loads the initial ramdisk, mounts it fine, tries to execute /linuxrc
(same as in 2.2.x, but it isn't there, so it continues), and then
complains with this:

VFS: Mounted root (ext2 filesystem).
VFS: Cannot open root device "" or 02:00

For some reason it is trying to mount /dev/fd, and totally forgets
about /dev/ram. If I pass root=/dev/ram to the command line, it works
fine, but I don't want to have to do this :)

I can't seem to find the relevant place where this broke. Any ideas?