FC4 CF-based Router

Steven Ringwald asric at asric.com
Mon Dec 19 15:31:41 UTC 2005

Bob Chiodini wrote:

>>plain text document attachment (linuxrc)
>>#!/bin/busybox msh
>># System config variables
>>IMAGENOD="3 2"
>>LOOPNOD="7 1"
>># create the links 
>>/bin/busybox ln -s /bin/busybox /bin/ln
>>/bin/ln -s /bin/busybox /bin/chroot
>>/bin/ln -s /bin/busybox /bin/echo
>>/bin/ln -s /bin/busybox /bin/ls
>>/bin/ln -s /bin/busybox /bin/mount
>>/bin/ln -s /bin/busybox /bin/mknod
>>/bin/ln -s /bin/busybox /bin/mkdir
>>/bin/ln -s /bin/busybox /bin/msh
>>echo Creating the directories and links
>>/bin/mkdir /sys /dev /proc /sys $SYSROOT $IMAGELOC
>>/bin/mount -o mode=0755 -t tmpfs /dev /dev
>>/bin/ln -s /bin /sbin
>>/bin/mkdir /dev/pts /dev/shm
>>echo Loading the modules
>>/sbin/insmod /lib/loop.ko
>>/sbin/insmod /lib/jbd.ko
>>/sbin/insmod /lib/ext3.ko
>>/sbin/insmod /lib/fat.ko
>>/sbin/insmod /lib/vfat.ko
>>echo Creating device nodes
>>/bin/mknod $IMAGEDEV b $IMAGENOD
>>/bin/mknod $LOOPDEV b $LOOPNOD
>>/bin/mknod /dev/console c 5 1
>>/bin/mknod /dev/null c 1 3
>>/bin/mknod /dev/zero c 1 5
>>/bin/mount -tproc /proc /proc
>>/bin/mount -tsysfs /sys /sys
>>/bin/mount -tvfat $IMAGEDEV $IMAGELOC
>>/bin/mount -tiso9660 -oloop $IMAGELOC/$IMAGENAME $SYSROOT
>>/bin/mount -tproc /proc /$SYSROOT/proc
>>echo 0x0100 > /proc/sys/kernel/real-root-dev
>>echo Starting system
>>#chroot . /bin/sh -c "exec /sbin/init 3" 
>>chroot . /bin/bash
>>/bin/busybox msh
>The script seems inconsistent with the previous email:
>        /dev/hda2 on /dos type vfat (rw,noatime, )
>        /dev/loop0 on /sysroot type iso9660 (ro)
>        /proc on /sysroot/proc type proc (rw,nodiratime)
>/dev/hda2 hasn't been created, neither has /dev/loop0
Sorry for the confusion. I have been trying with two different drives. 
One is a USB key-fob thing, which comes up as a SCSI drive (sda), and 
the other is a CF card plugged into an IDE convertor (this comes up as 
hda). When I couldn't get the USB fob to work, I tried the CF card, 
since the IDE modules should already be in the kernel, and therefore 
should be slightly simpler.

>Using the linuxrc script above, what happens if you cd /sysroot, then
>run pivot_root . initrd?  /sysroot/initrd must exist.

Yes. It does. What happens is that it returns EINVAL, because it is a 
CPIO-style image, not a ramfs.

>When linuxrc exits the kernel should run init.  Is busybox compiled for
>x86_64 and statically linked?
Yes. I went so far as to go to the source and get the svn copy/build it. 
Ldd reports "not a dynamic executable" and file says ELF 64-bit LSB 
 That seemed to work a little better, though pivot_root/switch_root 
threw up on my shoes. I was able to get it to chroot into the target 
filesystem, though I cannot seem to run init.

>Other than that,I'm at a loss.

Same here. I am about ready to redo the thing in Debian, as they seem to 
have slightly better support for stateless stuff. *Extremely* 

>Maybe someone on the fedora-devel list might have some insight.

They have been quiet, so far.


More information about the fedora-list mailing list