Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Apr 1997 18:58:27 +0200 (MET DST)
From:      Luigi Rizzo <luigi@labinfo.iet.unipi.it>
To:        jmb@freefall.freebsd.org (Jonathan M. Bresler)
Cc:        imp@village.org, jkh@time.cdrom.com, hackers@FreeBSD.ORG
Subject:   Re: on the subject of changes to -RELEASEs...
Message-ID:  <199704111658.SAA19544@labinfo.iet.unipi.it>
In-Reply-To: <199704111601.JAA25847@freefall.freebsd.org> from "Jonathan M. Bresler" at Apr 11, 97 09:01:06 am

next in thread | previous in thread | raw e-mail | index | archive | help
About readonly root partition and relocation of /etc

> > : > how about making these "well known" files such as /etc/resolv.conf,
> > : > /etc/host.conf and other stuff symlinks into /var/etc ? This is

> > Does somebody have a cononical list of these files so that some brave
> > soles can begin to experiment?
> > 
> 
> 	in the spirit of the discussion
> 
> 	how about creating HERE documents *inside* sysconfig which create
> 	/etc/resolv.conf, /etc/hosts, /etc/namedb.boot, ......

the idea is neat but only applicable to a limited number of small files I am
afraid. And it would be a great problem for large/binary/mutable files
to get updated into the sysconfig (which, at that point, would look
like a shar file!)

> partial list:   *passwd*, *db, sendamil*, host*,
> 		named.boot namedb*, aliases, XF86Config,
> 		adduser.conf, make.conf, fstab, dm.conf, daily,
> 		weekly, monthly, rc.local, group,......<ack!>

the list is pretty long. Really, I believe the best option is to 

  * symlink /etc into /var/etc
  * provide a dummy /var/etc in the root partition (that would
    exist anyways in systems without a separate /var), so that a failure
    in mounting /var does not prevent the system to come up (possibly
    standalone);
  * after mounting root, the kernel tries to mount /var (possibly
    readonly, such as it is done for root) before giving control
    to /etc/rc . Failures to mount /var are not considered critical.

    The location of /var can be:
    1. written into the kernel, possibly updated via kernelconfig or
       other options;
    2. acquired using bootp (diskless machines, using the kernel bootp
       stuff originally submitted by Tor Egge which I patched and
       resubmitted a few months ago);
    3. derived from the kernel by scanning UFS partitions on the same
       disk where the root fs is located, looking if it was last mounted
       as /var (it is written in the superblock).

To me the above does not look too hard to implement, nor too
confusing for people used to the standard location of things. The
code for mounting /var is probably the same as for mounting /, with
minor changes in the pathnames. As for the three ways for locating
the /var partition, all of them require just a few lines of code.

Things retain their nice place in /etc except that the whole /etc
is now a symlink. All files in /etc are real, not symlinks, so that
many utilities (such as those to rebuild password databases etc.)
won't complain because of symlinks...

Oh, one more thing. In order to have a real readonly root partition,
one should probably give the same treatment to /root and /dev, i.e. let
them live in /var

Comments ?

	Cheers
	Luigi
-----------------------------+--------------------------------------
Luigi Rizzo                  |  Dip. di Ingegneria dell'Informazione
email: luigi@iet.unipi.it    |  Universita' di Pisa
tel: +39-50-568533           |  via Diotisalvi 2, 56126 PISA (Italy)
fax: +39-50-568522           |  http://www.iet.unipi.it/~luigi/
_____________________________|______________________________________



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