changeset 177:9ffbe53dbc35

Flag for creating a separatate dataset for freebsd-update data. By default this is not needed in jails.
author Franz Glasner <hg@dom66.de>
date Tue, 16 Aug 2022 11:44:56 +0200
parents cf0a91fde79c
children 00fbf2b4b44f
files sbin/fjail
diffstat 1 files changed, 11 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/sbin/fjail	Tue Aug 16 11:16:11 2022 +0200
+++ b/sbin/fjail	Tue Aug 16 11:44:56 2022 +0200
@@ -34,6 +34,7 @@
 
     PARENT must exist already and CHILD must not exist.
 
+    -s        Also create a dataset for freebsd-update data files
     -u        Do not automatically mount newly created datasets
 
   privs MOUNTPOINT
@@ -121,16 +122,20 @@
     local _pmp _get _dummy
     # full name of the dataset
     local _ds
-    # dynamic ZFS options
-    local _zfsopts
+    # dynamic ZFS options  -- create cache for freebsd-update
+    local _zfsopts _fbsdupdate
 
     _zfsopts=""
-    while getopts "u" _opt ; do
+    _fbsdupdate=""
+    while getopts "us" _opt ; do
         case ${_opt} in
             u)
                 # do not mount newly created datasets
                 _zfsopts="${_zfsopts} -u"
                 ;;
+            s)
+                # create also a dataset for freebsd-update data
+                _fbsdupdate="yes"
             \?|:)
                 return 2;
                 ;;
@@ -182,7 +187,9 @@
     zfs create ${_zfsopts} -o exec=off -o setuid=off                                                         "${_ds}/var/cache"
     zfs create ${_zfsopts} -o exec=off -o setuid=off -o primarycache=metadata -o compression=off             "${_ds}/var/cache/pkg"
     zfs create ${_zfsopts} -o exec=off -o setuid=off -o compression=off                                      "${_ds}/var/crash"
-    zfs create ${_zfsopts} -o exec=off -o setuid=off                                                         "${_ds}/var/db"
+    if [ "$_fbsdupdate" = "yes" ]; then
+        zfs create ${_zfsopts} -o exec=off -o setuid=off -o primarycache=metadata -o compression=off         "${_ds}/var/db/freebsd-update"
+    fi
     zfs create ${_zfsopts} -o readonly=on -o exec=off -o setuid=off                                          "${_ds}/var/empty"
     zfs create ${_zfsopts} -o exec=off -o setuid=off -o primarycache=metadata                                "${_ds}/var/log"
     zfs create ${_zfsopts} -o exec=off -o setuid=off -o atime=on                                             "${_ds}/var/mail"