Openembedded Core Discussions
 help / color / mirror / Atom feed
From: ChenQi <Qi.Chen@windriver.com>
To: ChenQi <Qi.Chen@windriver.com>
Cc: Chris Larson <clarson@kergoth.com>,
	"chen_q07@163.com" <chen_q07@163.com>,
	Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: Initial review of ChenQi/read-only-rootfs-in-live-images
Date: Mon, 5 Aug 2013 11:30:33 +0800	[thread overview]
Message-ID: <51FF1C59.3000301@windriver.com> (raw)
In-Reply-To: <51FF0B8A.9030201@windriver.com>

[-- Attachment #1: Type: text/plain, Size: 5262 bytes --]

For convenience, here's a link below in case people may wondering which 
patchset we are talking about.

  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/read-only-rootfs-in-live-images


//Chen Qi

On 08/05/2013 10:18 AM, ChenQi wrote:
> Hi Chris,
>
> Thanks for your review and please see comments inline.
> (You might be reviewing the old patchset, please see the new one if 
> you have time.)
>
> On 08/02/2013 11:50 PM, Chris Larson wrote:
>> Greetings,
>>
>> Nice work on this branch. The bind based approach seems clean. I do 
>> have some comments:
>>
>> - I think the read-only-rootfs-hook stuff, at least the bind mounting 
>> piece at a minimum, belongs in a separate script in ${sbindir} rather 
>> than within the startup script itself. This will ease adding support 
>> for r/o to systemd images.
> Although I still hold to the tenet we should make sysvinit and systemd 
> separate from each other whenever possible, this option is acceptable 
> if they do duplicate code and there's no side effect.
> But for now, I would suggest we leave it in the initscripts, and when 
> you add read-only-rootfs support for systemd , you could send a patch 
> to do the change.
>
>> - I think we should consider having an additional script which 
>> unmounts the binds in reverse order, in case the binds prevent 
>> unmounting of the partitions in which they live, potentially causing 
>> an unclean shutdown.
>
> I figure the bind mounts are essentially using volatile storage, the 
> data are lost between reboots after all. So could you please give an 
> example of unclean shutdown?
>
> Another problem with this unmounting mechanism is that it's hard to 
> determine whether a directory is bind mounted. Note that in the 
> read-only-rootfs-hook.sh script, a check has been added to see whether 
> the directory specified in config file is on a read-only partition, 
> and only if so, the directory is bind mounted with a directory on 
> volatile storage.
>
>> - The irda read only bits aren't necessary, it seems. The startup 
>> script writes to /etc/sysconfig/ if its config file doesn't already 
>> exist, as a mechanism of handling default configuration. This is a 
>> terrible way to handle that, and sysconfig is a redhatism, not the 
>> way we do things in our distros. I have a commit I'll submit a patch 
>> for to resolve this by fixing up the startup script.
> This one has been fixed in the new patchset.
>
>> - I think we should enhance the copy part of the bind script in two ways:
>>     - cp from/. to/ -> this ensures it will copy hidden directories 
>> as well, which the wildcard does not
> Agree. Thanks for reminding me of this. I'll fix this.
>>     - handle bind mounts of files as well as directories
> Agree. Thanks. I'll send out a new patchset.
> (Of course I'll first wait for your comments :) )
>
>> - I also think the mount script should support mount options, making 
>> the config files essentially a subset of the filesystem table in 
>> fstab. There are cases where there's value in using options with bind 
>> mounts, and it'd make the scripts potentially more generally useful.
> I know it might be useful, but I can't think of a use case. Could you 
> please give an example where the mount options are useful?
>
>> - I think we should split out the mount and unmount scripts, along 
>> with default configuration, into a separate recipe which inherits 
>> update-rc.d, and which gets pulled into IMAGE_INSTALL by 
>> image.bbclass only when read-only-rootfs is in IMAGE_FEATURES. This 
>> means we'd need less conditional "if this is r/o" code in the 
>> scripts, as we could rely on it being installed in r/o images, and 
>> not in others.
> The r/o check is needed anyway, it's not dedicated to the 
> read-only-rootfs-hook.sh script. Other init scripts might also need 
> this. That's why I made it a common function in the functions script 
> both in initscripts and lsbinitscripts.
>
>>
>> As an aside, I looked into libmount's previous support of fstab.d, it 
>> appears using util-linux's libmount-based mount is supposed to 
>> support passing a directory to its -T/--fstab= argument, which would 
>> let us offload the work to it if we use a real mount binary, but it 
>> seems that this directory argument support doesn't work anyway, and 
>> of course by doing that we'd suck in additional deps, so maybe it's 
>> for the best :)
>>
>> Thoughts? I have prototype mount-binds and unmount-binds shell 
>> scripts here which implement the aforementioned suggestions, but I 
>> wanted to throw my thoughts out to the list for comments before 
>> proceeding any further.
>>
> It would be great if you could share them, and let's have some further 
> discussions.
>
> Best Regards,
> Chen Qi
>
>> Thanks,
>> -- 
>> Christopher Larson
>> clarson at kergoth dot com
>> Founder - BitBake, OpenEmbedded, OpenZaurus
>> Maintainer - Tslib
>> Senior Software Engineer, Mentor Graphics
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


[-- Attachment #2: Type: text/html, Size: 9033 bytes --]

      reply	other threads:[~2013-08-05  3:30 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-02 15:50 Initial review of ChenQi/read-only-rootfs-in-live-images Chris Larson
2013-08-05  2:18 ` ChenQi
2013-08-05  3:30   ` ChenQi [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51FF1C59.3000301@windriver.com \
    --to=qi.chen@windriver.com \
    --cc=chen_q07@163.com \
    --cc=clarson@kergoth.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox