Subject: Re: mount ramdisk rootfs /etc directory to jffs2 filesystem.

From: Chris Simmonds <[email-masked]>
Date: Mon, 25 Jan 2010 08:27:58 +0000

Johnny Hung wrote:
> 2010/1/22 Marco Stornelli <[email-masked]>:
>> 2010/1/22 Johnny Hung <[email-masked]>:
>>> 2010/1/20 Marco Stornelli <[email-masked]>:
>>>> 2010/1/20 Johnny Hung <[email-masked]>:
>>>>> 2010/1/19 Matthias Kaehlcke <[email-masked]>:
>>>>>> El Tue, Jan 19, 2010 at 02:17:22PM +0100 Ricard Wanderlof ha dit:
>>>>>>
>>>>> I consider to use ramdisk as rootfs because worry about wrong
>>>>> operation in rootfs (is use jffs2 rootfs) and it will cause system
>>>>> boot up failed.
>>>>> Another query, does the syslogd/klogd log files also store in jffs2
>>>>> rootfs? Write to jffs2 frequently will reduce flash life cycle.
>>>>>
>>>>> BRs, H. Johnny
>>>>>> --
>>> It seems there are a lot of file-systems I have to study :P. The same
>>> question is
>>> how to split my rootfs? Re-mount /etc, /var to another file-sysyem mtd part when
>>> system boot up?
>>>
> Yes, I know. So if I want set etc directoyr to /dev/mtd5 not in rootfs
> /, I need to add "/dev/mtdblock5  /etc        jffs2   defaults
> 0       0" in /etc/fstab file but rootfs doesn't contain /etc
> directory because /etc directoyr is store in /dev/mtdblock5.
> Do you know what I mean? The kernel execute /sbin/init after mount
> rootfs and /sbin/init is link to busybox, busybox will read
> /etc/inittab file to initial. The problem is coming, how busybox to
> read /etc in rootfs before mount /dev/mtdblock5 to /etc? There is no
> program to mount /dev/mtdblock5 to /etc before busybox init execute.
> 
> I think I must mistake some concept, please give me a hint.
> Thank you
> BRs, H. Johnny
> 

You have two /etc directories: one in the the read-only root file system 
and one in the jffs2 fs. In the root fs you have /etc/fstab, 
/etc/inittab and any scripts it may call. The init program will mount 
/dev/mtdblock5 over the top of the /etc that is in the rootfs, so giving 
you the read/write version of /etc. Any files open in the old /etc - 
e.g. /etc/inittab - will continue to be open, but any new files opened 
in /etc will use the read/write version in jffs2. You can also do some 
interesting things with symbolic links... This technique works. I have 
used it in several projects.

-- 
Chris Simmonds                   2net Limited
[email-masked]                 http://www.2net.co.uk/