2002-04-28 12:00:08

by ChristianK.

[permalink] [raw]
Subject: How far has initramfs got ?

Hi,

I've got some spare time to look at my all day problems / questions.

How far have the initramfs stuff got ? Is there any code yet ?
I have implementet some very very simple cpio image extraction in
init/do_mounts.c and want to know if this could be usefull to somebody.

Should it be possible to use initramfs without the ramdisk driver compiled in?

cu, Christian Koenig.


2002-04-28 17:42:33

by Jan Harkes

[permalink] [raw]
Subject: Re: How far has initramfs got ?

On Sun, Apr 28, 2002 at 04:00:16PM +0200, Christian Koenig wrote:
> How far have the initramfs stuff got ? Is there any code yet ?
> I have implementet some very very simple cpio image extraction in
> init/do_mounts.c and want to know if this could be usefull to somebody.
>
> Should it be possible to use initramfs without the ramdisk driver compiled in?

I would like to add that perhaps using tmpfs instead of ramfs would be
a nice touch. As the initial ramfs would get overmounted instead of
unmounted, this allows the contents of the initial fs to get swapped
out instead of either taking up memory indefinitely.

Also isn't tmpfs already compiled into the kernel by default to support
shared memory and such?

Jan

2002-04-28 21:12:09

by H. Peter Anvin

[permalink] [raw]
Subject: Re: How far has initramfs got ?

Followup to: <[email protected]>
By author: Jan Harkes <[email protected]>
In newsgroup: linux.dev.kernel
>
> I would like to add that perhaps using tmpfs instead of ramfs would be
> a nice touch. As the initial ramfs would get overmounted instead of
> unmounted, this allows the contents of the initial fs to get swapped
> out instead of either taking up memory indefinitely.
>

Baloney. You can't swap out what is actively in use, and something
that's overmounted is actively used. You're supposed to clean up the
contents before overmounting. I discussed with viro a scheme (using
two ramfs's) which made that close to automatic, but I think he
thought it was needless complexity.

-hpa
--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt <[email protected]>

2002-04-29 10:45:31

by Matthias Kilian

[permalink] [raw]
Subject: Re: How far has initramfs got ?

On Sun, Apr 28, 2002 at 01:14:58PM -0700, H. Peter Anvin wrote:

[Jan Harkes:]
> > I would like to add that perhaps using tmpfs instead of ramfs would be
> > a nice touch.

I've written some code that allows using an initial tmpfs which gets it's
contents from a tar file (optionally compressed). See

http://www.escape.de/users/outback/linux/patch-2.4.17-inittar.gz (should also
work for 2.4.18) and (for later kernels):
http://www.escape.de/users/outback/linux/patch-2.4.19-pre3-inittar.gz

[hpa, on tmpfs mounted over initramfs:]
> Baloney. You can't swap out what is actively in use, and something
> that's overmounted is actively used. You're supposed to clean up the
> contents before overmounting. I discussed with viro a scheme (using
> two ramfs's) which made that close to automatic, but I think he
> thought it was needless complexity.

But you don't have to swap anything. As I understand, the current concept is:

- a very minimalistic initial fs that doesn't anything meaningful except
allowing the creation of directories (mount points).
- one or more other fs's on top of this, either overmounted or mounted on a
mount point.

For example, my patch for 2.4.19-preX just does a
sys_mount("tmpfs", "/root", "tmpfs", ...);
sys_chdir("/root");
Later, the tar image is extracted into this tmpfs. There's no need to swap or
unmount any filesystems. If you want to mount another filesystem as root and
throw away the tmpfs, just use chroot(8) and pivot_root(8).

Correct me if I'm wrong.


Ciao,
Kili

ps: please answer with cc: to my address, since I'm not subscribed to this
mailinglist and may take longer to search the archives for answers.