Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 May 2002 05:36:10 -0700
From:      Maxime Henrion <mux@freebsd.org>
To:        arch@FreeBSD.org
Cc:        Peter Wemm <peter@wemm.org>
Subject:   Re: a virtual fs to allow root mounting of any fs without special code
Message-ID:  <20020522123610.GL496@elvis.mu.org>
In-Reply-To: <20020522004153.CDF5B3A9A@overcee.wemm.org>
References:  <20020520212459.GH496@elvis.mu.org> <20020522004153.CDF5B3A9A@overcee.wemm.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Peter Wemm wrote:
> Maxime Henrion wrote:
> > I've written a small virtual filesystem called rootfs which solves the
> > chicken and egg problem of root mounting quite nicely.  Currently, we
> > need special code in each filesystem to allow root mounting.  The reason
> > for this is that the VFS_MOUNT operations of the filesystems generally
> > need to do a lookup to get a device file (e.g. /dev/ad0s1a), so they
> > need devfs to be there, and they need lookups to work.
> > 
> > rootfs is nothing more than a 3-vnodes filesystem (/, /dev and /root).
> > To mount the root filesystem with rootfs, I do the following :
> > 
> > - initialize rootfs
> > - mount devfs on /dev (on top of rootfs)
> > - mount the real fs on /root
> > - umount devfs from /dev
> > - translate vnodes so that / is now the /root
> > - remount devfs on /dev (on top of the real fs)
> > - terminate rootfs
> 
> You know, this sounds an awful lot like what linux does with their
> 'initrd' ramdisk and pivot_root(2).  The main difference is that instead
> of the rootfs being a synthetic file system, it is a real file system
> that is read/write mounted and you can have init etc living in there.
> 
> One thing you didn't clarify above, where does starting init live
> in the sequence of events above?  Or is this all pre-exec-init stage?
> It would be nice to be able to fsck/remount the /root fs while we have the
> devfs nodes available.

All this is pre-exec-init stage.

Cheers,
Maxime

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020522123610.GL496>