[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: