In initrd, init program is needed or not?

Peter Barada pbarada at mail.wm.sps.mot.com
Thu Sep 13 00:41:01 EST 2001


>BTW, if I want to access /proc/... , what files should I add in
>ramdisk. Should I add a program called MOUNT in /bin? who exec rc and
>fstab script , shell(bash , ash) or kernel? Thank you in advance.

After the kernel mounts the root filesystem(via initrd, etc)
it attempts to start the init process be createing a thread
and trying to exec init from the following places(in this order):

/sbin/init
/etc/init
/bin/init

And if none of them can be found, then it tries to fire up a shell
from:

/bin/shell

See init/main.c, init()

Depending on the init executable you place in your root filesystem, it
runs the /etc/rc script, and in there is where you'd a snippet the
looks something like:

/sbin/expand /etc/ramfs.img /dev/ram1
/sbin/mount -n -t proc proc /proc
/sbin/mount -n -t ext2 /dev/ram1 /var

Where the first line decompresses a ramdisk ext filesystem image into
/dev/ram1, the second line mounts the /proc filesystem, and the third
line mounts the ramdisk(/dev/ram1) as a filesystem on /var

Note that /sbin/expand and /sbin/mount can not be in the ramdisk.
Neithere can /sbin/init or /etc/rc.
They have to be in the root filesystem which is mounted before init
starts up.

YMMV,

--
Peter Barada                                   Peter.Barada at motorola.com
Wizard                                         781-852-2768 (direct)
WaveMark Solutions(wholly owned by Motorola)   781-270-0193 (fax)

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list