summaryrefslogtreecommitdiffstats
path: root/etc/rc.initdiskless
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2004-03-12 04:40:16 +0000
committerbrooks <brooks@FreeBSD.org>2004-03-12 04:40:16 +0000
commiteaef20db030afa7a8cb330442f9e4c11688ce14d (patch)
tree26116af551301931184076d961f1fcc7346e0ea9 /etc/rc.initdiskless
parent0418e1b6b2b3028563987321cb043146d549ad50 (diff)
downloadFreeBSD-src-eaef20db030afa7a8cb330442f9e4c11688ce14d.zip
FreeBSD-src-eaef20db030afa7a8cb330442f9e4c11688ce14d.tar.gz
If /conf/diskless_remount exists, use it to remount the entire /conf
directory. This allows multiple roots (say for different architectures) to share the same set of /conf files.
Diffstat (limited to 'etc/rc.initdiskless')
-rw-r--r--etc/rc.initdiskless15
1 files changed, 13 insertions, 2 deletions
diff --git a/etc/rc.initdiskless b/etc/rc.initdiskless
index 883a24d..7e238e6 100644
--- a/etc/rc.initdiskless
+++ b/etc/rc.initdiskless
@@ -81,8 +81,8 @@
# /conf/default/etc/{rc.conf,rc.local,fstab}. Your fstab should be sure
# to mount a /usr... typically an NFS readonly /usr.
#
-# NOTE! /etc/rc.d/diskless will create /var, /tmp, and /dev.
-# Those filesystems should not be specified in /conf. At least not yet.
+# NOTE! /var, /tmp, and /dev will be created elsewhere.
+# Those filesystems should not be specified in /conf.
dlv=`/sbin/sysctl -n vfs.nfs.diskless_valid 2> /dev/null`
[ ${dlv:=0} -eq 0 ] && [ ! -f /etc/diskless ] && exit 0
@@ -167,6 +167,17 @@ while [ $# -ge 1 ] ; do
shift
done
+# If /conf/diskless_remount exists, remount all of /conf. This allows
+# multiple roots to share the same conf files.
+if [ -d /conf -a -f /conf/diskless_remount ]; then
+ nfspt=`/bin/cat /conf/diskless_remount`
+ if [ `expr "$nfspt" : '\(.\)'` = "/" ]; then
+ nfspt="${nfsroot}${nfspt}"
+ fi
+ mount_nfs $nfspt /conf
+ chkerr $? "mount_nfs $nfspt /conf"
+fi
+
# Resolve templates in /conf/base, /conf/default, /conf/${bootp_ipbca},
# and /conf/${bootp_ipa}. For each subdirectory found within these
# directories:
OpenPOWER on IntegriCloud