aboutsummaryrefslogtreecommitdiff
path: root/libexec/rc/rc.initdiskless
diff options
context:
space:
mode:
authorEugene Grosbein <eugen@FreeBSD.org>2018-10-20 18:13:51 +0000
committerEugene Grosbein <eugen@FreeBSD.org>2018-10-20 18:13:51 +0000
commitb4d24263c25b996a8858d69ed21549ed958a7db3 (patch)
tree64ddfcf0693abcb7e2c5ae1898b8f9bc366c734c /libexec/rc/rc.initdiskless
parenta2a90d6ee51a22feb72dc6c0adbb54b708a453b8 (diff)
Notes
Diffstat (limited to 'libexec/rc/rc.initdiskless')
-rw-r--r--libexec/rc/rc.initdiskless22
1 files changed, 20 insertions, 2 deletions
diff --git a/libexec/rc/rc.initdiskless b/libexec/rc/rc.initdiskless
index 99e067d508adf..5db1d19141290 100644
--- a/libexec/rc/rc.initdiskless
+++ b/libexec/rc/rc.initdiskless
@@ -111,6 +111,15 @@
# created for /SUBDIR if necessary). The presence of this file
# prevents the copy from /conf/T/SUBDIR/
#
+# /conf/T/M/extract
+# This is alternative to SUBDIR.cpio.gz and remount.
+# Similar to remount case, a memory filesystem is created
+# for /M and initialized from a template but no mounting
+# performed. Instead, this file is run passing /M as singe
+# argument. It is expected to extract template override to /M
+# using auxiliary storage found in some embedded systems
+# having NVRAM too small to hold mountable file system.
+#
# /conf/T/SUBDIR.remove
# The list of paths contained in the file are rm -rf'd
# relative to /SUBDIR.
@@ -343,8 +352,8 @@ done
# - Create all required MFS filesystems and populate them from
# our templates. Support both a direct template and a dir.cpio.gz
-# archive. Support dir.remove files containing a list of relative
-# paths to remove.
+# archive. Support for auxiliary NVRAM. Support dir.remove files containing
+# a list of relative paths to remove.
#
# The dir.cpio.gz form is there to make the copy process more efficient,
# so if the cpio archive is present, it prevents the files from dir/
@@ -367,6 +376,15 @@ for i in ${templates} ; do
(cd / ; /rescue/tar -xpf $j)
fi
done
+ for j in /conf/$i/*/extract ; do
+ if [ -x $j ]; then
+ subdir=${j%*/extract}
+ subdir=${subdir##*/}
+ create_md $subdir
+ echo "Loading /$subdir using auxiliary command $j"
+ $j /$subdir
+ fi
+ done
for j in /conf/$i/*.remove ; do
subdir=${j%*.remove}
subdir=${subdir##*/}