boot/root floppy: "Kernel panic: no init found"
I'm trying to make a homebrew boot/root floppy [1].
So far, I've used syslinux to put a kernel on a floppy disk. This
works. The problem is with the root filesystem. I've tried the
following two approaches, both of which result in messages of the form
"Mounted root (ext2) filesystem read-only
Kernel panic: no init found":
1) rdev the kernel on the floppy to /dev/fd0, mkfs.ext2 on a second floppy,
install Busybox on this floppy (Busybox is a really tiny
implementation of various unix essentials, like /bin/sh and
/sbin/init.) Boots fine, then prompts for root diskette. I insert the
root diskette, press Enter, and get the above error message. Yes there
is an executable /sbin/init on the root floppy. Perhaps the root
floppy should not have a filesystem on it?? But the kernel says it
mounted root. Hmm.
2) bin/dd if=/dev/zero of=/dev/ram bs=1k count=4096
/sbin/mkfs.ext2 /dev/ram
/bin/mount -t ext2 /dev/ram ${MOUNTPOINT}
install Busybox on ${MOUNTPOINT}
umount ${MOUNTPOINT}
bin/dd if=/dev/ram of=initrd bs=1k count=4096
gzip initrd
Put "APPEND initrd=initrd.gz" in SYSLINUX.CFG
rdev the kernel to /dev/ram.
Boots fine, says something about unmounting the initial root
(presumably every kernel comes with some kind of ramdisk with the
stuff it needs for mounting the real root fs?), says something about
mounting the root fs, then fails with the "no init found" message.
Anyone done this sort of thing before, only successfully? Please don't
tell me things like "get a floppy distribution that works
out-of-the-box" -- I'm trying to actually understand how these things
work, because that seems to be the only way I can ever accomplish
anything (a sort of personal handicap if you will..)
Cheers!
-chris
[1] The end goal is to have a diskless gateway/firewall which I can
login to remotely (ideally via ssh or some other secure protocol) and
run a program that will send a remote-wake-up packet to my
workstation. The machine has 8MB, anyone know if that's enough?
Reply to: