[lkml]   [1999]   [Jun]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subjectinitrd redesign (was Re: Partition nightmare Was: Migrating to larger numbers)
H. Peter Anvin wrote:
> Actually you can; it's called initrd. Currently, of course, initrd
> uses this funny hybrid user space-kernel space scheme for remounting
> the root;

Originally, the idea was to keep this part as simple as possible a) for
scripts (everything can be done with echo - no need to have a mount
program or such), and b) to keep the kernel changes small. Since initrd
environments tend to get pretty specialized anyway, point a) is probably
obsolete. b) is always negotiable :-)

> I believe that should be changed so that you actually mount
> the new root in a standard fashion and pass the kernel a file
> descriptor to the new root.

I'd actually favour an approach that completely de-specializes things,
e.g. by adding a mechanism to allow mounted file system to be moved to
other places, including on top of the existing root. Then make it
possible to move a file system with another one on top to a different
place, or to unmount it. I think there are actually some patches for
at least part of such functionality floating around.

This would also remove the need for a special directory on which
initrd gets mounted if it is busy during the transition (i.e. /initrd).
The remaining problem are things like NFS root, which do some "magic"
when mounting the root FS. (Are there others ? UMSDOS ?) I'm not sure
what to do about this - conceptually, NFS root should of course be put
into user space, but then it's so damn handy to have it in the
kernel ...

In any case, there has to be a transition period with both mechanisms
available, so one could use this time also to explore what solutions
work best for NFS root.

The next step would then be to let init exit to another init. I'm not
sure if "exec" covers all cases, so I'd be more inclined to do all
this in an exec-init loop, with the possibility to change the name of
init (a la init=... from the boot command line) via /proc.

- Werner

/ Werner Almesberger, ICA, EPFL, CH /

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:52    [W:0.063 / U:3.380 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site