Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 May 2002 17:41:53 -0700
From:      Peter Wemm <peter@wemm.org>
To:        Maxime Henrion <mux@FreeBSD.ORG>
Cc:        arch@FreeBSD.ORG
Subject:   Re: a virtual fs to allow root mounting of any fs without special code 
Message-ID:  <20020522004153.CDF5B3A9A@overcee.wemm.org>
In-Reply-To: <20020520212459.GH496@elvis.mu.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
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.

Cheers,
-Peter
--
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5


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?20020522004153.CDF5B3A9A>