Ahhh, a thousand apologies as my original submission didn't make it
clear. The module stuff is all related to using the toram function.
When using toram, the module function doesn't work as expected.
If you specify "toram=something.module" (not documented in man page, but
the arg is parsed into MODULETORAM), it assumes this is a single
squashfs filesystem, not a module file (maybe just confusion with what a
"module" is).
If you specify "module=foo toram", it ignores any foo.module and tries
to copy the whole live directory. Maybe then it honors the module file,
but I never get that far as I run out of RAM ;)
I can clean up the patch but the additions to the toram file check to
see if:
a) module = something and toram, then calculate size based on the sum
of the parts in the module file and only copy those parts to ram, then
continue as before.
The normal behavior for toram=filesystem.squashfs is kept and toram
without a "module=" is also kept as before...really just takes care of
loading a module into ram.
On Fri, 16 Jun 2017 00:47:56 +0300 Mert Dirik <mertdirik@gmail.com
<mailto:mertdirik@gmail.com>> wrote:
On Wed, 14 Jun 2017 01:48:05 +0000 William Prochazka wrote:
> Well,
>
> 1. Root copy is not a squashfs filesystem, so it allows for quick
tweaking
> and modification without having to "commit" your changes. This also
makes
> modifications (for the purpose of troubleshooting) much easier.
>
> 2. The alternative filesystem module is still a single file. The new
> feature allow for the specification and ordering of filesystem modules.
> For example, imagine the following:
> filesyste A contains all necessary files to boot a system into a basic
> shell with basic functionality, nothing more. Branch filesystem B
contains
> a bunch of advanced tools (coimpilers, scripting environments, etc.
Branch
> filesystem C contains X and Branch Filesystem D contains all of the X
Bloat
> applications.
> Together, all four branches are roughly the size that the one
"monolithic"
> filesystem D would have been if I wanted to use the legacy modules
> directive, but now, I have a boot time option to specify if I want
just A
> for a tiny system, (A and B) for more functionality, (A, B, and C)
for a
> GUI, or (A, B, C, and D) for all of the bells and whistle. Now I
get all
> of that and don't have four copies of the filesystem. Furthermore, if I
> then add a file to A, It will be present when booting into D due to
> squashfs.
>
> It is really nice.
I'm still not getting it. You can accomplish all of these with the
existing module functionality.
Modules don't have to be squashfs files. They can also be regular
directories. You can modify them freely. You can use them in the exact
same way you use overlay directories, because they end up being just
another layer of the overlayfs mount. You can mix and match modules
using *.module files or change their ordering, because they are just
overlays. You can also select different *.module files with boot
parameters.
Sorry if I still miss something obvious but this seems to cover all
functionality you've brought so far.