From 5158a0f59fc0ee4f205433855c718da498aaa11d Mon Sep 17 00:00:00 2001 From: "David E. O'Brien" Date: Fri, 22 Feb 2002 19:05:22 +0000 Subject: [PATCH] The existing bazaar and site-specific policy in rc.diskless1 is Just Wrong; and looks like no other Unix diskless configuration I've ever seen. Thus allow a more traditional /etc. Note, the use of an MFS /var should also be settable. Otherwise installing ports(packages) is just a total PITA. --- etc/rc.d/diskless | 4 ++-- etc/rc.d/initdiskless | 18 ++++++++++++------ etc/rc.d/resolv | 4 ++-- etc/rc.d/tmp | 4 ++-- etc/rc.d/var | 4 ++-- etc/rc.diskless1 | 18 ++++++++++++------ etc/rc.diskless2 | 4 ++-- etc/rc.initdiskless | 18 ++++++++++++------ 8 files changed, 46 insertions(+), 28 deletions(-) diff --git a/etc/rc.d/diskless b/etc/rc.d/diskless index 229a82ed1004..c312265f6b54 100644 --- a/etc/rc.d/diskless +++ b/etc/rc.d/diskless @@ -56,7 +56,7 @@ mount_md() } # If there is a global system configuration file, suck it in. -mount_md ${varsize:=65536} /var 1 +# if [ -r /etc/rc.subr ]; then . /etc/rc.subr load_rc_config $name @@ -83,7 +83,7 @@ fi # If /tmp is a symlink, assume it points to somewhere writable, like # /var/tmp, otherwise, use a small memory filesystem for /tmp. - mount_md ${tmpsize:=20480} /tmp 2 +# # XXX: mtree runs too early to create any directories needed in /tmp, # so if /var/tmp == /tmp, then you don't get a vi.recover. # diff --git a/etc/rc.d/initdiskless b/etc/rc.d/initdiskless index 30b4e4f6b98b..050628a89524 100644 --- a/etc/rc.d/initdiskless +++ b/etc/rc.d/initdiskless @@ -92,13 +92,14 @@ for i in ${iflist} ; do done echo "Interface ${bootp_ifc} IP-Address ${bootp_ipa} Broadcast ${bootp_ipbca}" +if [ -d /conf/default/etc ]; then + mount_md 4096 /etc 0 + chkerr $? "MFS mount on /etc" + /bin/chmod 755 /etc -mount_md 4096 /etc 0 -chkerr $? "MFS mount on /etc" -/bin/chmod 755 /etc - -/bin/cp -Rp /conf/default/etc/* /etc -chkerr $? "cp /conf/default/etc to /etc MFS" + /bin/cp -Rp /conf/default/etc/* /etc + chkerr $? "cp /conf/default/etc to /etc MFS" +fi # Allow for override files to replace files in /etc. Use /conf/*/etc to find # the override files. First choice is default files that # always override, @@ -114,6 +115,11 @@ for i in ${bootp_ipbca} ${bootp_ipa} ; do fi done +# Since we are starting with a very fresh /etc on an MFS: +if [ -d /conf/default/etc ]; then + newaliases +if + # Tell /etc/rc to run the specified script after it does its mounts but # before it does anything else. # diff --git a/etc/rc.d/resolv b/etc/rc.d/resolv index 229a82ed1004..c312265f6b54 100644 --- a/etc/rc.d/resolv +++ b/etc/rc.d/resolv @@ -56,7 +56,7 @@ mount_md() } # If there is a global system configuration file, suck it in. -mount_md ${varsize:=65536} /var 1 +# if [ -r /etc/rc.subr ]; then . /etc/rc.subr load_rc_config $name @@ -83,7 +83,7 @@ fi # If /tmp is a symlink, assume it points to somewhere writable, like # /var/tmp, otherwise, use a small memory filesystem for /tmp. - mount_md ${tmpsize:=20480} /tmp 2 +# # XXX: mtree runs too early to create any directories needed in /tmp, # so if /var/tmp == /tmp, then you don't get a vi.recover. # diff --git a/etc/rc.d/tmp b/etc/rc.d/tmp index 229a82ed1004..c312265f6b54 100644 --- a/etc/rc.d/tmp +++ b/etc/rc.d/tmp @@ -56,7 +56,7 @@ mount_md() } # If there is a global system configuration file, suck it in. -mount_md ${varsize:=65536} /var 1 +# if [ -r /etc/rc.subr ]; then . /etc/rc.subr load_rc_config $name @@ -83,7 +83,7 @@ fi # If /tmp is a symlink, assume it points to somewhere writable, like # /var/tmp, otherwise, use a small memory filesystem for /tmp. - mount_md ${tmpsize:=20480} /tmp 2 +# # XXX: mtree runs too early to create any directories needed in /tmp, # so if /var/tmp == /tmp, then you don't get a vi.recover. # diff --git a/etc/rc.d/var b/etc/rc.d/var index 229a82ed1004..c312265f6b54 100644 --- a/etc/rc.d/var +++ b/etc/rc.d/var @@ -56,7 +56,7 @@ mount_md() } # If there is a global system configuration file, suck it in. -mount_md ${varsize:=65536} /var 1 +# if [ -r /etc/rc.subr ]; then . /etc/rc.subr load_rc_config $name @@ -83,7 +83,7 @@ fi # If /tmp is a symlink, assume it points to somewhere writable, like # /var/tmp, otherwise, use a small memory filesystem for /tmp. - mount_md ${tmpsize:=20480} /tmp 2 +# # XXX: mtree runs too early to create any directories needed in /tmp, # so if /var/tmp == /tmp, then you don't get a vi.recover. # diff --git a/etc/rc.diskless1 b/etc/rc.diskless1 index 30b4e4f6b98b..050628a89524 100644 --- a/etc/rc.diskless1 +++ b/etc/rc.diskless1 @@ -92,13 +92,14 @@ for i in ${iflist} ; do done echo "Interface ${bootp_ifc} IP-Address ${bootp_ipa} Broadcast ${bootp_ipbca}" +if [ -d /conf/default/etc ]; then + mount_md 4096 /etc 0 + chkerr $? "MFS mount on /etc" + /bin/chmod 755 /etc -mount_md 4096 /etc 0 -chkerr $? "MFS mount on /etc" -/bin/chmod 755 /etc - -/bin/cp -Rp /conf/default/etc/* /etc -chkerr $? "cp /conf/default/etc to /etc MFS" + /bin/cp -Rp /conf/default/etc/* /etc + chkerr $? "cp /conf/default/etc to /etc MFS" +fi # Allow for override files to replace files in /etc. Use /conf/*/etc to find # the override files. First choice is default files that # always override, @@ -114,6 +115,11 @@ for i in ${bootp_ipbca} ${bootp_ipa} ; do fi done +# Since we are starting with a very fresh /etc on an MFS: +if [ -d /conf/default/etc ]; then + newaliases +if + # Tell /etc/rc to run the specified script after it does its mounts but # before it does anything else. # diff --git a/etc/rc.diskless2 b/etc/rc.diskless2 index 4fb477c76146..8fd08f67c138 100644 --- a/etc/rc.diskless2 +++ b/etc/rc.diskless2 @@ -56,7 +56,7 @@ elif [ -r /etc/rc.conf ]; then fi echo "+++ mount_md of /var" -mount_md ${varsize:=65536} /var 1 +mount_md ${varsize:=32m} /var 1 echo "+++ populate /var using /etc/mtree/BSD.var.dist" /usr/sbin/mtree -deU -f /etc/mtree/BSD.var.dist -p /var @@ -83,7 +83,7 @@ mount -a # chown and chgrp are in /usr # so if /var/tmp == /tmp, then you don't get a vi.recover. # if [ ! -h /tmp ]; then - mount_md ${tmpsize:=20480} /tmp 2 + mount_md ${tmpsize:=64m} /tmp 2 chmod 01777 /tmp fi diff --git a/etc/rc.initdiskless b/etc/rc.initdiskless index 30b4e4f6b98b..050628a89524 100644 --- a/etc/rc.initdiskless +++ b/etc/rc.initdiskless @@ -92,13 +92,14 @@ for i in ${iflist} ; do done echo "Interface ${bootp_ifc} IP-Address ${bootp_ipa} Broadcast ${bootp_ipbca}" +if [ -d /conf/default/etc ]; then + mount_md 4096 /etc 0 + chkerr $? "MFS mount on /etc" + /bin/chmod 755 /etc -mount_md 4096 /etc 0 -chkerr $? "MFS mount on /etc" -/bin/chmod 755 /etc - -/bin/cp -Rp /conf/default/etc/* /etc -chkerr $? "cp /conf/default/etc to /etc MFS" + /bin/cp -Rp /conf/default/etc/* /etc + chkerr $? "cp /conf/default/etc to /etc MFS" +fi # Allow for override files to replace files in /etc. Use /conf/*/etc to find # the override files. First choice is default files that # always override, @@ -114,6 +115,11 @@ for i in ${bootp_ipbca} ${bootp_ipa} ; do fi done +# Since we are starting with a very fresh /etc on an MFS: +if [ -d /conf/default/etc ]; then + newaliases +if + # Tell /etc/rc to run the specified script after it does its mounts but # before it does anything else. #